簡體   English   中英

PHP $ _ENV與Linux環境(Ubuntu)

[英]PHP $_ENV vs Linux environment (Ubuntu)

在我的PHP代碼中,我試圖訪問在/ etc / profile中導出的linux系統環境變量。

在終端中鍵入“ printenv”時,可以看到該變量(稱為MEMCACHED_1)已設置。

但是我的PHP沒有看到該變量,它既不在$ _ENV數組中,也無法使用getenv函數訪問它。

在我的php.ini文件中,我設置了variables_order = "EGPCS" 這為$ _ENV添加了很多變量,但MEMCACHED_1仍然不存在。

您到底是什么意思php.ini /etc/php5/apache2/php.ini (由Apache模塊運行的腳本使用的配置)和/etc/php5/cli/php.ini (由命令行腳本使用的配置)。 后者在Ubuntu上的默認設置為variables_order = "GPCS"

如果您從命令行運行代碼,請嘗試更改/etc/php5/cli/php.ini並設置variables_order = "EGPCS"

如果您使用的是Apache模塊,則可能希望以$_SERVER而不是$_ENV訪問所需的變量,或者在調用注釋之前建議getenv()http : //php.net/manual/en/reserved.variables.environment .php文件

更新

要記住的另一件事:由Apache模塊啟動的PHP進程與用戶www-data (或Apache配置中的User變量所說的一樣)一起運行。 因此,您還應該檢查printenv以獲取正確的用戶:

 sudo su -l www-data -c 'printenv'

-應該使用USER=www-data或類似名稱(不是root,不是您的登錄名)。 確保在MEMCACHED_1設置了MEMCACHED_1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM