【问题标题】:What is the purpose of the php-fpm system environment variables?php-fpm 系统环境变量的作用是什么?
【发布时间】:2020-03-28 01:54:27
【问题描述】:

我的场景

我已经设置了 1 个虚拟机(centos7):

  • Nginx
  • php-fpm
  • Nextcloud

对于这个任务,我关注了this guide(当然,我必须更改一些设置才能使其在我的环境中工作)

我的问题

在指南的某些地方,我不得不在 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 variables nginx centos7 nextcloud


    【解决方案1】:

    为什么指南说需要这些变量?

    因为它是对文章的一个有点垃圾的、无关紧要的补充。

    这些变量的作用是什么

    我猜,主要用途是为特定的 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 脚本将如何/在哪个环境中查看。

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 2018-06-13
      • 2015-08-20
      • 2015-09-16
      • 2012-03-29
      相关资源
      最近更新 更多