![](/img/trans.png)
[英]Amazon Linux AMI: Can't find PHP-FPM www.conf file for PHP 5.5.7 with Nginx
[英]Can php-fpm service interpret environment variables inside www.conf to create unique log files?
我正在嘗試在ALB后面設置多個雲服務器,以將其日志文件寫入我的通用EFS。 我有一個共享的驅動器EFS,可以通過一個開發實例訪問該文件,而所有生產實例都安全地位於VCN的后面。 我正在嘗試使用系統環境變量(特別是HOSTNAME),以便每個使用相同配置文件啟動php-fpm的生產實例(以便我可以進行自動縮放)編寫不同的日志。
我已經看到回答說使用環境變量的* nix方法應該可以,但是它們對我不起作用。 具體來說,$ {HOSTNAME}返回空白(我已經檢查了它是否為apache和root用戶設置; root啟動php-frm服務)。 我還嘗試了插值,以及“%()”的bash風格。 他們都不工作。
它們全部返回空字符串(但不返回錯誤)。
我確實在我的環境變量中創建了一個變量,並使它起作用。
我還讀到您不能直接給變量分配env值,但是當我嘗試創建一個單獨的變量時,實際上在啟動服務時返回了錯誤。
這是我期望的工作方式:
slowlog = "/shared/logs/php-fpm/www-slow-${HOSTNAME}.log"
嘗試了以下所有條件:
slowlog = "/shared/logs/php-fpm/www-slow-".${HOSTNAME}.".log"
->主機名空白
slowlog = "/shared/logs/php-fpm/www-slow-${HOSTNAME}.log"
->主機名空白
slowlog = "/shared/logs/php-fpm/www-slow-%(HOSTNAME).log"
->文件名包含%(HOSTNAME)
slowlog = "/shared/logs/php-fpm/www-slow-$HOSTNAME.log"
->文件名包括$ HOSTNAME
slowlog = "/shared/logs/php-fpm/www-slow-{$HOSTNAME}.log"
->文件名包括{$ HOSTNAME}
slowlog_name = "/shared/logs/php-fpm/www-slow-{$HOSTNAME}.log"
slowlog = slowlog_name
->啟動錯誤:未知變量slowlog_name
感謝您的提示/建議!
PHP 7.3確實支持對配置文件中的日志文件名進行環境變量插值-我剛剛對此進行了測試。 我懷疑在bash中您會陷入困境, $HOSTNAME
是bash變量,但不能自動成為環境變量,並且Linux系統在$HOSTNAME
是否設置為環境變量方面有所不同。 RedHat發行版會設置它,Ubuntu不會:
jacob@nitrogen ~ $ cat /etc/redhat-release
Fedora release 29 (Twenty Nine)
jacob@nitrogen ~ $ echo $HOSTNAME
nitrogen
jacob@nitrogen ~ $ env | grep HOSTNAME
HOSTNAME=nitrogen
jacob@iad11:~$ grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Ubuntu 18.04.2 LTS"
jacob@iad11:~$ echo $HOSTNAME
iad11
jacob@iad11:~$ env | grep HOSTNAME
您可以使用其他環境變量進行測試,然后在自定義啟動腳本中設置$HOSTNAME
,然后啟動PHP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.