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的主要内容,如果未能解决你的问题,请参考以下文章

php怎么把程序部署到nginx服务器

如何在lnmp上部署Thinkphp

如何在Kubernetes 上部署安装PHP + Nginx 多容器应用

宝塔部署PHP项目含域名访问部署IP访问部署数据库端口号Nginx等知识

docker 部署nginx、php-fpm错误记录

部署社交网站(SVN+PHP+NGINX+MYSQL+MFS)