前段时间发现站点的访问变得很不稳定,最开始以为只是网速的问题就没有太在意,直到有一次莫名其妙宕机,ssh上去重启服务,顺便top了一下结果吓了一跳–空闲的物理内存只有几百k了。再往下看发现了一大串apache进程,而且每个进程的内存占用都不小。听说nginx的效率要比apache高,于是决定换上nginx试试。
注意:本文只介绍从LAMP迁移至LNMP的步骤,其中需要改动的只有nginx 和php5,关于MySQL的配置请自行Google,本文不再赘述。
如果没有特别说明,php7的配置只需要将php5换成php7即可。
首先更新apt并安装nginx、php5-fpm
sudo apt-get update
sudo apt-get install nginx php5-fpm
配置php5
sudo nano /etc/php5/fpm/php.ini
找到这一行:
cgi.fix_pathinfo=1
改为
cgi.fix_pathinfo=0
编辑/etc/php5/fpm/pool.d/www.conf
sudo nano /etc/php5/fpm/pool.d/www.conf
找到 listen = 127.0.0.1:9000
,
改为(如果本来就是这样就不用改了)
listen = /var/run/php5-fpm.sock
保存并退出
配置nginx
编辑虚拟主机配置文件
sudo nano /etc/nginx/sites-available/my_config
作如下改动
找到root /usr/share/nginx/www;
,将路径改为网站根目录(如/var/www/)
root /var/www;
找到 index index.html index.htm;,加入index.php
index index.php index.html index.htm;
找到 server_name example.com; 将example.com替换为你的域名
server_name nyan.im
找到try_files $uri $uri/ /index.html;
,用如下语句替换。
这一句用于将404的url交由index.php来处理。多数php框架的路由,以及WordPress的伪静态都需要用到。
try_files $uri $uri/ /index.php?q=$uri&$args;
找到location ~ \.php$
这一块,将相关的语句取消注释
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
#如果是php7,改为fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
执行nginx -t
测试配置文件
测试无误后启动nginx
sudo service nginx start
发表回复/Leave a Reply