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服务器就基本完成了~以后在使用中一步步改进优化吧~
感谢博主的经验分享。
我刚开始学linux 最近新装ubuntu 9.10 很多知识都是通过网络找到的资料,效率不高,但略有收获。
很想向你学习求教,有个懂行的老师或朋友来指导,少走很多弯路,希望博主能够赐教。
感谢!
我也不懂Linux,慢慢在学~大部分都是骚扰某人学来的~哈哈