乌徒帮技术范儿技术中心服务器配置 › 自己来配置Linux上运行的NginX+php-fpm

自己来配置Linux上运行的NginX+php-fpm

分类:服务器配置 标签:

在上一篇文章《阿里云安装NGINX+PHP》中,我们简单介绍了如何在阿里云上面安装NginX和php,但是仅仅安装好是没有用的,你必须要学会如何在上面搭建网站。本文就来简单的介绍如何在nginx上搭建起能够运行php网站的环境。

配置NginX:nginx.conf

NginX本身是不能运行php的,和Apache不同的是,NginX上一般通过php-fpm来运行php。现在的php环境一般都集成了php-fpm,简单的说php-fpm是php环境的一个补丁,能够让php运行更快。但如果我们抛开php不谈,如果我们要搭建一个html的静态完整,应该怎么去配置NginX呢?

首先,打开NginX的配置文件:

vi /etc/nginx/nginx.conf

我们可以看到类似httpd.conf的初始化环境配置。你会发现,它的内容比httpd.conf少的多,不要紧张,后面有好戏。对于我个人而言,我唯一做的就是,把gzip打开了:

gzip on;
gzip_disable "MSIE [1-6]";

我们可以看到有这么一句:

include /etc/nginx/conf.d/*.conf;

才知道,原来更多的配置在conf.d这个目录下面。查看后才知道,几乎和网站配置相关的都在conf.d/default.conf这个配置文件内。

于是我们保存退出VI,重新打开:

vi /etc/nginx/conf.d/default.conf

这时,我们可以看到文件是server{}的形式,我们就知道中括号内就是一个虚拟主机的配置了。

server {

    #端口
    listen       80;
    #绑定域名,不同域名用空格分开
    server_name  www.yourdomain.com youdomain.com;
    #确定这个网站的根目录
    root   /usr/share/nginx/html;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    #文件索引,也就是首页
    location / {
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    # 其他地方都不必改了,但是下面这个地方一定要照搬过去,我就曾经因为下面这个地方没配置正确,所以无法执行php
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}

}

修改完成之后,保存退出,重启nginx:

>service nginx restart
>service nginx reload

用你的域名访问下,看看能不能看到nginx的欢迎页面了。

配置php-fpm,运行php

上文讲到,php-fpm是运行php的必备条件(如果需要这个模式的话),所以在运行网站之前,我们必须先正确配置php-fpm.

vi /etc/php-fpm.conf

你会发现也被骗了,实际内容页没有。所以还得重新编辑

vi /etc/php-fpm.d/www.conf

这里面的内容很多,就不一一介绍了,我唯一改的地方是

pm.max_requests = 500

去掉注释,修改为500,限制同一时刻可以访问的最大并发数。

保存退出,重启php-fpm。

>service php-fpm restart

现在放一个php文件到你的网站根目录下,试试能正常运行吗?

实现重写

网上很多文章说nginx支持.htacess是狗屁,.htaccess是WordPress用户习惯了apache的后遗症,你稍微多谷歌几下就知道nginx和Apache的机制不一样,运行在nginx上不建议想办法使用.htaccess。

NginX通过在第一步中的.conf配置文件中加入重写规则生效。在default.conf的server{}中直接加入下面的代码:

if (!-e $request_filename){
        rewrite /. /index.php last;
}

这样就能支持WordPress的重写了。注意:这段代码直接放在root /usr/share/nginx/html;下一行就可以了。

NginX的配置和Apache中使用.htaccess不同,每一次修改配置都需要重启或重写加载NginX,其实这个和修改httpd.conf的道理是一样的。重启代码在上面有了。

php-fpm优化

php-fpm会占用大量的内存和资源通过一些优化可以减轻这种压力:

http://www.qixing318.com/article/in-the-case-of-high-load-of-php-fpm-tuning.html

填写个人信息,赶快回复吧!