一、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的限制。
一、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的限制。