Nginx设置$_SERVER变量的方法详解

在有的PHP中定义ENVIRONMENT常量,可以区分开发环境和生产环境,如:

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
switch (ENVIRONMENT)
{
 case 'development':
  error_reporting(-1);
  ini_set('display_errors', 1);
 break;
 
 case 'testing':
 case 'production':
  ini_set('display_errors', 0);
  if (version_compare(PHP_VERSION, '5.3', '>='))
  {
   error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
  }
  else
  {
   error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
  }
 break;
 
 default:
  header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
  echo 'The application environment is not set correctly.';
  exit(1); // EXIT_ERROR
}

那么这里的$_SERVER['CI_ENV']如果要定义在哪里定义呢?

Nginx配置设置$_SERVER变量

打开一个nginx的网站配置:

location ~ \.php$ {
        try_files      $uri =404;
        root           /usr/share/nginx/html/tanteng.me/public;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  MYENV 'DEV';
        include        fastcgi_params;
}

这里的fastcgi_param MYENV ‘DEV’,就是新加的一行语句。

在PHP中打印$_SERVER看看:

……
  "SERVER_ADDR" => "192.168.10.31"
  "SERVER_NAME" => "www.tanteng.me"
  "SERVER_PORT" => "80"
  "SERVER_SOFTWARE" => "nginx/1.9.11"
  "SERVER_PROTOCOL" => "HTTP/1.1"
  "SERVER_ADMIN" => ""
  "SERVER_SIGNATURE" => ""
  "SCRIPT_NAME" => "/index.php"
  "REDIRECT_STATUS" => "200"
  "REQUEST_URI" => "/test/redis"
  "REMOTE_PORT" => 61290
  "DOCUMENT_URI" => "/index.php"
  "REQUEST_METHOD" => "GET"
  "REMOTE_ADDR" => "192.168.10.1"
  "CONTENT_TYPE" => ""
  "DOCUMENT_ROOT" => "/usr/share/nginx/html/tanteng.me/public"
  "MYENV" => "DEV"
  "CONTENT_LENGTH" => ""
  "QUERY_STRING" => ""
  "SCRIPT_FILENAME" => "/usr/share/nginx/html/tanteng.me/public/index.php"
  "SCRIPT_URL" => "/index.php"
  "SCRIPT_URI" => http://www.111cn.net
  "PHP_SELF" => "/index.php"
……

就这样就可以看到多了一个”MYENV”的变量。

时间: 2024-08-29 07:57:33

Nginx设置$_SERVER变量的方法详解的相关文章

Nginx下ThinkPHP5的配置方法详解

本文主要给大家介绍了关于Nginx下ThinkPHP5的配置方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: url里public目录的隐藏 出于安全的考虑,TP5的入口文件改成放在public下了,因为这样的话能防止被恶意用户访问到"/thinkphp/"."/vendor/"等等这些目录下的文件.所以当你以之前的习惯将网站documentroot配置为项目根目录的时候就会需要在url后面加上/public/来访问.当然可能也会有童鞋把入口文件放

php变量使用方法详解

静态变量 动态变量当函数执行完之后,其存储空间会自动释放.而静态变量则当函数执行完后,存储空间仍然存储其变量.如果想利用函数的变量结果在进行计算,就需要将变量设置为静态变量. php静态变量的设置方法是在变量前加"static"符号. 实例:  代码如下 复制代码 <?php  function fun(){   static $i=0;   echo "$i <br>";   $i++;  }  fun();  fun(); ?> 动态变量

nginx启用https(SPDY)配置方法详解

要openssl 1.0.1版本以上支持的,低于这个版本SPDY是无法启动的  代码如下 复制代码   wget http://nginx.org/download/nginx-1.4.0.tar.gz wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz wget http://zlib.net/zlib127.zip 接着就是编译安装的,也就几个简单的步骤  代码如下 复制代码   tar xvzf nginx-1.4.0.tar.

Nginx防盗链配置具体方法详解

一:一般的防盗链如下:  代码如下 复制代码 location ~* .(gif|jpg|png|swf|flv)$ { valid_referers none blocked www.111cn.net ; if ($invalid_referer) { rewrite ^/ http://www.111cn.net; #return 404; } } 第一行:gif|jpg|png|swf|flv 表示对gif.jpg.png.swf.flv后缀的文件实行防盗链 第二行: 表示对www.in

ASP包含文件方法详解

详解 ASP包含文件方法详解 SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法.ASP 只使用这一机制的 #include 指令.要在 .asp 文件中插入一个文件,使用下面的语法: <!--#include virtual | file ="filename"--> virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称. 被包含文件不要求专门的文件扩展名:但是,为被包含文件

ASP.NET动态设置页面标题的方法详解

这篇文章介绍了ASP.NET动态设置页面标题的方法详解,有需要的朋友可以参考一下     ASP.NET为我们提供了一个控件类:System.Web.UI.HtmlControls.HtmlGenericControl.它可以实现 HTML的元素的一个实例,比如在.cs代码中控制aspx中的<td>元素(注意,它不是<ASP:TableCell>). 我们知道,页面标题是被包含在<TITLE></TITLE>中的,而<TITLE>也是一个HTML

Ruby中的钩子方法详解

  这篇文章主要介绍了Ruby中的钩子方法详解,本文讲解了什么是钩子方法.included.Devise中的 included.extended.ActiveRecord中的 extended.prepended.inherited等内容,需要的朋友可以参考下 Ruby的哲学理念是基于一个基本的要素,那就是让程序员快乐.Ruby非常注重程序员的快乐,并且也提供了许多不同的方法来实现它. 它的元编程能力能够让程序员编写在运行时动态生成的代码.它的线程功能使得程序员有一种优雅的的方式编写多线程代码.

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)_php实例

一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel #安装php.MySQL.Nngix所依赖的包 3.下载以下包 #我把所有源文件都下载在root目录,读者可自行修改源文件存放目录 3.1 libmcrypt-2.5.8

PHP中filter函数校验数据的方法详解_php技巧

介绍PHP中filter函数校验数据的方法详解,PHP过滤器包含两种类型:Validation用来验证验证项是否合法.Sanitization用来格式化被验证的项目,因此它可能会修改验证项的值,将不合法的字符删除. input_filters_list() 用来列出当前系统所支持的所有过滤器. 复制代码 代码如下: <?php foreach(filter_list() as $id => $filter) {     echo $filter.' '.filter_id($filter).&