thinkphp3.2部署nginx

简介: 新服务器配置的是nginx服务器。最近陆续的将之前apache服务器上的项目迁移到nginx上。

QQ图片20220425231818.jpg

新服务器配置的是nginx服务器。


最近陆续的将之前apache服务器上的项目迁移到nginx上。


之前一些项目使用thinkphp3.2写的,在对项目进行迁移的时候有一些问题,记录一下。


关于thinkphp,没什么多说的,详情访问thinkphp.cn

 

Thinkphp3.2和thinkphp5是一样的,都是不支持nginx服务器的(我所谓的不支持是需要修改配置)


Thinkphp5部署nginx服务器请参考我另一篇文章《thinkphp5部署nginx


开始正题:


第一步:


修改TP3.2的配置文件支持pathinfo模式


'URL_MODEL' => 2,

 

第二步:


找到php.ini(/usr/local/php/etc/php.ini)查看是否开启


cgi.fix_pathinfo 配置项,默认为0,修改为1,开启 pathinfo 选项。

 

第三步:


进行nginx重写(添加下面这写代码)


location ~ .php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
    location /
    {
            #如果是二级目录就用 rewrite ^/文件夹名称/(.*)$ /index.php?s=/$1 last;)
      if (!-e $request_filename)
      {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
      }
    }


文章最后,会展示网站域名配置文件。

 

第四步:(这一步可以省略,我没配置这个也好用了)


修改:nginx的配置文件 (/usr/local/nginx/conf/vhost/*.conf)


#include enable-php.conf; # 注释这一行
include enable-php-pathinfo.conf; # 加入这行

 

第五步:最重要


重启nginx服务器


重启php-fpm服务

 

我的thinkphp3.2项目的域名配置文件:


server {
        listen       80;
        server_name  xxxxx.guanchao.site ;    #填写你的域名
        index index.html index.htm index.php; #默认打开页面
        root   "xxxxxxxxxxxxxxxxx";       #站点根目录
        location ~ .php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
    location /
    {
            #如果是二级目录就用 rewrite ^/文件夹名称/(.*)$ /index.php?s=/$1 last;)
      if (!-e $request_filename)
      {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
      }
    }
}

 



目录
相关文章
|
3月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1565 4
|
3月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
191 5
|
11月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
442 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
8月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
375 14
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
904 1
|
Kubernetes 应用服务中间件 nginx
k8s基础使用--使用k8s部署nginx服务
本文介绍了Kubernetes中核心概念Deployment、Pod与Service的基本原理及应用。Pod作为最小调度单元,用于管理容器及其共享资源;Deployment则负责控制Pod副本数量,确保其符合预期状态;Service通过标签选择器实现Pod服务的负载均衡与暴露。此外,还提供了具体操作步骤,如通过`kubectl`命令创建Deployment和Service,以及如何验证其功能。实验环境包括一台master节点和两台worker节点,均已部署k8s-1.27。
1245 1
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
4016 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
1024 0
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
425 0