Subscribe:Posts Comments

You Are Here: Home » Web Server » Ubuntu 9.10安装Apache 2 + PHP 5 + MySQL 5.1 (Linode篇)

Linode放出了Ubuntu 9.10,之前已经装上了,不过一直没空把记录的安装步骤发上来,今天刚刚搞定静态文件的设置,稍微有空,抓紧时间放上来。

初步设置(针对Linode及可以分区的服务器或VPS,如果你的VPS不能分区,请跳过):

1,在Linode上建立一个单独的/home分区,并在建立系统后挂载到该系统下。Linode可以挂载8个区,包括系统分区和swap区~我将/home分区挂载到/dev/xvdh ;

2,启动新建立的系统(Ubuntu9.10),编辑 /etc/fstab 文件,添加以下代码:

/dev/xvdh       /home           ext3    defaults        1       2

保存后退出;

3,重启Linux后,/home已经挂载成功~

Ubuntu 9.10安装Apache 2 + PHP 5 + MySQL 5.1 :

1,修改 /etc/apt/sources.list 文件:将每行网址前的"#" 去除,这些都是Ubuntu的更新源地址;

2,按照这里的方法修改主机名实际操作中发现,如果不修改主机名,sendmail之类的程序可能会在发送邮件时出错;

  • 重启Linux,使以上设置生效。

3,更新Ubuntu 9.10:

apt-get update

apt-get upgrade

apt-get dist-upgrade

4,安装相关组件:

apt-get install automake wget zip unzip make sendmail

注:如果要删除某个apt安装的程序包,只需要输入:

apt-get remove

比如要删除 sendmail,则输入:

apt-get remove sendmail

5,安装 Apache 2.2 + PHP 5.2 + MySQL 5.1

注:使用apt安装,建议按照 apache –> mysql –> php 的顺序来进行。

5.1,查找apache2.2可安装的组件:

apt-cache search apache2

安装 apache 2.2

apt-get install apache2-mpm-prefork

或者

apt-get install apache2-mpm-worker

mpm-prefork延续了apache 1.x 的特性,速度比较快,适合一般小流量站点;mpm-worker是apache2的新模式,稳定性比较好。以上两个模式可以根据自己的需要来设置,详细mpm介绍可以点击这里查看

5.2,安装 MySQL 5.1:

apt-get install mysql-server-5.1 mysql-common mysql-client-5.1

注:安装过程中会提示你设定密码;

5.3,安装PHP 5.2及相关组件,并整合MySQL:

apt-get install php5-common php5-mysql php5-gd php5-mcrypt libapache2-mod-php5 php5-imagick php5-xmlrpc

如果需要其它组件,可以使用命令查找:

apt-cache search php5

6,设置MySQL 数据库及修改 root用户名:

在SSH界面进入MySQL数据库:

mysql -u root –p

提示输入你设定的密码;

成功进入MySQL数据库之后,提示符转为 "mysql>" 。输入以下命令:

use mysql;

update user set user="yourname" where user="root";       // 将mysql的root用户名修改成yourname,防止root的密码被暴力破解

select Host,User,Password,Select_priv,Grant_priv from user;

delete from user where user=”;                  // 删除user用户

delete from user where password=”;              // 删除user用户

delete from user where host=”;                     // 删除user用户

drop database test;             // 删除默认的test数据库,apt安装的MySQL好像都没有这个数据库,可以跳过这一步

flush privileges;               // 刷新mysql的缓存,让以上设置立即生效

quit;                     //退出MySQL数据库

重新载入Mysql

/etc/init.d/mysql reload

或者重启Mysql

/etc/init.d/mysql restart

7,设置PHP:

编辑 /etc/php5/apache2/php.ini

找到以下数值,修改为自己需要的数值

memory_limit          // 单程序最大内存使用值,默认 16M

post_max_size       // post最大字节数,默认 8M

upload_max_filesize       // 最大上传文件大小,默认 2M

关闭以下功能,将No改为Off:

enable_dl

display_errors

8,Apache 2.2 设置及优化:

8.1,编辑 /etc/apache2/apache2.conf 文件,将以下数值逐一修改:

Timeout 300

改为:

  • Timeout 60

KeepAliveTimeout 15

