一个小小的VPS,根本用不到企业级的CentOS,况且VPS本来资源就有限.centos+apache2真的太奢侈了.我现在的VPS标配都是php5,mysql 5和nginx 1.下面的方法恨简单,本着简单,高效原则,全部apt-get来安装,不用15分钟.如果超过30分钟,这个VPS就不能用:如果不是钻石硬盘那就是网络有问题。
拿到VPS,装debian 6 32位的.
嗯,先更新一下
apt-get update
apt-get upgrade
除去除去一些不需要的东西和apache2这样耗资源的.
apt-get -y purge apache2-* bind9-* xinetd samba-* portmap sendmail-* sasl2-bin
(如果不需要sendmail发邮件,还可以加上sendmail-*)
你硬盘小咋办?删除一些不必要的组件
apt-get -y purge lynx memtester python-* odbcinst-* sudo ttf-*
(也可以再加上unixodbc等)
可以打扫一下
apt-get autoremove
apt-get clean
接下来装php,mysql和nginx了.
debian官方源的软件版本太老了,太老太老了…那么换个非官方的吧.Dotdeb是个不错的源.
打开/etc/apt/sources.list,添加下面两行之后保存上传
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
然后增加新源的证书
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
增加了新源当然要更新一下
apt-get update
apt-get upgrade
接着就可以装了,根据自己需要来安装相应的东西,比如gd等组件.比如我基本上用到这些:
apt-get install php5-cli php5-fpm php5-curl php5-mysql nginx mysql-server
大概110M左右东西,在安装过程中需要输入mysql的root密码.其他就是等待.
安装完毕就根据自己VPS的配置进行设置.配置文件都在/etc下.
建议修改:
/etc/nginx/nginx.conf
…
worker_processes 2;
…
别的基本不用改,但是我把gzip_开头的选项都打开.
/etc/php5/fpm/pool.d/www.conf (我用的完整版本www.conf)
[www]
listen = /tmp/php-www.sock
listen.mode = 0666
user = www-data
group = www-data
pm = static
pm.max_children = 8
pm.max_requests = 5000
rlimit_files = 512000
request_slowlog_timeout = 10s
request_terminate_timeout = 30s
slowlog = /var/log/php-fpm.slow.log
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = off
php_admin_value[memory_limit] = 24M
php_admin_value[open_basedir] = /var/www/:/tmp/:/var/tmp/
这是256M OpenVZ的标准配置,根据内存大小调整pm.max_children和php_admin_value[memory_limit]的值
mysql 5.5默认就用Innodb了,又不是浩大工程,根本用不到,还占那么多资源,增加下面两项即可
/etc/mysql/my.cnf
[mysqld]
default-storage-engine = MyISAM
…
skip-innodb
然后重启服务
/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart
/etc/init.d/mysql restart
基本上这个很节约资源也够处理你的请求了.
题外话,别老觉得nginx会导致502, 好刀在好刀客手里才能发挥最大作用.根本不需要把nginx做后端,前面在加个apache.我们单台服务器用nginx+php跑日2000万动态PV不出问题.