我正在尝试在我的 Mac(10.12.6)上运行 Drupal 7 多站点安装。
我的目录设置:
~/Sites/index.html
~/Sites/drupal/docroot/sites/site1
~/Sites/drupal/docroot/sites/site2
我的/etc/hosts
:
127.0.0.1 site1.local
127.0.0.1 site2.local
如果我访问http://localhost
,我可以看到我的index.html
文件,没有问题。如果我访问http://site1.local
或http://site2.local
,我会看到 502 Bad Gateway。
在/usr/local/etc/httpd/httpd.conf
:
- 我正在监听 80 端口
DocumentRoot
并<Directory
设置为/Users/me/Sites/
AllowOverride
被设定为All
ServerName
设置为localhost
,用户和组设置为me
,staff
以下内容未注释:
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
我的 vhosts 文件如下所示:
<VirtualHost *:80>
DocumentRoot /Users/me/Sites
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /Users/me/Sites/drupal/docroot
ServerName site1.local
ErrorLog /var/log/apache2/site1cms-error.log
Options ExecCGI FollowSymLinks
SetEnv APPLICATION_ENVIRONMENT local
SetEnv AH_SITE_ENVIRONMENT local
SetEnv AH_SITE_GROUP local
<Directory /Users/me/Sites/drupal/docroot>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /Users/me/Sites/drupal/docroot
ServerName site2.local
ErrorLog /var/log/apache2/site2cms-error.log
Options ExecCGI FollowSymLinks
SetEnv APPLICATION_ENVIRONMENT local
SetEnv AH_SITE_ENVIRONMENT local
SetEnv AH_SITE_GROUP local
<Directory /Users/me/Sites/drupal/docroot>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</Directory>
</VirtualHost>
如果我curl site1.local
从终端加载网站,则网站加载正常,但从 Chrome 或 Safari 加载时,会出现 502。
我尝试过sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill
其他一些应用程序是否在监听端口 80,但没有帮助。
我查看了 Apache 日志和我上面创建的自定义日志,没有任何记录。
运行 MySql 5.7、PHP 5.6、Apache 2.4。尝试重新启动所有服务。
有任何想法吗?
答案1
问题是我使用的是(工作强制的)Cisco VPN。断开与该 VPN 的连接后,502 错误消失。
这是一个特殊情况,但对于将来遇到此问题的人来说仅供参考。