簡體   English   中英

php-fpm 系統環境變量的目的是什么?

[英]What is the purpose of the php-fpm system environment variables?

我的場景

我已經在 1 個 VM (centos7) 中進行了設置:

  • nginx
  • php-fpm
  • 下雲

對於這項任務,我遵循了本指南(當然,我必須更改一些設置才能使其在我的環境中工作)

我的問題

在指南的某些地方,我不得不在 php-fpm /etc/php-fpm.d/www.conf的配置文件中取消注釋這些行

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

在指南中,據說這些是php-fpm系統環境變量。 我不得不取消注釋它們才能激活它們。
我對這些變量一無所知,但我知道它們將我的系統的一些信息作為值。
另外,我不得不說我的 nextcloud 在沒有注釋這些變量的情況下工作沒有錯誤。 但只是為了測試,我再次評論了這些行,nextcloud 繼續像往常一樣工作。

所以我想學習但目前我無法理解的是:
為什么指南說需要這些變量? 在nginx和php-fpm的通信過程中,這些變量如果被激活,有什么作用呢?

為什么指南說需要這些變量?

因為它對文章來說有點垃圾,無關緊要。

這些變量的作用是什么

我猜,主要用途是為特定 PHP-FPM 池傳遞一個具有不同值的環境變量。 例如,您已經在/usr/local/bin/foo下安裝了一些 CLI 工具(例如在圖像格式之間進行轉換)。 然后你想讓你的網站能夠啟動它。 它不能,除非它可以在PATH環境變量中找到它(默認情況下不包括/usr/local/bin

所以你有兩個選擇:

  1. 更改 PHP-FPM 用戶的PATH (在池設置中定義),例如在~/.bashrc

  2. env[PATH] = /usr/local/bin:/usr/bin:/bin

所以這只是實現相同目標的方法之一。

如果激活,在nginx和php-fpm的通信過程中?

不,這與 NGINX->PHP-FPM 無關。 這就是 PHP-FPM 將如何運行其工作進程(在哪個環境下),因此它會影響 PHP 腳本將如何/哪個環境看到。

暫無
暫無

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

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