回覆列表
  • 1 # 錢布斯

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

  • 中秋節和大豐收的關聯?
  • 36歲女生想找個有車有房的老公,且要求彩禮50萬元,你怎麼看?