一、安装 Nginx + MariaDB (MySQL)
Ubuntu 官方源里的 Nginx 版本实在过低,所以我们先加入 ppa:
sudo apt-get install python-software-properties software-properties-common
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
然后安装 Nginx + MariaDB
sudo apt-get install nginx-extras mariadb-server
按照屏幕提示输入 MySQL 的 root 密码即可完成安装。
二、安装 PHP 并修改配置文件
然后安装一些常用的 PHP 包,默认是 PHP 5.5 +
sudo apt-get install php5-cgi php5-mysql php5-fpm php5-curl php5-gd php5-idn php-pear php5-imap php5-mcrypt php5-mhash php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
我们采用 PHP-FPM 配合 Nginx 使用,所以加入配置文件
sudo tee /etc/nginx/conf.d/php.conf << EOF
upstream php {
server unix:/var/run/php5-fpm.sock;
}
EOF
然后检查一下 /etc/php5/fpm/pool.d/www.conf, 保证里面有这三句:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
如果有不一样的地方(比如最后一句的权限可能是 0666), 改成一样; 如果注释掉了, 去掉前面的分号。
VPS 内存如果很小的话, 在刚才的 /etc/php5/fpm/pool.d/www.conf 里考虑做这样的修改,分号后面为解释:
pm = dynamic ;Dynamic allocate child-processes for php-fpm
pm.max_children = 5 ;Limit number of child-processes
pm.start_servers = 2 ;Start 2 child-processes when server starts
pm.min_spare_servers = 2 ;Remain at least 2 when spare
pm.max_spare_servers = 5 ;Remain at most 5 when spare
pm.max_requests = 300 ;300 requests the most per child-process(and then exit and start new one)
三、更新 Nginx 配置文件
接着你可以在 /etc/nginx/sites-enabled 目录下放个配置文件,如:
server {
listen 80;
server_name 111com.net;
root /var/www/111com.net;
index index.html index.htm index.php;
access_log /var/log/nginx/111com.net.access.log;
error_log /var/log/nginx/111com.net.error.log;
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; }
location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
expires max; log_not_found off; access_log off;
}
location ~ \.php?$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass php;
}
}
接着在 /var/www/111com.net 目录下放一个 php 文件,比如 index.php:
phpinfo(); // This would be used to display all of the PHP information available for the installation.
?>
最后重启下服务:
sudo service nginx restart
sudo service php5-fpm restart
访问一下 111com.net 试试,是不是大功告成了?先别急,还有一个 bug,你会发现这样装完以后 PHP 文件会显示一片空白,返回的却是 200 OK 状态,这是因为目前的 Nginx 1.6.2 版本官方包的 /etc/nginx/fastcgi_params 文件里少了一行,请手工在最上方加入
fastcgi_param SCRIPT_FILENAME $request_filename;
如果内存大的话可以考虑下 Memecached 或 XCache 来做 PHP 缓存,按照我们的经验,用本文的配置,一台 2GB 内存的 VPS 支撑每天 20 万 PV 的 WordPress ,配合 W3 Total Cache 插件 + Memcached,文章数目在一万篇以下、主题不要做得太傻逼,那么完全没啥大问题。