php-http-vhosts.conf虚拟主机环境变量不起作用
作者:互联网
我在Mac OS X 10.9.4上运行带有PHP 5.4.24的Apache 2.2.26.我有几个在该系统上运行的虚拟主机,并且所有虚拟主机都成功运行.我正在尝试将环境变量添加到其中一个虚拟主机,并且我不希望它们位于.htaccess中,因此我唯一的选择是将它们添加到httpd-vhosts.conf中.
问题是环境变量在我将它们安装在httpd-vhosts.conf文件中之后(当然,而且在我重新启动Apache“ sudo apachectl restart”之后)也没有出现.但是,如果我将它们添加到.htaccess(仅出于比较目的),它们看起来就很好.我想念什么?
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mysite.local
DocumentRoot "/path/to/mysite.com"
SetEnv siteid 1234
ErrorLog "/var/log/apache2/mysite.local-error_log"
</VirtualHost>
我还仔细检查了php.ini文件,以确保其中没有任何禁止的东西,并且唯一相关的行看起来不错:
variables_order = "GPCSE"
再次提醒您,我的虚拟主机RUN FINE.只是在我的PHP代码中调用时,环境变量没有出现.我已经尝试了以下三个命令:
echo $_SERVER["siteid"];
echo getenv("siteid");
echo apache_getenv("siteid");
我该怎么办?
解决方法:
对我来说,这是一个令人难以置信的追求,但是我找到了一个非常简单但晦涩的答案.首先,让我澄清一下我以前的问题,我没有意识到我的Mac运行的是OS X Server,这有效地改变了Apache在我的系统上运行的方式.
话虽如此,以下是等效的httpd-vhosts.conf文件PER VIRTUAL HOST通过OS X Server应用程序安装在我的系统上.
/Library/Server/Web/Config/apache2/sites/0000_any_80_mylocalsite.conf
显然,“ 80”是常规http请求的端口,“ mylocalsite”是我在OS X Server应用程序中创建的本地虚拟主机的名称.现在,该文件已经由OS X Server生成,我现在可以按以下方式对其进行编辑:
sudo vi /Library/Server/Web/Config/apache2/sites/0000_any_80_mylocalsite.conf
它打开了一个配置文件,看起来与正常的httpd-vhosts.conf文件类似,并且几乎完全相同(请注意SetEnv testid“ 1234”行,这是我一直在寻找的解决方案,并且只能手动完成,而不能通过操作系统完成X Server应用程序)...
<VirtualHost *:80>
ServerName mysite.local
ServerAdmin admin@example.com
DocumentRoot "/my/local/docroot/path/to/mysite.com"
SetEnv testid "1234"
DirectoryIndex index.html index.php /wiki/ /xcode/ default.html
CustomLog /var/log/apache2/access_log combinedvhost
ErrorLog /var/log/apache2/error_log
<IfModule mod_ssl.c>
SSLEngine Off
SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
SSLProtocol -ALL +SSLv3 +TLSv1
SSLProxyEngine On
SSLProxyProtocol -ALL +SSLv3 +TLSv1
</IfModule>
<Directory "/my/local/docroot/path/to/mysite.com">
Options All -Indexes -ExecCGI -Includes +MultiViews
AllowOverride All
<IfModule mod_dav.c>
DAV Off
</IfModule>
<IfDefine !WEBSERVICE_ON>
Deny from all
ErrorDocument 403 /customerror/websitesoff403.html
</IfDefine>
</Directory>
</VirtualHost>
请希望有一天能对其他人有所帮助.我花了太多时间寻找这种解决方案,只是在蛮力战术中偶然发现它,我想知道这一希望可以为某人节省大量时间进行自我搜索.
标签:vhosts,apache,virtualhost,php,macos 来源: https://codeday.me/bug/20191121/2049038.html