nginx上部署PHP
Posted 反射弧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx上部署PHP相关的知识,希望对你有一定的参考价值。
环境:centos7 nginx1.16.1
(1)先将tp源代码下载到nginx目录下
tp放到/usr/local/nginx/目录下,root为相对路径,如:
tp在/usr/local/nginx/wwwroot/ 则 root wwwroot/public;
tp不再nginx目录,则使用alias 绝对路径指定,不需要root。
注意:存放tp的目录要有可执行权限,否则无法进入目录,访问报403
(2)servr配置:
server {
listen 80;
server_name www.fanshehu.xyz localhost;
charset utf8;
access_log logs/host.access.log;
root www/tp5/public;
index index.php index.html index.htm; #如果请求是站点根目录,则显示这些页面
location / { #根目录,所有请求都能匹配到
if (!-e $request_filename) { #如果请求的不是一个文件或目录,则重写。否则请求是站点根目录或静态资源,nginx将静态资源以二进制流返回
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ .php { #如果请求有.php
root www/tp5/public;
fastcgi_pass 127.0.0.1:9000; #交给php-fpm处理
#fastcgi_index index.php; #如果请求是网站根目录,则加上index.php在url后,此时$fastcgi_script_name等于index.php。在这里并不需要,可注释掉
include fastcgi.conf; #引入fastcgi.conf,里面有php-fpm需要的参数
set $real_script_name $fastcgi_script_name; #
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; #此时脚本
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
}
以上是关于nginx上部署PHP的主要内容,如果未能解决你的问题,请参考以下文章
如何在Kubernetes 上部署安装PHP + Nginx 多容器应用