基于Web服务器的Ubuntu 9.04使用Zend Framework
这是对安装Zend Framework设置基本Web服务器所需的步骤的简要说明。
像往常一样,我将遵循Falko的优秀指南之一,因为没有必要重新发明轮子,可以这么说。 我将遵循完美的服务器 - Ubuntu 9.04 [ISPConfig 3] 。 但是,由于我需要一个Web应用程序服务器进行预生产测试,因此我不需要邮件或ISPConfig,所以我将遵循第1 - 11步中的“ISPConfig-3指南”,并从那里开始我自己的版本。
我不会安装Postfix,Courier(不需要邮件或IMAP),Saslauthd(身份验证),我也不会安装rootkit猎人或二进制实用程序,所以我也将它们丢弃:
12安装MySQL
我们可以使用以下命令安装MySQL:
apt-get install mysql-client mysql-server
您将被问到以下问题:
MySQL“root”用户的新密码:
< - yourrootsqlpassword
重复MySQL“root”用户的密码:
< - yourrootsqlpassword
我们希望MySQL在所有接口上监听,而不仅仅是localhost,因此我们编辑/etc/mysql/my.cnf
并注释掉bind-address = 127.0.0.1
:
nano /etc/mysql/my.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[...]
然后我们重新启动MySQL:
/etc/init.d/mysql restart
现在检查网络是否启用。 跑
netstat -tap | grep mysql
输出应如下所示:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 8474/mysqld
root@server1:~#
13安装Apache2,Java和phpMyAdmin
在这一点上,我并没有安装PHP5,因为我有几种不同的方式来安装在下一节。 只要知道如果要从源代码编译,您可能需要阅读下一节,并考虑到此时不要安装apache。 否则全部安装如下:
sudo su
apt-get install apache2 sun-java6-bin phpmyadmin
您将看到以下问题:
Web服务器自动重新配置:
< - apache2
Java EULA
< - Tab阅读EULA然后OK
您是否同意DLJ许可条款?
< - 是的
使用dbconfig-common配置phpmyadmin的数据库?
< - 是的
数据库管理用户的密码:
< - yourrootsqlpassword
phpmyadmin的MySQL应用程序密码:
< - [blank]
14 PHP5安装:
我们有许多方法可以安装php,具体取决于您需要什么。 我已经取得了我需要的模块安装成功,所以我将给你所有的方法,我已经尝试了PHP安装,你可以选择你需要哪一个。
从ubuntu存储库apt-get安装
我们可以使用Apt从ubuntu存储库获取PHP版本。 这将是最简单的方法,并将产生最简单的成功,如果您没有PHP的特定要求,应该使用它
apt-get install php5 php5-common php5-cli
apt-get从debian源安装
Debian已经将他们的存储库更新到最新的PHP5版本,我相信它具有完整的PHP5 GD库,因此可能比Source编译更容易获得成功的途径,但这意味着您使用的源不是Ubuntu认可的来源,你必须做出决定你是否确定。
该决定使您必须将debian存储库添加到源列表中,您可以通过如前所述编辑源列表来执行。
我们可以使用Apt从ubuntu存储库获取PHP版本。echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.list
echo deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.list
然后跑
apt-get update
此后,您可以选择升级debian已更新的任何其他安装。
apt-get upgrade
apt-get install php5 php5-common php5-cli
reboot
从资源库编译
在成功的情况下,它安装了ubuntu的PHP5版本,这对大多数安装是很好的,这将允许您启用一些不属于aptitude安装的额外的东西。 您可以使用./configure --help
查看在编译时可以启用哪些功能。
aptitude install libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev
这将允许您安装ubuntu安全版本与额外的可能不包括在标准版本中。
cd /usr/src
apt-get install build-essential debhelper fakeroot
apt-get source php5
apt-get install build-dep php5
cd php5-5.2.6.dfsg.1/
nano debian/rules
查找和替换
[...] --with-gd=shared,/usr --enable-gd-native-ttf \ [...]
与
[...] --with-gd=shared, --enable-gd-native-ttf \ [...]
dpkg-buildpackage -rfakeroot
cd ..
# Install the new php5-gd package
dpkg -i php5-gd_5.2.6-1ubuntu6.3_i386.deb
从外部来源完整编译
当我运行最后,我不得不重新编译apache2,以获得我的新版本的php5被认可。 不知道为什么或如果它只是我,所以我会测试几次,我会编辑这个帖子更新方法,如果我可以获得成功,没有apache2安装以及。
aptitude install php5-dev libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev bzip2 libcurl3 curl libpng12-dev libfreetype6-dev libmcrypt4 libmcrypt-dev libmhash2 libxslt1-dev apache2-prefork-dev libjpeg62-dev freetype2 libxft libxft-dev libcurl4-gnutls-dev
cd /usr/src
wget http://apache.mirror.anlx.net/httpd/httpd-2.0.63.tar.gz
tar -zxvf httpd-2.0.63.tar.gz
cd httpd-2.0.63
./configure --help
./configure --prefix=/etc --enable-rewrite --enable-so --enable-ssl
make
make install
/etc/bin/apachectl start
/etc/bin/apachectl stop
cd /usr/src
wget http://uk.php.net/get/php-5.2.9.tar.gz/from/this/mirror
tar xzvf php-5.2.9.tar.gz
cd php-5.2.9
./configure --help
./configure --prefix=/etc/php5/apache2 --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/apache2 --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install
./configure --prefix=/etc/php5/cli --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/cli --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install-cli
我在apache2.conf
和httpd.conf
中有一些关于需要LoadModule
语句的警告,如果你也发现,那么你可以添加已注释的虚拟语句,再次安装并且应该可以正常工作。
nano /etc/apache2/apache2.conf
[...] # Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf # Dummy LoadModule directive to aid module installations #LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so [...]
15测试PHP和GD库/获取有关您的PHP5安装的详细信息
由于我们安装了PHP-CLI,我们可以通过以下方式测试GD库的安装:
php -r "var_dump(function_exists('imagecreatefromjpeg'));" <-- will output true if GD Library is installed
php -r "var_dump(function_exists('imagerotate'));" <-- will be false if the limited library is installed
默认网站的文档根目录是/ var / www
。 我们现在将在该目录中创建一个小型PHP文件( phpinfo.php
),并在浏览器中调用它。 该文件将显示有关我们的PHP安装的许多有用的细节,例如安装的PHP版本。
nano /var/www/phpinfo.php
<?php phpinfo(); ?>
现在我们在浏览器中调用该文件(例如: http
: //192.168.0.100/phpinfo.php
):
现在您应该看到,PHP5正在工作,向下滚动,您将看到在PHP5中已启用的所有模块。 你也应该看到列出的MySQL。
16配置安装
我们需要确保在apache2中启用了rewrite_module以使Zend Framework能够正常工作,因此可以检查:
a2dismod
希望您应该看到在当前启用的模块列表中列出的重写。 如果没有,请按enter键以禁用任何内容,然后发出:
a2enmod rewrite
然后,我们需要在默认站点文件中启用AllowOverride All
nano /etc/apache2/sites-available/default
[...] DocumentRoot /var/www/ <directory> Options FollowSymLinks AllowOverride All </directory> <directory var="" www=""> Options FollowSymLinks AllowOverride All Order allow,deny allow from all </directory> [...]
之后,我们需要通过删除/etc/phpmyadmin/htpasswd.setup
文件来保护phpMyAdmin ...
rm -f /etc/phpmyadmin/htpasswd.setup
...并删除或注释掉/etc/phpmyadmin/apache.conf中的以下部分:
nano /etc/phpmyadmin/apache.conf
[...] ## Authorize for setup #<Directory /usr/share/phpmyadmin/setup> # <IfModule mod_authn_file.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # Require valid-user #</Directory> [...]
之后重新启动Apache:
/etc/init.d/apache2 restart
17安装Zend Framework
虽然Zend Framework在Ubuntu 9.04存储库中是可用的,但它是1.7.5版本,我想要有最新版本,所以我将通过SVN下载它,但首先我们需要安装它:
aptitude install subversion
现在我们可以获得最新版本的Zend Framework
cd /opt
mkdir ZendFramework
cd /ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.3/
接下来,我们将做的是创建一个名为“current”的软链接到该版本文件夹,如果我们更改Zend Framework版本,我们可以不重新启动Apache:
ln -s release-1.8.3 current
所以我们不必使用set_include_path将include路径手动添加到PHP脚本中。 我想通过添加路径到/etc/php5/apache2/php.ini自动包含当前的Zend 框架
。
nano /etc/php5/apache2/php.ini
更改:
include_path = ".:/usr/share/php5:/usr/share/pear"
至:
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"
再次重新启动Apache:
/etc/init.d/apache2 restart
当Zend Framework的新版本发布时,我们需要做的就是检查SVN目录并更改软链接。
cd /opt/ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.4/
rm current
ln -s release-1.8.4 current
18配置Zend工具
我们现在需要设置命令行的路径,所以我们将对PHP CLI进行如上所述的相同更改。
nano /etc/php5/cli/php.ini
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"
在我们退出超级用户之前,我们有最后一件事要做,以便您可以使用用户名而不是超级用户使用该工具,您需要在/ var / www文件夹中
设置权限
chown username:usergroup /var/www
现在,您将需要从超级用户中出来:
exit
nano ~/.bashrc
并添加行
[...] PATH=/opt/ZendFramework/current/bin:"${PATH}" [...]
几乎在那里,我们只是测试安装,但首先我们应该重新启动。
sudo reboot
当你登录不要 sudo su
而是:
zf.sh show version
你应该得到
Zend Framework Version: 1.8.3
19使用工具
浏览到您想要新项目的目录:
cd /var/www
zf.sh create project yourProject
您应该会发现该工具将创建您的基本站点结构,包括您的初始控制器和视图。
最后,您可能希望将Zend文件夹复制到新项目中
cp -r /opt/ZendFramework/current/library/Zend /var/www/yourProject/library/Zend
您可以通过以下方式测试Zend安装: http
: //192.168.0.100/yourProject/public/
请享用!