導航:首頁 > 編程語言 > php讀取環境變數

php讀取環境變數

發布時間:2022-12-24 01:03:57

Ⅰ 如何讓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的限制。

Ⅱ PHP如何得到用戶自定義的環境變數

bash_profile里起碼是:

export MYENV=/home/lib

保存後,如果你不重新開終端,那麼在當前終端source ~/.bash_profile重新載入環境變數。

Ⅲ mac上php需要設置環境變數么

mac 一般使用bash作為默認shell
Mac系統的環境變數,載入順序為:
/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
當然/etc/profile和/etc/paths是系統級別的,系統啟動就會載入,後面幾個是當前用戶級的環境變數。後面3個按照從前往後的順序讀取,如果~/.bash_profile文件存在,則後面的幾個文件就會被忽略不讀了,如果~/.bash_profile文件不存在,才會以此類推讀取後面的文件。~/.bashrc沒有上述規則,它是bash shell打開的時候載入的。
如果沒特殊說明,設置PATH的語法都為:
——————————————————-

1
2

#中間用冒號隔開
export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

(一)全局設置
下面的幾個文件設置是全局的,修改時需要root許可權
1)/etc/paths (全局建議修改這個文件 )
編輯 paths,將環境變數添加到 paths文件中 ,一行一個路徑
Hint:輸入環境變數時,不用一個一個地輸入,只要拖動文件夾到 Terminal 里就可以了。
2)/etc/profile (建議不修改這個文件 )
全局(公有)配置,不管是哪個用戶,登錄時都會讀取該文件。
3)/etc/bashrc (一般在這個文件中添加系統級環境變數)
全局(公有)配置,bash shell執行時,不管是何種方式,都會讀取此文件。
4)
1.創建一個文件:
sudo touch /etc/paths.d/mysql
2.用 vim 打開這個文件(如果是以 open -t 的方式打開,則不允許編輯):
sudo vim /etc/paths.d/mysql
3.編輯該文件,鍵入路徑並保存(關閉該 Terminal 窗口並重新打開一個,就能使用 mysql 命令了)
/usr/local/mysql/bin
據說,這樣可以自己生成新的文件,不用把變數全都放到 paths 一個文件里,方便管理。
(二)單個用戶設置
1)~/.bash_profile (任意一個文件中添加用戶級環境變數)
(註:Linux 裡面是 .bashrc 而 Mac 是 .bash_profile)
若bash shell是以login方式執行時,才會讀取此文件。該文件僅僅執行一次!默認情況下,他設置一些環境變數
設置命令別名alias ll=』ls -la』
設置環境變數:

1

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

2)~/.bashrc 同上
如果想立刻生效,則可執行下面的語句:
$ source 相應的文件
一般環境變數更改後,重啟後生效。

Ⅳ 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 也就為空了。

Ⅳ php環境變數是什麼意思!

配置php的環境變數。到我們電腦->高級->環境變數
把php.exe路徑配置上去。以後就可以直接在CMD大黑框直接使用。不需要路徑。

Ⅵ 將PHP加到電腦的環境變數中如圖(D:\PHPEnv\PHP5

第一步:找到系統PHP的安裝路徑
例如:D:\PHP,這里包含php-cgi.exe
第二步:以win7系統為例,滑鼠右鍵計算機屬性
第三步: 點擊高級系統設置
第四步:點擊環境變數
第五步:設置PATH屬性,添加PHP所在路徑
樓主還有什麼想問的話,以後可以多去後盾人查看一下相關的視頻,這樣對你更加有幫助

Ⅶ 如何添加php環境變數

右擊我的電腦 再屬性 再高級 再環境變數 再系統變數里有個path 雙擊打開來 把你的PHP路徑 加個分號再前面 添加進去就OK了!

Ⅷ env變數為null如何解決

打開 .env 文件看,這些都是有值的:

APP_ENV=local
APP_KEY=base64:JHE5bOkRg283uT0n1Zq/GgvGEer8ooYiB42/wIcCyvo=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://www.tanteng.me

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tanteng.me
DB_USERNAME=homestead
DB_PASSWORD=secret

如圖所示:

原因何在?

在 Laravel 中,如果執行php aritisan config:cache命令,Laravel 將會把 app/config 目錄下的所有配置文件「編譯」整合成一個緩存配置文件到 bootstrap/cache/config.php,每個配置文件都可以通過env函數讀取環境變數,這里是可以讀取的。但是一旦有了這個緩存配置文件,在其他地方使用env函數是讀取不到環境變數的,所以返回null.

讓我們看看這段代碼,Illuminate/Foundation/Bootstrap/DetectEnvironment.php line 18:

public function bootstrap(Application $app)
{
if (! $app->configurationIsCached()) {
$this->($app);

try {
(new Dotenv($app->environmentPath(), $app->environmentFile()))->load();
} catch (InvalidPathException $e) {
//
}
}
}

這個方法在框架啟動後就會運行,這段代碼說明了如果存在緩存配置文件,就不會去設置環境變數了,配置都讀緩存配置文件,而不會再讀環境變數了。

因此,在配置文件即 app/config 目錄下的其他地方,讀取配置不要使用env函數去讀環境變數,這樣你一旦執行php artisan config:cache之後,env函數就不起作用了。所有要用到的環境變數,在 app/config 目錄的配置文件中通過 env 讀取,其他地方要用到環境變數的都統一讀配置文件而不是使用env函數讀取。

Ⅸ 什麼是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

Ⅹ php 讀取、寫入 到php文件里 ,寫入、讀取 對應的變數

給你個簡單的Demo,你可以直接粘貼代碼測試,我也上傳了附近,你也可以下載來測試

a.php

<?php
$name='51MakeIt';
$age=30;
$sex='Boy';
$html=$name.'<br/>'.$age.'<br/>'.$sex;
$w_file='demo.php';
if(function_exists('file_put_contents')){
file_put_contents($w_file,$html);
}else{
$handle=fopen($w_file,'w+');
fwrite($handle,$html);
fclose($handle);
}
echo"<pre>";
print_r('<ahref="demo.php">查看</a>');
?>
閱讀全文

與php讀取環境變數相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163