[强推] Zend Framework 留言本实战 -- 前期准备
二、前期准备
2.1 配置apache的mod_rewrite
ZF中为了实现MVC模式,对整个应用的所有请求全部通过一个启动文件(一般是根目录下的index.php)来分配到不同的控制器进行处理(Zend_Controller_Front实现了Front Controller设计模式,所有的请求都通过front controller(前端控制器)并分发(dispatch)到不同的控制器来处理,分发的过程基于请求的URL。),因此需要对操作类URL进行URL重写,以下对apache的mod_rewrite模块进行设置。
先可以通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。
如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的"#"号删除即可。如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。
2.2 让apache服务器支持".htaccess"
如何让自己的本地APACHE服务器支持".htaccess"呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支持.htaccess了。打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
改为
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
就可以了
2.3 建立开发目录
假设我们开发的目录为 C:/webroot/guestbook ,以下文件夹以 “./” 代替。我们采用ZF官方手册上推荐的结构。
./application 应用代码文件夹,按照MVC模式建立结构
controllers/ MVC控制器文件夹,放置ZF的控制器层文件
models/ MVC模型文件夹,放置ZF的模型层文件
views/ MVC视图文件夹,放置ZF的视图层文件
filters/ 视图辅助--过滤器类文件夹
helpers/ 视图辅助--视图辅助类文件夹
scripts/ 视图文件夹
./library ZF框架代码文件夹,将ZF安装包解压后的Zend文件夹放入其中
./public 供前端访问的文件夹,主要用于存放图片、js脚本和css样式单
images/ 图片文件夹
scripts/ 脚本文件夹
styles/ 样式表文件夹
也许有一些文件夹的解释大家还不是很明白,不着急,在以后编码过程中,会慢慢理解。
2.4 建立 “.htaccess” 文件
如果是在windows平台下,刚开始还真不知道怎么建立".htaccess"文件,因为这个文件实际上没有文件名,仅仅只有扩展名,通过普通方式是无法建立这个文件的,别着急,马上告诉你三种方法:
三种方法都是先建立一个htaccess.txt的文本文件(当然,这个文本文件的名字你可以随便取),然后有三种方式给这个文件重命名:(1)用记事本打开,点击文件--另存为,在文件名窗口输入".htaccess",注意是整个绿色部分,也就是包含英文引号,然后点击保存就行了。(2)进入cmd命令窗口,通过cd切换当刚建立htaccess.txt文件的文件夹,然后输入命令:rename htaccess.txt .htaccess ,然后点击键盘Enter键即可。(3)通过ftp连接htaccess.txt所在文件夹,通过ftp软件重命名。
那么我们须要建立几个“.htaccess” 文件,里面又输入什么内容呢?基本的原则是这样,根目录必须有一个,用于重定向(URl重写)所有的请求都会转到到index.php(交给前端控制器);"./application"文件夹下须要一个,用于拒绝所有针对该文件夹内容的直接访问(比如 http://localhost/application/models/User.php),这样做是因为所有访问请求必选通过前端控制器来分配访问,其次为了安全;“./library”文件夹下的“.htaccess”同前;"./public"文件夹下必选建一个,因为这个文件夹的文件全部是供前端直接访问的,因此须要撤销URl重写。以下是4个“./htaccess”文件的内容:
./.htaccess
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
./application/.htaccess
deny from all
./library/.htaccess
deny from all
./public
RewriteEngine off
实际上,apache的url重写功能也可以直接在httpd.conf文件中进行设置,这里就不具体讲了,网上相关的教程也很多。
[ 本帖最后由 tomsou 于 2008-4-7 17:27 编辑 ]
搜索更多相关主题的帖子:
Framework 留言本 Zend 控制器 实战