• Nginx+FastCGI运行原理(二)


    1.4 PHP与PHP-FPM的安装及优化(2)

    标签rlimit_files用于设置PHP-FPM对打开文件描述符的限制,默认值为1024。这个标签的值必须和Linux内核打开文件数关联起来,例如,要将此值设置为65 535,就必须在Linux命令行执行“ulimit -HSn 65536”。

    1. <</SPAN>value name="rlimit_files">1024</</SPAN>value> 

    标签max_requests指明了每个children最多处理多少个请求后便会被关闭,默认的设置是500。

    1. <</SPAN>value name="max_requests">500</</SPAN>value> 

    标签allowed_clients用于设置允许访问FastCGI进程解析器的IP地址。如果不在这里指定IP地址,将无法接受Nginx转发过来的PHP解析请求。

    1. <</SPAN>value name="allowed_clients">127.0.0.1</</SPAN>value> 

    5.管理FastCGI进程

    在配置完PHP_FPM后,就可以启动FastCGI进程了。启动FastCGI进程有以下两种方式:

    1. /usr/local/php/bin/php-cgi --fpm 

    或者

    1. /usr/local/php/sbin/php-fpm  start 

    建议采用第二种方式启动FastCGI进程。

    /usr/local/php/sbin/php-fpm还有其他参数,具体为start|stop|quit|restart|reload|logrotate。

    每个启动参数的含义如下:

    start,启动PHP的FastCGI进程。

    stop,强制终止PHP的FastCGI进程。

    quit,平滑终止PHP的FastCGI进程。

    restart, 重启PHP的FastCGI进程。

    reload, 重新加载PHP的php.ini。

    logrotate, 重新启用log文件。

    reload是个很重要的参数,它可以在PHP的FastCGI进程不中断的情况下重新加载改动过的php.ini,因此通过PHP_FPM可以平滑地变更FastCGI模式下的PHP设置。

    在FastCGI进程启动后,其监听的IP地址和端口也随即启动,可以通过ps和netstat查看相关信息。

    1. [root@localhost php]# netstat -antl|grep 9000  
    2. tcp        0       0 127.0.0.1:9000              0.0.0.0:*                   LISTEN  
    3. [root@localhost php]# ps -ef|grep php-cgi  
    4. root       3567       1      0  17:06 ?            00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf  
    5. nobody    3568  3567  0  17:06 ?        00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf  
    6. nobody    3569  3567  0  17:06 ?        00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf  
    7. nobody    3570  3567  0  17:06 ?        00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf  
    8. nobody    3571  3567  0  17:06 ?        00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf  
    9. nobody    3572  3567  0  17:06 ?        00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf  
    10. root      3583  3524  0 17:09 pts/1    00:00:00 grep php-cgi 

    1.5 配置Nginx来支持PHP

    Nginx的安装特别简单,前面已经对此进行了详细介绍,这里不再进行讲述。下面重点介绍Nginx如何通过PHP_FPM的FastCGI进程对PHP进行解析处理。

    由于Nginx本身不会对PHP进行解析,因此要实现Nginx对PHP的支持,将对PHP页面的请求交给FastCGI进程监听的IP地址及端口。如果把PHP_FPM当做动态应用服务器,那么Nginx其实就是一个反向代理服务器。Nginx通过反向代理功能实现对PHP的解析,这就是Nginx实现PHP动态解析的原理。

    这里假定Nginx的安装目录为/usr/local,则Nginx配置文件的路径为/usr/local/nginx/conf/nginx.conf。下面是在Nginx下支持PHP解析的一个虚拟主机配置实例。

    1.        server {  
    2.     include port.conf;  
    3.     server_name www.ixdba.net ixdba.net;  
    4.  
    5.         location / {  
    6.     index index.html index.php;  
    7.     root /web/www/www.ixdba.net;  
    8.     }  
    9.  
    10.     location ~ .php$ {  
    11.             root           html;  
    12.             fastcgi_pass   127.0.0.1:9000;  
    13.             fastcgi_index  index.php;  
    14.             fastcgi_param  SCRIPT_FILENAME  html$fastcgi_script_name;  
    15.             include        fastcgi_params;  
    16.        }  

    通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理,而这里的IP地址和端口就是FastCGI进程监听的IP地址和端口。

    fastcgi_param指令指定放置PHP动态程序的主目录,也就是$fastcgi_script_name前面指定的路径,这里是/usr/local/nginx/html目录。建议将这个目录与Nginx虚拟主机指定的根目录保持一致,当然也可以不一致。

    fastcgi_params文件是FastCGI进程的一个参数配置文件,在安装Nginx后,会默认生成一个这样的文件。这里通过include指令将FastCGI参数配置文件包含了进来。

    接下来,启动Nginx服务。

    1. /usr/local/nginx/sbin/nginx 

    到此为止,Nginx+PHP已经配置完成。

    1.6 测试Nginx对PHP的解析功能

    这里在/usr/local/nginx/html目录下创建一个phpinfo.php文件,内容如下:

  • 相关阅读:
    防抖
    promise race
    promise 输出 1 2 3
    promise all
    红绿灯
    vue3 与 vue2 区别
    promise A+ 规范
    【校招VIP】出品:在线实习“职查查”每期简历描述和面试实战
    【校招VIP】出品:“小米手机”场景下的秒杀策略和实现
    【校招VIP】出品:在线实习“校跑腿”每期简历描述和面试实战
  • 原文地址:https://www.cnblogs.com/wajika/p/6395466.html
Copyright © 2020-2023  润新知