【问题标题】:Server environment variables for apacheapache的服务器环境变量
【发布时间】:2018-02-21 16:04:40
【问题描述】:

在 Apache 中使用服务器环境变量时遇到问题。

这里有一些关于环境的信息:

  • 操作系统:Debian 8.10 Jessie
  • Web 托管平台:Plesk
  • PHP : 7.1.8

如果我使用 PHP-CGI 执行,使用环境变量的执行脚本可以正常工作,但如果我通过网页执行脚本,我无法恢复环境变量。

通过网页访问脚本时用户不同,但我无法加载页面的环境变量。

到目前为止,我已经尝试在以下位置设置环境变量:

  • /etc/环境
  • 用户的.bashrc
  • .htaccess
  • apache2ctl
  • PHP 命令“putenv”
  • ld.so.conf.d

到目前为止,没有任何效果。

我的问题:如何通过网页而不是使用 php-cgi 来恢复环境变量?

谢谢

【问题讨论】:

  • 问题出在用户差异 - 需要与我认为的 php-cgi 相同的用户(如果有人评论错误,我会删除)
  • Apache 在另一个用户上运行(默认为 www-data)。如果您将 then 添加到名为 envvars 的文件中,您应该能够看到环境设置。
  • 谢谢,了解一下,今天晚些时候试一试并报告
  • 显然,当我启动 apache 时未加载 envvars。我想知道当我重新启动 apache 时,Plesk 是否会干扰 Apaches 加载的脚本

标签: php apache environment-variables plesk


【解决方案1】:

如果您使用 Plesk,您可以在您订阅的 PHP 上添加“附加指令”:

[php-fpm-pool-settings] 
env[some_env_variable]="cool-value"

然后,当您检查 phpinfo() 时,您可以看到:

【讨论】:

    【解决方案2】:

    好的,经过 3 周的反复试验,我找到了适合我的案例的解决方案。

    以下是我必须采取的步骤:

    1. 从 PHP fastCGI 更改为 apache 服务的 FPM
    2. 将以下代码添加到/opt/php7.1/etc/php-fpm.d/mydomaine.conf

    [php-fpm-pool-settings] env[LD_LIBRARY_PATH]="/var/www/vhosts/localhost.localdomain/httpdocs/sqlanywhere16/lib64:/var/www/vhosts/localhost.localdomain/httpdocs/sqlanywhere16/ lib32"

    1. 执行命令:

    ldconfig -v

    ldconfig -p

    1. 重启服务器

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 2011-04-22
      • 1970-01-01
      • 2021-10-27
      • 2018-09-06
      • 2017-01-15
      • 1970-01-01
      • 2012-08-29
      • 2021-11-17
      相关资源
      最近更新 更多