改为:

  • KeepAliveTimeout 5

8.2,编辑 /etc/apache2/apache2.conf 文件,修改mpm数值,以适合你的服务器:

我的 mpm_prefork 数值

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

改为

<IfModule mpm_prefork_module>
    StartServers          3
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients           50
    MaxRequestsPerChild  4000
</IfModule>

我的 mpm_worker 数值

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

改为:

<IfModule mpm_worker_module>
    StartServers          3
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   2000
</IfModule>

8.3,编辑 /etc/apache2/apache2.conf 文件,添加以下信息:

ServerAdmin you@example.com   // 将you@example.com 改为自己的mail地址

ServerName www.example.com:80   // 建议使用 IP:80 形式

有些老的apache 2.2版本还需要添加一些代码才能支持php:

找到以下代码:

AddType application/x-gzip .gz .tgz

在这段代码下方添加两行新代码:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

8.4,激活apache 模块:

8.4.1,mod_deflate是Apache2中的标准过滤器模块,该模块的功能与mod_gzip的功能一样:压缩网页各类组件,加快网页下载速度。

在SSH界面输入以下命令:

a2enmod deflate

然后编辑 /etc/apache2/apache2.conf 文件,在最下方输入:

<IfModule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
</IfModule>

注:"DeflateCompressionLevel 6" 表示压缩等级,数值越高,压缩比例也大,但也越耗资源,一般建议设定为6~9即可。

重新加载 apache ,使模块设置生效:

/etc/init.d/apache2 force-reload

可以通过这里查看你的网页压缩率

8.4.2,mod rewrite 是apache必要的模组,作为重定向模组,wordpress等程序的永久连接就要靠它来实现:

在SSH 界面输入以下命令:

a2enmod rewrite

重新加载 apache,使模块设置生效:

/etc/init.d/apache2 force-reload

然后在每个网站的设置文件或者.htaccess中设置相应的重定向代码。

WordPress的重定向代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这也是最基本的,如果你使用Discuz或者其他程序,需要参考该程序的帮助文件。

8.5,Apache 2.2 建立虚拟主机

在Debian/Ubuntu中使用apt安装的Apache 2.2 有一个特有的好处,每个站点的配置文件都是独立的,也就是说,如果我的服务器绑定了多个站点,其中一个需要维护或重新配置,可以通过命令来单独关闭这个站,而不是向 CentOS中编译安装的 Apache 2.2 那样,所有的网站设置都设定在vhost文件中,操作不方便。

8.5.1,建立虚拟主机总目录:

在本文刚开始,我就挂在了 /home 分区,在 /home 分区中,我再新建一个 /web 目录,以此目录作为虚拟主机的根目录。

mkdir /home/web         // 新建 /web 目录

chmod 755 -R /home/web  // 设置网站根目录权限

cd /home/web/

chown -R www-data:www-data /home/web/

编辑"/etc/apache2/sites-available/default"

在第一行"<VirtualHost *:80>"下添加:

ServerName example.com       // 你的虚拟主机根目录域名

ServerAlias www.example.com

ServerAdmin your@example.com

然后将"DocumentRoot /var/www" 改为:

DocumentRoot /home/web

再查找"<Directory /var/www/>" 改为:

<Directory /home/web/>

重启 apache 2.2 ,让配置生效:

/etc/init.d/apache2 restart

好了,现在虚拟主机设定好了。Apache 如何绑定多域名?我们现在就开始绑定其他域名;

8.5.2,Apache 2.2 建立多站点设置

假设我要建立 mlrei.com 这个虚拟主机站点,首先建立这个虚拟站点的目录。

既然虚拟主机根目录在 "/home/web/",那我们就在 /web 目录下建立一个新目录 /mlrei (目录名随意,只要英文字母或数字都行):

mkdir /home/web/mlrei

首先到 /etc/apache2/sites-available/ 目录中建立一个空白文件 mlrei(文件名随意),不要使用"."或"#"等字符。然后编辑该文件,输入以下内容:

<VirtualHost *:80>
    ServerName mlrei.com
    ServerAlias www.mlrei.com
    ServerAdmin admin@mlrei.com
    DocumentRoot "/home/web/mlrei/"
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    ErrorLog "/var/log/apache2/mlrei-error.log"
    CustomLog "/var/log/apache2/mlrei-access.log" common
