【发布时间】:2016-10-12 19:27:03
【问题描述】:
我确保安装了 env 模块:
a2enmod
Your choices are: access_compat
...
Which module(s) do you want to enable (wildcards ok)?
env
Module env already enabled
我尝试通过添加以下部分在“/etc/apache2/apache2.conf”中为 localhost 设置环境变量:
<VirtualHost *:80>
ServerName localhost
ServerAdmin me@somewhere.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SetEnv devmode 1
</VirtualHost>
...使用以下命令重新启动 Apache:
sudo /etc/init.d/apache2 restart
...然后在 PHP 中使用:
getenv("devmode")
或:
apache_getenv("devmode")
...但是当通过本地主机上的浏览器访问脚本时,这些函数没有任何显示,PHP 中的值是空的。我尝试将命令单独放置,没有 VirtualHost 部分:
SetEnv devmode 1
我尝试将以下行添加到 envvars:
export devmode=1
更新 我还尝试将 VirtualHost 部分放在 /etc/apache2/sites-available 中的专用文件中,并使用 a2ensite 添加该文件。
我使用的是 Linux Mint 17.3 版。我做错了什么?
【问题讨论】:
-
您确定执行了 virthost 指令。 Apache 不会应用所有虚拟主机,只会应用它找到的第一个匹配的虚拟主机。
-
我完全不确定 Apache。虽然 apache2.conf 文件中没有其他“VirtualHost”部分。
-
尝试将 SetEnv devmode 测试放到您的 .htaccess 文件中
-
一开始你还在使用虚拟主机吗?如果不是,只需将
SetEnv devmode 1放在任何地方(没有<VirtualHost>容器)。 -
我的印象是您仍然不确定虚拟主机是什么或您的网站托管在哪个虚拟主机上。您是使用
http://localhost还是通过IP 地址或注册域名加载站点?你有非默认端口吗?