本文主要是介绍Nginx 解析 PHP(转自跟阿铭学linux),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在LAMP中,PHP是作为httpd的一个模块出现的,只要PHP模块被加载,那么就能解析PHP脚本了。而在LNMP中,PHP是以一个服务(php-fpm)的形式存在的,首先要启动php-fpm服务,然后nginx再和php-fpm通信。也就是说,处理PHP脚本解析的工作是由php-fpm来完成的,nginx只是一个搬运工,它把用户请求传递给php-fpm,php-fpm处理完成后把结果传递给nginx,nginx再把结果返回给用户。
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /usr/local/nginx/html;
location ~ \.php$ {
includefastcgi_params;
fastcgi_passunix:/tmp/php-fcgi.sock;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
其中fastcgi_pass用来指定php-fpm的地址,如果php-fpm监听的是一个tcp:port的地址(比如127.0.0.1:9000),那么也需要在这里改成fastcgi_pass 127.0.0.1:9000。这个地址一定要和php-fpm服务监听的地址匹配,否则会报502错误。
还有一个需要注意的是,fastcgi_param SCRIPT_FILENAME后面跟的路径为该站点根目录,和前面定义的root那个路径要保持一致。如果这里配置不对,访问php页面会出现404。
这篇关于Nginx 解析 PHP(转自跟阿铭学linux)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!