关于这个问题应该是有很多人写过了,算是老生常谈了,本文也是在学习了http://farlee.info/archives/zend-framework-tutorial.html之后,才写的一点东西。主要是按照上述博文学习下来,发现竟然不能成功,有些许的地方存在出入,在这里做一个总结。
本文基于Apache+Mysql+Php+ZendFramework-1.12.5-minimal,至于Apache+Mysql+Php环境的搭建,可以参考之前的博文 "开始学习PHP之开发环境搭建(Apache+Mysql+Php)"
安装Zend框架和Zend_T ool(引自 http://farlee.info/archives/zend-framework-zend-tool-installation.html )Zend Framework 配置要求
- PHP版本大于PHP 5.2.4。
- Web 服务器支持重写,如Apache mod_rewrite。
关于这个需要到 /usr/local/apache2/conf/目录下的httpd.conf中确认是否有LoadModule rewrite_module modules/mod_rewrite.so,一般是注释掉的,需要将前面的#删除
- 服务器开启重写功能,如Apache http.conf 配置文件,需设置AllowOverride None 改为 AllowOverride All,以支持.htaccess 文件。
Zend Framework 安装
这里以Ubuntu为例(其他Linux/Unix系统类似)。首先到Zend 官网下载最新的ZendFramework
版本选择:Zend Framework 1.12.5 Minimal 即可,下载完成可解压到想要的任意目录。比如/usr/share/
添加Zend library
解压以后,要设置确保解压文档中 Zend Framework 的 library 目录在 php 配置的 inclue_path
变量的目录下。大概有三种方法:
- 执行
php -i | grep include_path
得知当前php的include_path
路径,比如/usr/share/php
,再将library目录下的Zend文件夹整个复制/移动到/usr/share/php/
目录下。注意,一般情况下,命令行输入php系统会提示说没有安装php,这是因为php安装在/usr/local/php中,而可执行文件php位于其中的bin目录下,因此,为了输入php可以正确执行安装的php,可以用软链接将/usr/local/php/bin/php 链接到/usr/bin/php,即执行
即可。ln -s /usr/local/php/bin/php /usr/bin/php
- 修改
php.ini
配置,将解压后的library目录路径添加到include_path
变量中,(php.ini文件路径查询:php -i | grep php.ini
;)。在环境搭建这一节,将php.ini放在了/usr/local/lib/php.ini,在php.ini中查找include_path,将其添加为:
修改了php.ini要在重启apache 服务器之后才会生效include_path=".:/usr/share/ZendFramework-1.12.5-minimal/library"
-
第三种方法是不用将Zend的library添加到include_path中,而是在创建zf项目后,将library/Zend 目录复制到(或软链接到)项目的library 目录下(下一节将介绍)。
添加Zend Framework命令行工具
我们看到解压的Zend Framework 文档目录中还有一个bin目录,这是配置ZF命令行工具的脚本,把里面的zf.sh
可执行文件复制到ubuntu系统的可执行目录下就行。当然也可以不复制或移动文件,在系统可执行目录下使用软链接将bin链接到这个zf.sh文件。
sudo ln -s /usr/share/ZendFramework-1.12.5-minimal/bin/zf.sh /usr/bin/zf
然后在命令行终端执行zf show version
测试,显示Zend Framework Version: 1.12.5,则表明zf命令行工具安装配置完成。
开始创建ZF应用
cd /usr/local/apache2/htdocs
zf create project zftest
- zftest/application 这是zf的主体程序文件,包括配置文件、MVC的3个目录controllers/models/views、Bootstrap.php。
- zftest/docs 这是程序文档或手写的记录备忘等,实际应用中不上传。
- zftest/library 这是上一节说到的添加Zend library的第三种方法,如
cd /usr/local/apache2/htdocs/zftest/library; ln -s /usr/share/ZendFramework-1.12.5-minimal/library/Zend
- zftest/public 这是网站根目录访问路径。
ls -a ../public
可以看到还有一个隐藏的.htaccess文件。 - zftest/tests 测试目录。
将 /usr/local/apache2/htdocs/zftest/docs 目录下README.txt中的
<VirtualHost *:80>
DocumentRoot "/usr/local/apache2/htdocs/zftest/public"
ServerName zftest.local
# This should be omitted in the production environment
SetEnv APPLICATION_ENV development
<Directory "/usr/local/apache2/htdocs/zftest/public">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
复制到/usr/local/apache2/conf/httpd.conf中
修改/etc/hosts 把zftest.local 指向127.0.0.1。访问http://zftest.local (或http://localhost/zftest/public/) 就能打开显示zf图标的页面了。zftest 这个Zend Framework 项目就算创建好了。