gpt4 book ai didi

PHP $_ENV 与 Linux 环境(Ubuntu)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:55 25 4
gpt4 key购买 nike

在我的 PHP 代码中,我试图访问我在/etc/profile 中导出的 linux 系统环境变量。

当我在终端中键入“printenv”时,我可以看到设置了变量(称为 MEMCACHED_1)。

但是我的 PHP 看不到那个变量,它既不在 $_ENV 数组中,也不能用 getenv 函数访问它。

在我的 php.ini 文件中,我设置了 variables_order = "EGPCS"。这为 $_ENV 添加了很多变量,但 MEMCACHED_1 仍然不存在。

最佳答案

php.ini 到底是什么意思?有/etc/php5/apache2/php.ini(Apache模块运行的脚本使用的配置)和/etc/php5/cli/php.ini(使用的配置通过命令行脚本)。后者将 variables_order = "GPCS" 作为 Ubuntu 上的默认设置。

如果您从命令行运行代码,请尝试更改 /etc/php5/cli/php.ini 并设置 variables_order = "EGPCS"

如果您使用的是 Apache 模块,您可能希望以 $_SERVER 而不是 $_ENV 访问所需的变量,或者调用 getenv() 在此评论之前建议:http://php.net/manual/en/reserved.variables.environment.php

更新

另一件事要记住:由 Apache 模块启动的 PHP 进程使用用户 www-data(或 Apache 配置中的任何 User 变量)运行。因此,您还应该检查 printenv 以获取正确的用户:

 sudo su -l www-data -c 'printenv'

-- 这应该有行 USER=www-data 或类似的东西(不是 root,不是你的登录)。确保 MEMCACHED_1 设置在那里。

关于PHP $_ENV 与 Linux 环境(Ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16226374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com