尝试访问本地主机上的网站时,连接被拒绝。两天前,设置正在运行,没有配置多个虚拟主机的问题。我不知道任何可能影响设置的更改。我昨天花了一整天时间试图解决这个问题,但一直在圈子里。
操作系统:OSX 10.11.16
httpd -V返回:
Server version: Apache/2.4.18 (Unix)
Server built: Feb 20 2016 20:03:19
Server's Module Magic Number: 20120211:52
Server loaded: APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/bin/suexec"
-D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
httpd.conf配置为允许虚拟主机,httpd-vhosts.conf文件中没有任何更改。
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
...
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
apachectl configtest返回:
Syntax OK
我已尝试为127.0.0.1运行端口扫描,http端口80 不显示。这个以及被拒绝的联系让我觉得这就是问题所在,但我不知道为什么。 OSX防火墙已关闭。 I've tried the solution posted here但它没有解决它。
我的/ etc / hosts文件如下所示:
#
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
#
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 site.local
127.0.0.1 othersite.local
...
我可以ping 127.0.0.1。我之前安装了自制软件来运行不同的PHP版本但是我已经删除了它以尝试将系统恢复到库存。我真的不知道下一步该尝试什么,任何帮助都会非常感激。
答案 0 :(得分:10)
升级php时发生在我身上。以下步骤让我重新走上正轨。
通常,mac会在升级之前创建备份。因此,我们将使用httpd.conf
的更新前版本cd /etc/apache2/
sudo mv httpd.conf httpd.conf-afterupdate
sudo mv httpd.conf.pre-update httpd.conf
sudo apachectl configtest
sudo apachectl restart
答案 1 :(得分:2)
在尝试调试这几天之后,我通过使用在升级到osx elcapitan时创建的旧文件覆盖我的httpd.conf文件来解决它。
sudo cp httpd.conf~elcapitan httpd.conf
执行此操作后,本地主机再次可访问。我不知道我以前的httpd.conf文件有什么问题。我经历了很多次寻找问题而从未找到任何问题。我甚至对这两个文件进行了分析,试着看看问题出在哪里,并且没有找到原因导致它失败的原因。
我再次使用localhost响应后,我完成了启用所需模块并重新配置虚拟主机的过程。
同样,我不知道其他httpd.conf文件有什么问题。也许它在某种程度上被腐蚀了。无论是apachectl configtest
没有报告任何问题,它都会无声地失败。
因此,如果其他人遇到类似问题,则可能需要恢复到较旧的httpd.conf文件。升级完成后,OSX通常会创建备份。
答案 2 :(得分:2)
您可以检查以确保在/usr/local/etc/apache2/2.4/httpd.conf配置文件中有Listen: 80
。
答案 3 :(得分:0)
就我而言,httpd.conf 文件中的 DocumentRoot 是错误的。
我在终端中输入 httpd 后想通了。试试同样的方法也许它可以给你一些解决问题的提示。
➜ ~ httpd
AH00526: Syntax error on line 255 of /usr/local/etc/httpd/httpd.conf:
DocumentRoot '/Users/xx/Desktop/sites' is not a directory, or is not readable