我刚安装在我的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
。
我希望得到一些帮助,我不是服务器方面的专家,而且我很难设置它,并且在操作系统中有新的升级时浪费大量时间非常烦人。
答案 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.conf
和http.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