如何正确配置 Nginx + PHP

如何正确配置 Nginx + PHP,第1张

1. php用php-fpm启动,然后nginx

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

includefastcgi_params

}

这样就可以了

2.安装一个集成的软件phpstudy

nginx本身不支持php解析,需要配合php-fpm来配置。

location ~ \.php$ {

     root /var/www #指定php的根目录

     fastcgi_pass 127.0.0.1:9000#php-fpm的默认端口是9000

     fastcgi_index index.php

     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

     include fastcgi_params

}

centos下安装php-fpm (php及其它组件已经安装过的情况)

yum install php-fpm

启动php-fpm 并设置开机启动 (centos 7)

systemctl start php-fpm

systemctl enable php-fpm

直接贴上代码逐行进行讲解,此处贴出一个能正常启动php脚本的最简nginx vhost配置:

[plain] view plain copy

server {

listen 8011

server_name test.cn

location ~ \.php?.*$ {

root /share/test

fastcgi_pass 127.0.0.1:9000

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

includefastcgi_params

}

}

1、第一个大括号 server{ }:不必多说,代表一个独立的server,

2、listen 8011:代表该server监听8011端口

3、location ~ \.php?.*${

}:代表一个能匹配对应uri的location,用于匹配一类uri,并对所匹配的uri请求做自定义的逻辑、配置。这里的location,匹配了所有带.php的uri请求,例如:http://192.168.244.128:8011/test.php/asdasd

http://192.168.244.128:8011/index.php等

4、root /share/test:请求资源根目录,告诉匹配到该location下的uri到/share/teset文件夹下去寻找同名资源。

5、fastcgi_pass 127.0.0.1:9000:这行开始是本文的重点:这行代码的意思是,将进入到该location内的uri请求看做是cgi程序,并将请求发送到9000端口,交由php-fpm处理。

6、fastcgi_param SCRIPT_FILENAME

$document_root$fastcgi_script_name

:这行配置意思是:动态添加了一行fastcgi配置,配置内容为SCRIPT_FILENAME,告知管理进程,cgi脚本名称。由于我的nginx中只有fastcgi_params文件,没有fastcgi.conf文件,所以要使php-fpm知道SCRIPT_FILENAME的具体值,就必须要动态的添加这行配置。

7、include fastcgi_params引入fastcgi配置文件

以上就是最简洁版的nginx启动php脚本的最简配置,当重启nginx之后,在/share/test目录下创建一个xx.php文件,输入<?php

echo "hello world"?>保存,然后在浏览器中访问localhost:8011/xx.php

就可以在网页上显示hello world了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11347586.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存