安装OS X El Capitan后,Apache无法运行

时间:2015-10-09 21:56:44

标签: apache httpd.conf osx-elcapitan

我刚安装在我的MacBook pro“El capitan”中,我无法在vhost中键入任何主机设置。在优胜美地之前,一切都很完美。当我输入我的虚拟主机之一时,我得到:

  

403“禁止访问您无权访问此服务器上的/。”

我尝试了什么?

转到/etc/apache2/httpd.conf 并解开这一行:

Include /private/etc/apache2/extra/httpd-vhosts.conf

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

/etc/apache2/extra/httpd-vhosts.conf与很久以前在Yosemite中使用的文件相同,所以我没有修改过。

要在Yosemite中安装所有东西我用过自制软件。

与“El capitan”相关的另一个问题,在我能够输入http://localhost/~myuser/并且我可以访问/Users/myuser/Sites中的任何文件夹之前,我现在收到此消息:404 not found

我希望得到一些帮助,我不是服务器方面的专家,而且我很难设置它,并且在操作系统中有新的升级时浪费大量时间非常烦人。

6 个答案:

答案 0 :(得分:25)

升级过程会保留旧httpd.conf的副本。除非你的方法已经过时,否则只需用旧文件覆盖新文件即可。保留新版本的副本以防万一...

sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.after-update
sudo mv /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf
sudo apachectl restart

答案 1 :(得分:22)

我遇到了同样的麻烦。 输入此命令行,您将收到来自apache的错误:

apachectl configtest

如果您有此错误:

AH00526: Syntax error on line 20 of /private/etc/apache2/extra/httpd-mpm.conf: Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration.

所以此链接可以提供帮助:https://apple.stackexchange.com/questions/211015/el-capitan-apache-error-message-ah00526

答案 2 :(得分:10)

我在升级到El Capitan之后经历了这一行

Include /private/etc/apache2/extra/httpd-userdir.conf

/private/etc/apache2/httpd.conf

再次发表评论。在取消注释并重新启动apache后,一切都恢复正常。

答案 3 :(得分:3)

我已合并为两个版本(httpd.confhttp.conf~previous),之后我发现v-host不再正常工作了。 在#NameVirtualHost *:80中禁用规则19 /private/etc/apache2/extra/httpd-vhosts.conf后,一切都恢复了工作!

答案 4 :(得分:2)

LockFile是Apache≤2.2的指令。 El Capitan附带Apache 2.4版。所以,你需要禁用LockFile

首先,只是为了确保apache停止:

sudo apachectl stop

然后修改您的httpd-mpm.conf:

评论此行

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
  LockFile "/private/var/log/apache2/accept.lock"
</IfModule>
</IfModule>

启动apache sudo apachectl start以及所有

答案 5 :(得分:0)

正如有些人提到的那样,问题是升级到El Capitan备份了之前的httpd.conf并将其重命名为httpd.conf~previous并为您提供了一个新的httpd.conf。使用这些文件解决问题需要做的是:

使用nano或其他编辑器打开httpd.conf~previous并查找以下两行:

DocumentRoot "/Users/my-machine-name/Prev-Localhost-Path
<Directory "/Users/my-machine-name/Prev-Localhost_path">

复制它们然后使用nano打开httpd.conf并查找这两行:

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

通过在每个字符前面输入“#”字符来评论它们,然后在它们下面粘贴您从原始文件复制的两行。保存文件并退出。

之后你需要重启。在我进行这些更改然后重新启动之前,我的设置无效。但也许DSG重启apache的建议就足够了:

sudo apachectl restart