本文目录一览:
- [如何正确配置Nginx + PHP](#如何正确配置Nginx + PHP)
- 如何正确配置Nginx+PHP
- [如何正确配置 Nginx 和 PHP](#如何正确配置 Nginx 和 PHP)
- linux下nginx 需要配置php路径吗
- nginx配置支持php
如何正确配置Nginx + PHP
2.在nginx.conf
中加入下面一段配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
/usr/local/nginx/html/$fastcgi_script_name;
这里我写的是php的绝对路径,你可以修改成相应的。
如何正确配置Nginx+PHP
其实没多复杂
- 将nginx和php都装好了
- 然后配置nginx,将php请求分发给php-fpm处理
- linux下的配置文件一般在
/usr/local/nginx/conf/nginx.conf
- 找到下面字样,并取消注释,且注意这个
$document_root
这个地方(原本应为$script***
的,改成$document_root
)
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
3.启动nginx和php-fpm,然后写个phpinfo脚本测试下成功与否就可以了
如何正确配置 Nginx 和 PHP
直接贴上代码逐行进行讲解,此处贴出一个能正常启动php脚本的最简nginx vhost配置:
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;
include fastcgi_params;
}
}
- 第一个大括号
server{ }
:不必多说,代表一个独立的server listen 8011
:代表该server监听8011端口location ~ \.php?.*$ { }
:代表一个能匹配对应uri的location,用于匹配一类uri,并对所匹配的uri请求做自定义的逻辑、配置。这里的location,匹配了所有带.php
的uri请求,例如:- 等
root /share/test
:请求资源根目录,告诉匹配到该location下的uri到/share/test
文件夹下去寻找同名资源。fastcgi_pass 127.0.0.1:9000
:这行开始是本文的重点:这行代码的意思是,将进入到该location内的uri请求看做是cgi程序,并将请求发送到9000端口,交由php-fpm处理。fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
:这行配置意思是:动态添加了一行fastcgi配置,配置内容为SCRIPT_FILENAME
,告知管理进程,cgi脚本名称。由于我的nginx中只有fastcgi_params
文件,没有fastcgi.conf
文件,所以要使php-fpm知道SCRIPT_FILENAME
的具体值,就必须要动态的添加这行配置。include fastcgi_params;
引入fastcgi配置文件 以上就是最简洁版的nginx启动php脚本的最简配置,当重启nginx之后,在/share/test
目录下创建一个xx.php
文件,输入:
<?php
echo "hello world";
?>
保存,然后在浏览器中访问localhost:8011/xx.php
就可以在网页上显示hello world了。
linux下nginx 需要配置php路径吗
需要。 如果是nginx+php配置,也可以通过查找php执行路径
ps aux | grep php
如,路径为:
/usr/local/nginx/sbin/php-fpm
然后执行以下命令:
/usr/local/nginx/sbin/php-fpm -i | grep "Loaded Configuration File"
即可看到php加载的配置文件。
nginx配置支持php
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