THINKPHP 部署nginx上URL 构造错误

http://demo.uctoo.deetaa.com/.php?s=/install/step1.html

类似这样,入口文件名错误;

查thinkphp源码;

if(!IS_CLI) {
    // 当前文件名
    if(!defined(‘_PHP_FILE_‘)) {
        if(IS_CGI) {
            //CGI/FASTCGI模式下
            $_temp  = explode(‘.php‘,$_SERVER[‘PHP_SELF‘]);
            define(‘_PHP_FILE_‘,    rtrim(str_replace($_SERVER[‘HTTP_HOST‘],‘‘,$_temp[0].‘.php‘),‘/‘));
        }else {
            define(‘_PHP_FILE_‘,    rtrim($_SERVER[‘SCRIPT_NAME‘],‘/‘));
        }
    }
    if(!defined(‘__ROOT__‘)) {
        $_root  =   rtrim(dirname(_PHP_FILE_),‘/‘);
        define(‘__ROOT__‘,  (($_root==‘/‘ || $_root==‘\\‘)?‘‘:$_root));
    }
}

无奈PHP_SELF 却为空;当然在win上这个是有值的和SCRIPT_NAME 一样的;

环境为centos6.5 nginx1.7 php 5.56 支持fastCGI

解决:可以直接取SCRIPT_NAME;

时间: 2024-11-07 16:26:09

THINKPHP 部署nginx上URL 构造错误的相关文章

关于ThinkPHP在BAE上URL的rewrite问题

在BAE上若想用ThinkPHP的那一套URL路由方式,必须在BAE上rewrite一下,之前我就直接用了不过是403错误,rewrite方式如下: 把你在BAE上的文件checkout到本地,在根目录下的app.conf(没有可以手动创建一个),然后把下面的代码粘贴上保存即可: handlers: - expire : .jpg modify 10 years - expire : .swf modify 10 years - expire : .png modify 10 years - e

thinkphp部署服务器后出现404错误

关于404几种常见的错误总结,具体问题具体分析:1.没有配置伪静态默认情况下,伪静态的设置为html,如果我们设置伪静态后缀为空 'URL_HTML_SUFFIX'=>'' 多个伪静态后缀设置 用|分割 'URL_HTML_SUFFIX' => 'html|shtml|xml' 2.伪静态还需要配合路由设置,配置nginx.conf location / { index index.html index.htm index.php; if (!-e $request_filename) { r

thinkphp nginx php-fpm url rewrite 导致 404 错误

thinkphp nginx php-fpm url rewrite 导致 404 错误 之前thinkphp的系统部署在apache上,考虑到在并发性能nginx比apache强悍得多,所以在centos上以 nginx+php-fpm模式重新部署了thinkphp系统,结果发现诸如 1 /index.php/home/user/verify 此类的url nginx会报404错误,但是改成 1 /index.php?s=/home/user/verify 之后却能够访问,这说明前一种url

A网站引用B服务器虚拟目录文件导致:网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题

A网站引用B服务器共享目录(虚拟目录)导致:网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题 本攻略并不是本机的部署导致的HTTP 错误 500.19 问题  本机500.19错误 解决办法连接 HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息模块 IIS Web Core 通知 BeginRequest 处理程序 尚未确定 错误代码 0x80070005 配置

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式 BY 孙 权 · 2014年8月6日 我的环境 系统 : Ubuntu12.04 x86_64 环境 : Nginx1.1.19+PHP5.3.10+Mongo2.6.3 由于公司要用Nginx+Mongo+PHP,所以我要把刚刚配置好的LAMP推翻,然后重新安装LNMP.软件安装就不在这里介绍了,如果有需要,可以看这里. 如何安装Nginx. 下面介绍如何使Nginx支持ThinkPHP的Pathinfo和URL

SSL/TLS深度解析--在 Nginx 上部署 TLS

利用 openssl 源代码安装 Nginx [[email protected] software]# tar xf nginx-1.15.5.tar.gz [[email protected] software]# cd nginx-1.15.5/ [[email protected] nginx-1.15.5]# groupadd nginx [[email protected] nginx-1.15.5]# useradd nginx -M -s /sbin/nologin -g ngi

跨过Nginx上基于uWSGI部署Django项目的坑

先说说他们的关系,Nginx和uWSGI都是Web服务器,Nginx负责静态内容,uWSGI负责Python这样的动态内容,二者配合共同提供Web服务以实现提高效率和负载均衡等目的.uWSGI实现了多个协议,如WSGI,HTTP协议,还有它自己的uwsgi协议,想了解更多关于uWSGI和uwsgi协议内容可以查阅这里.这样和fastcgi类似,请求和响应的流程如下: Request > Nginx > uWSGI > Django > uWSGI > Nginx > R

Nginx上部署HTTPS + HTTP2

Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev(或者OpenSSL),且ln -s /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/,然后在编译配置Nginx时要指定--with-http_ssl_module和--with-http_v2_module.另外,若要在本地运行openssl命令,要安装OpenSSL包,本人用的OpenSSL-1.0.2g.注:本文采用Ubuntu 16.04上的操作实例. 下

Nginx上部署HTTPS

Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev,且ln -s /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/,然后在编译配置Nginx时要指定--with-http_ssl_module.另外,要在Shell中运行openssl命令,还要安装openssl包,本人用的OpenSSL-1.0.2g.注:本文采用Ubuntu 16.04上的操作实例. 下图展示了数字证书(HTTPS中使用的由CA签名的公钥证书)