nginx和php都安装好了,那么怎么让nginx处理请求时转给php去处理呢,今天来学学如何nginx配置php。
# 配置PHP
location ~ \.php/?.*$ {
# 设置php-cgi
fastcgi_pass 127.0.0.1:9000;
# Linux用下行代替上行可以提升性能
# fastcgi_pass unix:/tmp/php-cgi.sock;
# 该指令设置的文件名会被附加到URI的前面,并且中间添加一个'/'
# 值保存于$fastcgi_script_name
fastcgi_index index.php;
# 加载PHP环境参数,这些参数会被php的超全局数组$_SERVER获取
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
# 配置PHP
location ~ \.php/?.*$ {
# 设置php-cgi
fastcgi_pass 127.0.0.1:9000;
# Linux用下行代替上行可以提升性能
# fastcgi_pass unix:/tmp/php-cgi.sock;
# 该指令设置的文件名会被附加到URI的前面,并且中间添加一个'/'
# 值保存于$fastcgi_script_name
fastcgi_index index.php;
# 加载PHP环境参数,这些参数会被php的超全局数组$_SERVER获取
include fastcgi_params;
# 配置pathinfo
set $fastcgi_script_name2 $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
set $fastcgi_script_name2 $1;
set $path_info $2;
}
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name2;
fastcgi_param SCRIPT_NAME $fastcgi_script_name2;
}
# 配置单一入口
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
或者用 try_files
# 配置单一入口
location / {
try_files $uri $uri/ /index.php;
}
把上面的结合在一起就可以配置一个完整的php执行环境了。
如果需要单一入口,删掉下面的38~43行前面得注释符#
即可。
server {
# 监听端口
listen 80;
# 监听地址或域名,多个之间用空格隔开
server_name localhost;
# 网站根目录
root /web/path;
# 默认页
index index.php index.html;
# 配置PHP
location ~ \.php/?.*$ {
# 设置php-cgi
fastcgi_pass 127.0.0.1:9000;
# Linux用下行代替上行可以提升性能
# fastcgi_pass unix:/tmp/php-cgi.sock;
# 该指令设置的文件名会被附加到URI的前面,并且中间添加一个'/'
# 值保存于$fastcgi_script_name
fastcgi_index index.php;
# 加载PHP环境参数,这些参数会被php的超全局数组$_SERVER获取
include fastcgi_params;
# 配置pathinfo
set $fastcgi_script_name2 $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
set $fastcgi_script_name2 $1;
set $path_info $2;
}
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name2;
fastcgi_param SCRIPT_NAME $fastcgi_script_name2;
}
# 配置单一入口
#location / {
# if (!-e $request_filename) {
# rewrite ^/(.*)$ /index.php/$1 last;
# break;
# }
#}
# 设置图片缓存时间
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
expires 30d; # 有效期30天
}
# 设置js和css缓存时间
location ~ .*\.(js|css)?$ {
expires 12h; # 有效期12小时
}
# 允许访问.well-known目录(用于https)
location ~ /.well-known {
allow all;
}
# 禁止访问其他隐藏文件(夹)
location ~ /\.{
deny all;
}
# 设置访问日志文件
access_log logs/localhost.access.log;
# 设置错误日志文件
error_log logs/localhost.error.log;
}
暂无评论,赶紧发表一下你的看法吧。