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-fpmsystemctl 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了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)