在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-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 //Vevb.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不出问题.
新闻热点
疑难解答