最近在用thinkphp做个小东西,基本完成后部署到nginx服务器上才发觉nginx是不支持pathinfo的,网上搜索了别人的解决方法,有两种思路:
1、修改thinkphp让他可以在nginx上运行
2、修改nginx让它支持pathinfo
网上说nginx开启pathinfo是有一定风险的,能不用pathinfo最好不用,所以还是折腾thinkphp吧,个人觉得这种方法相对第2种方法来得简单
修改nginx的rewrite
location /
{
index index.php;
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ .+\.php($|/)
{
set $script $uri;
set $path_info “/”;
if ($uri ~ “^(.+\.php)(/.+)”)
{
set $script $1;
set $path_info $2;
}
fastcgi_pass unix:/tmp/php-cgi.sock;
# fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
fastcgi_index index.php?IF_REWRITE=1;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root/$script;
fastcgi_param SCRIPT_NAME $script;
}
然后项目配置下url模式改为2
'URL_MODEL'=>2,
如果是多个项目,布署项目时要把项目布署到目录里,如后台的项目放到Admin目录里,那么在nginx的rewrite里再写一条
location /XXX/ {
if (!-e $request_filename) {
rewrite ^/XXX/(.*)$ /XXX/index.php?s=$1 last;
break;
}
}
相关推荐
在Nginx上部署ThinkPHP项目的过程中,遇到的主要问题是Nginx默认不支持ThinkPHP的pathinfo模式,这会导致URL路径解析错误,进而引发页面循环跳转的问题。为了解决这个问题,有两种策略:一是切换到非pathinfo模式,...
1,心血来潮,把ThinkPHP项目部署到了nginx上,以上是在apache上跑的。突然发现nginx不支持pathinfo功能,难怪在TP中调怎么都没管用。 2,开始上文件了,比网上其他一些杂的好多了: server { listen 80; #listen...
Nginx作为高性能的HTTP和反向代理服务器,常用于部署Web应用。配置Nginx支持伪静态,可以使URL更友好,有助于SEO优化。对于ThinkPHP框架,配置过程如下: 1. **创建配置文件**:在Nginx的配置目录下(如`/etc/nginx...
在上篇文章给大家介绍了在Nginx上部署ThinkPHP项目教程,今天给大家介绍nginx下thinkphp的配置,具体详解如下: ## domain redirect #if ($host != my.ruanzhuangyun.cn){ # rewrite ^/(.*)$ ...
总结来说,解决ThinkPHP 5与Nginx部署时仅能跳转首页的问题,关键在于确保Nginx正确处理PHP文件的请求,并能兼容ThinkPHP的路由机制。这通常涉及到调整location块中FastCGI的相关参数,以及为location /块添加正确的...
因此,当在Nginx上部署ThinkPHP项目时,必须添加适当的配置来正确处理PATH_INFO,以确保框架能够正确解析和使用URL路径信息。 3. Ubuntu环境下的Nginx配置: 在Ubuntu系统下配置Nginx通常涉及编辑/etc/nginx/sites-...
然而,Nginx默认配置并不直接支持ThinkPHP的URL重写(PathInfo)模式,需要通过调整Nginx的配置文件来实现。 在Nginx中启用ThinkPHP的URL Rewrite功能,主要是通过`location`块中的`rewrite`指令来完成。下面是一个...
在云虚拟主机上部署ThinkPHP5项目是一个常见的需求,尤其对于开发者来说,了解这一过程能够帮助他们快速地将应用程序上线。下面将详细讲解部署ThinkPHP5项目的关键步骤,以及需要注意的一些安全性和性能优化事项。 ...
在使用ThinkPHP框架开发应用并将应用部署到阿里云服务器时,通常需要对nginx的配置文件nginx.conf进行调整,以确保服务器能正确地处理基于ThinkPHP框架的应用请求。 本篇内容详解了在阿里云上配置nginx以支持...
总结一下,解决tp5在Nginx下修改配置访问问题,主要步骤包括:更新Nginx的`fastcgi_param`以指向项目根目录的上一级,配置Nginx处理ThinkPHP5的伪静态请求,以及在`php.ini`中解除`scandir()`函数的禁用。...
标题中的“thinkphp5.1完美集成gatewayworker”是指在ThinkPHP5.1这个流行的PHP框架基础上,成功地整合了GatewayWorker,一个专为实时通信设计的高性能、高并发的PHP服务框架。这个集成允许开发者在Web应用中无缝地...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...
如果你遇到问题,可以参考其他文章来解决问题,如“解决nginx不支持thinkphp中pathinfo的问题”、“Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持”等,这些文章提供了更深入的解决方案和示例。 总之,通过...
docker搭建适合thinkphp5的lnmp+redis开发环境,nginx版本为最新版本 php版本为7.3 mysql版本为5.7 需要先安装了composer 和docker环境 在html目录下面执行composer update下载第三方开发包 之后执行docker-compose ...
8. **部署和调试**:完成开发后,我们需要将项目部署到服务器上。这包括上传代码、安装必要的扩展、配置服务器环境和数据库连接。同时,使用错误日志和调试模式可以帮助我们定位和解决问题。 综上所述,"ThinkPhp5+...