</VirtualHost>

根据自己的域名修改后,保存并退出。然后在SSH界面中输入:

a2ensite mlrei

这是在 /etc/apache2/sites-enabled/ 目录中发现多了一个到 /etc/apache2/sites-available/mlrei 的软链接,说明站点已经设立好了,重新加载或启动 apache 2.2 ,让网站开始运行起来。

/etc/init.d/apache2 restart

如果以后想单独维护或关闭这个站点,只需要输入:

a2dissite mlrei

在重启 apache 2.2 就可以拉~

Apache 2.2设置到这里基本上就可以了。

9,安装 phpmyadmin,图形化管理 MySQL数据库:

cd /usr/local/src

wget http://www.silentstreet.net/blog/uploads/2010/01/phpMyAdmin-3.2.5-all-languages.tar.gz

tar zxvf phpMyAdmin-3.2.5-all-languages.tar.gz

cp -rf phpMyAdmin-3.2.5-all-languages /home/web/phpmyadmin

登陆你的域名/phpmyadmin 就可以打开了~是不是很方便?

10,安装 Zend Optimizer

虽说我觉得这个没什么大用,但使用Discuz的话,还是建议装个吧。如果你的环境不需要,还是别装了,免得和以下要安装的程序起冲突。。。

cd /var/tmp

wget http://www.silentstreet.net/blog/uploads/2010/01/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

tar xzvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

新版的Zend 3.3.9和3.3.3不同,居然没有./install.sh安装文件,打开ReadME才发现原更简单。。。

进入解压缩后得 Zend目录/var/tmp/ZendOptimizer-3.3.9-linux-glibc23-i386/data ,根据你的php版本选择,我的是PHP 5.2.x,于是选择 /5_2_x_comp 目录下的"ZendOptimizer.so"文件,将该文件复制到自己想要的位置:

cp /var/tmp/ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /xxx/xxx/ZendOptimizer.so

编辑 "/etc/php5/apache2/php.ini",将以下代码放置到最后:

[Zend]

zend_extension = "/xxx/xxx/ZendOptimizer.so"  

重启 apache 2.2 使设置生效。在 phpinfo.php文件中可以看到,Zend已经安装成功~

11,eAccelerator加速PHP

很多人使用eAccelerator来加速PHP,这个组建几乎是必装的~不过Debian/Ubuntu下安装有点小麻烦~apt安装的php程序,需要有 php5-dev这个组件才能安装eAccelerator,所以:

apt-get install php5-dev

真的有点不想装。。。装了这个还会附带很多不需要的php组件,太臃肿了。

下载 eAccelerator

cd /var/tmp
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar -jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
phpize
./configure –enable-eaccelerator=shared
make
make install

安装完毕,编辑 "/etc/php5/apache2/php.ini",将以下代码放置到[Zend]之前,否则可能会出现问题:

extension=eaccelerator.so
[eaccelerator]
eaccelerator.shm_size=32
eaccelerator.cache_dir=/tmp/eaccelerator
eaccelerator.enable=1
eaccelerator.optimizer=1
eaccelerator.check_mtime=1
eaccelerator.debug=0
eaccelerator.filter=
eaccelerator.shm_max=0
eaccelerator.shm_ttl=0
eaccelerator.shm_prune_period=0
eaccelerator.shm_only=0
eaccelerator.compress=1
eaccelerator.compress_level=9

保存退出,建立缓存目录并更改属性:

mkdir /tmp/eaccelerator // 建立目录

chmod 777 /tmp/eaccelerator // 修改目录属性

重启 Apache 2.2 ,使配置生效。

 

好了,到了这里,通过11步,Ubuntu 9.10的web服务器就基本完成了~以后在使用中一步步改进优化吧~

3 Comments

  1. playts says:

    感谢博主的经验分享。
    我刚开始学linux 最近新装ubuntu 9.10 很多知识都是通过网络找到的资料,效率不高,但略有收获。
    很想向你学习求教,有个懂行的老师或朋友来指导,少走很多弯路,希望博主能够赐教。
    感谢!

Leave a Reply

© 1997 - 2010 寂静街 · Powered by 女神工作室.