在linux中安装php+MySQL+Nginx环境是需要折腾一段时间了,今天小编来为各位整理了一篇Debian下安装php+MySQL+Nginx环境过程,希望文章对各位有帮助.
一个小小的VPS,根本用不到企业级的CentOS,况且VPS本来资源就有限.centos+apache2真的太奢侈了.我现在的VPS标配都是php5,mysql 5和nginx 1.下面的方法恨简单,本着简单,高效原则,全部apt-get来安装,不用15分钟.如果超过30分钟,这个VPS就不能用:如果不是钻石硬盘那就是网络有问题。
拿到VPS,装debian 6 32位的,嗯,先更新一下.
- apt-getupdate
- apt-getupgrade
除去除去一些不需要的东西和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-getautoremove
- apt-getclean
接下来装php,mysql和nginx了,debian官方源的软件版本太老了,太老太老了…那么换个非官方的吧.Dotdeb是个不错的源,打开/etc/apt/sources.list,添加下面两行之后保存上传.
- debhttp://packages.dotdeb.orgstableall
- deb-srchttp://packages.dotdeb.orgstableall
然后增加新源的证书:
- wgethttp://www.dotdeb.org/dotdeb.gpg
- catdotdeb.gpg|apt-keyadd-
增加了新源当然要更新一下:
- apt-getupdate
- apt-getupgrade
接着就可以装了,根据自己需要来安装相应的东西,比如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_processes2;
- …
别的基本不用改,但是我把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-fwww@my.domain.com//phpfensi.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/nginxrestart
- /etc/init.d/php5-fpmrestart
- /etc/init.d/mysqlrestart
基本上这个很节约资源也够处理你的请求了,题外话,别老觉得nginx会导致502,好刀在好刀客手里才能发挥最大作用.根本不需要把nginx做后端,前面在加个apache.我们单台服务器用nginx+php跑日2000万动态PV不出问题.