php系統環境變數
A. php環境變數
可以的
MY_ENV不是一個變數
只不過是一個自己定義的常量
相當於我們通常說的PI
而putenv("MY_ENV=$env_var");
putenv函數用來配置系統環境變數。
這是一種格式
B. php 伺服器變數$_SERVER 伺服器環境變數 $_ENV
PHP  $_SERVER 變數
  
 $_SERVER 是一個包含諸如頭信息(header)、路徑(path)和腳本位置(script locations)的數組。它是 PHP 中一個超級全局變數,我們可以在 PHP 程序的任何地方直接訪問它。
  
 $_SERVER 包含著眾多的信息,你可以嘗試直接列印它:
  
 print_r($_SERVER);
  
  $_SERVER 數組元素 
  
 更多情況下,我們只需要 $_SERVER 數組中的某些元素(數組單元)。$_SERVER 數組包含的元素如下:
  
  頁面程序相關 
  
 $_SERVER[『PHP_SELF』]:相對於網站根目錄的路徑及 PHP 程序名稱,與 document root 相關。
  
 $_SERVER[『HTTP_REFERER』]:鏈接到當前頁面的前一頁面的 URL 地址。
  
 $_SERVER[『SCRIPT_NAME』]:相對於網站根目錄的路徑及 PHP 程序文件名稱 。
  
 $_SERVER[『REQUEST_URI』]:訪問此頁面所需的 URI 。
  
 $_SERVER[『SCRIPT_FILENAME』]:當前運行 PHP 程序的絕對路徑及文件名。
  
 $_SERVER[『PATH_TRANSLATED』]:當前 PHP 程序所在文件系統(不是文檔根目錄)的基本路徑。
  
 $_SERVER[『QUERY_STRING』]:查詢(query)的字元串(URL 中第一個問號 ? 之後的內容但不包括 # 後面的內容)。
  
 $_SERVER[『argv』]:傳遞給當前 PHP 程序的參數。
  
 $_SERVER[『argc』]:命令行模式下,包含傳遞給程序的命令行參數的個數。
  
 $_SERVER[『REQUEST_TIME』]:請求開始時的時間戳,從 PHP 5.1.0 起有效。
  
 $_SERVER[『REQUEST_METHOD』]:訪問頁面時的請求方法,例如:「GET」、「HEAD」,「POST」或「PUT」。
  
 $_SERVER[『HTTP_ACCEPT』]:當前請求的 Accept: 頭信息的內容。
  
 $_SERVER[『HTTP_ACCEPT_CHARSET』]:當前請求的 Accept-Charset: 頭信息的內容。例如:「iso-8859-1,*,utf-8」。
  
 $_SERVER[『HTTP_ACCEPT_ENCODING』]:當前請求的 Accept-Encoding: 頭信息的內容。例如:「gzip」。
  
 $_SERVER[『HTTP_ACCEPT_LANGUAGE』]:當前請求的 Accept-Language: 頭信息的內容。例如:「zh-cn」。
  
 $_SERVER[『HTTP_CONNECTION』]:當前請求的 Connection: 頭信息的內容。例如:「Keep-Alive」。
  
 $_SERVER[『HTTP_HOST』]:當前請求的 Host: 頭信息的內容。
  
 $_SERVER[『HTTPS』]:如果 PHP 程序是通過 HTTPS 協議被訪問,則被設為一個非空的值。
  
 $_SERVER[『PHP_AUTH_DIGEST』]:當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變數被設置成客戶端發送的「Authorization」HTTP 頭內容(以便作進一步的認證操作)。
  
 $_SERVER[『PHP_AUTH_USER』]:當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。
  
 $_SERVER[『PHP_AUTH_PW』]:當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。
  
 $_SERVER[『AUTH_TYPE』]:當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是認證的類型。
  
  伺服器端相關 
  
 $_SERVER[『DOCUMENT_ROOT』]:當前運行 PHP 程序所在的文檔根目錄,在伺服器配置文件中定義。
  
 $_SERVER[『GATEWAY_INTERFACE』]:伺服器使用的 CGI 規范的版本,例如:「CGI/1.1」。
  
 $_SERVER[『SERVER_ADDR』]:當前運行 PHP 程序所在的伺服器的 IP 地址。
  
 $_SERVER[『SERVER_NAME』]:當前運行 PHP 程序所在的伺服器的名稱。
  
 $_SERVER[『SERVER_ADMIN』]:Apache 伺服器配置文件中的 SERVER_ADMIN 參數。
  
 $_SERVER[『SERVER_PORT』]:伺服器所使用的埠。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 埠。
  
 $_SERVER[『SERVER_SIGNATURE』]:包含伺服器版本和虛擬主機名的字元串。
  
 $_SERVER[『SERVER_SOFTWARE』]:伺服器標識的字串,在響應請求時的頭信息中給出。
  
 $_SERVER[『SERVER_PROTOCOL』]:請求頁面時通信協議的名稱和版本,例如:「HTTP/1.0」。
  
  其他雜項 
  
 $_SERVER[『HTTP_USER_AGENT』]:當前請求的 User-Agent: 頭信息的內容,該字元串表明了訪問該頁面的用戶代理的信息。
  
 $_SERVER[『REMOTE_ADDR』]:正在瀏覽當前頁面用戶的 IP 地址。
  
 $_SERVER[『REMOTE_HOST』]:正在瀏覽當前頁面用戶的主機名。
  
 $_SERVER[『REMOTE_PORT』]:用戶連接到伺服器時所使用的埠。
  
 注意,如果以命令行方式運行 PHP,上面列出的元素幾乎沒有有效的(或是沒有任何實際意義的)。
PHP $_ENV 變數 
  
 $_ENV 是一個包含伺服器端環境變數的數組。它是 PHP 中一個超級全局變數,我們可以在 PHP 程序的任何地方直接訪問它。
  
 $_ENV 只是被動的接受伺服器端的環境變數並把它們轉換為數組元素,你可以嘗試直接列印它:
  
 print_r($_ENV);
  
 限於篇幅,在此不再列出列印的結果,且不同的伺服器上,列印出的結果可能是完全不同的。
  
  $_ENV 數組元素 
  
 $_ENV 數組中的元素(數組單元)隨伺服器環境不同而有較大差異,所以無法像 $_SERVER 那樣列出完整的列表。以下是 $_ENV 數組包含的比較通用的元素:
  
 $_SERVER[『PATH』]:環境變數 PATH 路徑。
  
 $_SERVER[『CLASSPATH』]:系統 CLASSPATH 路徑。
  
 $_SERVER[『LIB』]:系統 LIB 庫路徑。
  
 $_SERVER[『INCLUDE』]:系統 Include 路徑,注意與 PHP 的包含路徑是不一樣的。
  
 $_SERVER[『OS』]:操作系統類型。
  
 $_SERVER[『LANG』]:系統語言,如 en_US 或 zh_CN。
  
 $_SERVER[『PWD』]:當前工作目錄。
  
 $_SERVER[『TEMP』]:系統 TEMP 路徑。
  
 $_SERVER[『AP_PARENT_PID』]:當前進程 ID 號。
  
 $_SERVER[『NUMBER_OF_PROCESSORS』]:系統 CPU 數目。
  
  $_ENV 為空的原因及解決辦法 
  
 如果列印輸出 $_ENV 為空,可以檢查一下 php.ini 的配置:
  
 variables_order = "EGPCS"
  
 上述配置表示 PHP 接受的外部變數來源及順序,EGPCS 是 Environment、Get、Post、Cookies 和 Server 的縮寫。如果 variables_order 的配置中缺少 E ,則 PHP 無法接受環境變數,那麼 $_ENV 也就為空了。
C. 什麼是php環境變數 都有些什麼語法
$_SERVER
變數由 web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。 
$_GET
經由 URL 請求提交至腳本的變數。類似於舊數組 $HTTP_GET_VARS 數組(依然有效,但反對使用)。 
$_POST
經由 HTTP POST 方法提交至腳本的變數。類似於舊數組 $HTTP_POST_VARS 數組(依然有效,但反對使用)。 
$_COOKIE
經由 HTTP Cookies 方法提交至腳本的變數。類似於舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用)。 
$_FILES
經由 HTTP POST 文件上傳而提交至腳本的變數。類似於舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用)。
詳細信息請參閱 POST 方法上傳。 
$_ENV
執行環境提交至腳本的變數。類似於舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用)。 
$_REQUEST
經由 GET,POST 和 COOKIE 機制提交至腳本的變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否
以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。此數組在 PHP 4.1.0 之前沒有直接對應的版本。
參見 import_request_variables()。 
$_GLOBALS
D. 如何添加php環境變數
右擊我的電腦 再屬性 再高級 再環境變數 再系統變數里有個path 雙擊打開來 把你的PHP路徑 加個分號再前面 添加進去就OK了!
E. 如何讓PHP能夠讀取系統環境變數
一、fpm模式
1、通過伺服器傳遞
如在nginx的配置里設置:
fastcgi_param  ENV_XXX  123456;
每次頁面請求nginx都會將此變數傳遞給php,php可以通過getenv函數或$_SERVER全局變數獲得。
2、通過fpm配置傳遞
fpm在每次啟動時都會讀取php-fpm.conf文件中的環境變數設置,如:
env[ENV_XXX]="test test"
或者讓fpm讀取系統環境變數,如:
env[ENV_XXX]=$ENV_XXX
注意此種方式要確保系統環境變數存在,且不被sudo禁用。
如果fpm是用sudo方式啟動,默認sudo會禁用一些環境變數,可以通過以下方式放開限制:
vim /etc/sudoers
Defaults    env_reset
Defaults    env_keep = "ENV_XXX"
或者乾脆放開所有限制:
Defaults    !env_reset
最後,如果修改了php-fpm.conf中的設置需要重啟fpm才能生效,同樣php可以通過getenv函數或$_SERVER全局變數獲得環境變數。
二、命令行模式
命令行模式限制較少,可以通過getenv函數或$_SERVER全局變數獲取對當前執行用戶有效的系統環境變數,同樣要注意sudo的限制。
F. 安裝php需要哪些環境變數
一、加入「環境變數」主要還是為了盡量找到所需文件。
從這個意義來說,環境變數范圍越廣越好,最好包括全盤,但這樣一來命中率肯定下降!
所以又希望搜索范圍越小越好(只要能找到文件就夠了)。
二、「php路徑」可以不加入「環境變數」,我就這樣做的。
當系統調用命令時優先搜索「當前目錄」,如果當前目錄也沒有就會按照環境變數里的設置進行搜索,如果還是找不到,就會顯示「既不是內部命令也不是外部命令」。
通過觀察<?php
echo
phpinfo();
?>的輸出,以及經驗,初步得出,為了正確調用,只需滿足其中之一:
1、要麼把php.ini拷貝一份放到%windir%里(在php.ini文件設置正確);
2、或者把php路徑加入「環境變數」。
-----本人的php安裝目錄是D:\php5---
如本人做了一個批處理「.CMD」,放在D:\php5里,內容如下:
rem
重要:有時候D:\php5下面的php.ini改了,但%windir%下面的php.ini並沒有改!最好統一
rem
也可以不拷貝,直接把D:\php5;d:\php5\ext添加到「環境變數」「path」里
php.ini
%windir%
pause
G. php環境變數是什麼意思!
配置php的環境變數。到我們電腦->高級->環境變數
把php.exe路徑配置上去。以後就可以直接在CMD大黑框直接使用。不需要路徑。
H. php中環境變數跟超全局變數的區別
環境變數指系統文件路徑等信息,一般與編程無關,只在搭建環境中用到。
PHP中預定義了幾個超級全局變數 ,這意味著它們在一個腳本的全部作用域中都可用。 你不需要特別說明,就可以在函數及類中使用。
PHP 超級全局變數列表:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
