一個小小的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不出問題.