基本Web服务器在Ubuntu 9.04与Zend框架

基于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.confhttpd.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>
        &ltdirectory 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/

请享用!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