【问题标题】:Not sure if correct httpd-vhosts.conf file is being read in OS X不确定 OS X 中是否正在读取正确的 httpd-vhosts.conf 文件
【发布时间】:2014-05-18 15:58:09
【问题描述】:

我正在尝试让 OS X 附带的 Apache 服务器为我的本地网站工作。无论我将文件httpd-vhosts.conf 更改为什么,当我在终端中运行httpd -S 时,它都会显示我的虚拟主机语法正常。我在文件中输入了一堆随机字符,重新启动了 Apache,它仍然说我的配置正常。

首先我编辑了/private/etc/hosts并在127.0.0.1 localhost下面添加了这一行:

127.0.0.1   mysite

然后我编辑了/private/etc/apache2/httpd.conf。我取消了这一行的注释:

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

我还取消了 PHP5 行的注释以启用 PHP。

接下来我编辑了/private/etc/apache2/extra/httpd-vhosts.conf 并设置了我的虚拟主机。重新启动 apache 后,我的虚拟主机无法正常运行并运行 httpd -S 说我的虚拟主机语法没问题。 Apache 错误日志中没有错误。这是httpd-vhosts.conf 文件包含的内容:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/Users/Gavin/Web"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Gavin/Web/mysite/public_html"
    ServerName mysite
</VirtualHost>

无论我做什么,我的虚拟主机都无法工作。所以我尝试将httpd-vhosts.conf 更改为:

NameVirtualHost *:80

<VirtualHost @*^#*&^#$>
    (#*&#*$&@(*UOSKSFLKSFJLJF##*(&
</VirtualHost>

我使用 sudo apachectl restart 重新启动 Apache,然后运行 ​​apachectl -S 并显示:

httpd: Could not reliably determine the server's fully qualified domain name, using Gavins-MacBook-Pro.local for ServerName
VirtualHost configuration:
Syntax OK

显然我的 httpd-vhosts.conf 文件不正常,那么它加载的是哪个文件?在终端中,我运行了httpd -V|grep SERVER_CONFIG_FILE,它返回了:

-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

这显然是正确的httpd.conf 文件,那么这里发生了什么?有什么想法吗?

【问题讨论】:

    标签: macos apache vhosts


    【解决方案1】:

    您应该期待“/private/etc/apache2/users/”文件夹。有一个特殊的(您的用户名).conf,您可以在其中添加您的虚拟主机。

    【讨论】:

    • 我是否可以将此文件更改为与 httpd-vhosts.conf 文件完全相同,包括 NameVirtualHost *:80 行和 localhost 定义?
    • 我已经阅读了大约 20 篇关于在 OS X 上的 Apache 中设置虚拟主机的教程,但没有一篇说要这样做。你确定有必要吗?
    • 然而,这个解决方案类似于“做它,但我不知道为什么”。你应该查看你的 httpd.conf 并找到包含的 conf 文件的顺序,如果它被包含没有注释.
    • 无论我将虚拟主机更改为什么,它似乎都没有做任何事情。即使将我的 Gavin.conf 文件更改为 2398u2xX@R#@#XX@ 仍然会启动 Apache OK 并且不会给出任何错误。
    • 在终端尝试这个并在此处发布输出:sudo /usr/sbin/httpd -k start -e Debug -E /dev/stdout
    【解决方案2】:

    在尝试了一切,但没有任何效果后,我下载了一个用于管理虚拟主机的应用程序。它很贵,但有 14 天的免费试用期(只需 google 搜索即可找到)。无论如何,该应用程序将我的 httpd-vhosts.conf 文件更改为这个,现在它可以工作了:

    NameVirtualHost *:80
    
    <Directory "/Users/Gavin/Web/">
    Allow From All
    AllowOverride All
    Options +Indexes
    </Directory>
    <VirtualHost *:80>
        ServerName "localhost"
        DocumentRoot "/Users/Gavin/Web"
    </VirtualHost>
    
    <Directory "/Users/Gavin/Web/mysite/public_html/">
    Allow From All
    AllowOverride All
    Options +Indexes
    </Directory>
    <VirtualHost *:80>
        ServerName "mysite"
        DocumentRoot "/Users/Gavin/Web/mysite/public_html"
    </VirtualHost>
    

    我阅读了 20 多篇关于在 OS X 上设置虚拟主机的教程,但都没有奏效。这个工具对我有用。

    【讨论】:

      猜你喜欢
      • 2015-03-14
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2021-01-05
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多