Apache 升级到 Ubuntu 13.10 后不使用 DocumentRoot(使用显示 "It works!"的默认页面)

标签 apache ubuntu-13.10

我有各种虚拟主机用于我的 Web 开发工作,包括
cnm.这

sites-available/cnm

我的文件说得很简单:
<VirtualHost *:80>
    ServerName cnm
    DocumentRoot /var/www/cnm/public_html
</VirtualHost>

我升级到 Ubuntu 13.10,当我将浏览器指向 cnm/时,我看到
/var/www/index.html 似乎在默认文件中指示的文件
sites-available/000-default.conf

其中说(除其他外):
<VirtualHost *:80>
    DocumentRoot /var/www

当我浏览到 cnm/时,我需要做什么才能让 Apache 读取我的 cnm 文档根目录?

笔记:
  • 我已经尝试将我的 sites-available/cnm 文件重命名为 sites-available/cnm.conf 并使用 a2ensite cnm 启用它和 service apache2 reload .这是一件好事,但它不会改变任何事情。
  • 我已经尝试过更改 <VirtualHost *:80><VirtualHost cnm.localhost>或至<VirtualHost cnm> .那什么也没做。
  • 最佳答案

    Ubuntu 13.10 使用 apache 2.4 ,你应该检查你所有的 apache 配置。但是对于本例,您应该注意 a2ensitea2dissite如果文件不以 .conf 结尾,命令将无法在/etc/apache2/sites-available 中看到您的文件,所以将其重命名为 sites-available/cnm.conf并运行 a2ensite cnm .

    那么使用 *:80 你的虚拟主机定义肯定更好。 ,这意味着该虚拟主机已为端口 80 上的所有 IP 接口(interface)(*)激活。cnm.localhostcnm这里不是有效值,只有 IP 号(您的 apache 服务器的 IP)或 *所有人,还有一个端口号。

    然后检查你的配置是如何被 apache 读取的,运行这些命令:

    # load apache env
    # be careful, there is a dot and a space
    . /etc/apache2/envvars
    # Check apache Virtualhosts config
    apache2 -S
    

    你应该得到类似的东西:
    VirtualHost configuration:
    *:80                   is a NameVirtualHost
         default server something (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost something (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost cnm (/etc/apache2/sites-enabled/cnm.conf:4)
    

    如果没问题,并且您的主机文件中有正确的 Ip 用于 cnm ,您可以使用 ping 进行测试,然后使用 http://cnm/应该使用 中具有 cnm 的虚拟主机服务器名 .

    如果您从默认 Virtualhost 得到答案,则意味着 apache 未在该 IP/端口可用的 ServerName 和 ServerAlias 列表中找到 Host header 中使用的名称,并回退到默认 Virtualhost。如果您真的卡住了(并且您没有忘记重新启动),您可以随时删除默认的虚拟主机并只保留您正在处理的虚拟主机。

    关于Apache 升级到 Ubuntu 13.10 后不使用 DocumentRoot(使用显示 "It works!"的默认页面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19841609/

    相关文章:

    c - "Implicit declaration of process_vm_readv",但我包括 <sys/uio.h>

    apache - 如何在hive中获取数据库用户名和密码

    apache - HTTP/2 长超时在 HTTP_TRANSACTION_READ_HEADERS

    mysql - 无法在 Ubuntu 上安装 libjpeg-turbo8-dev

    Hadoop Nodemanager 和 Resourcemanager 未启动

    ssl - 错误代码 : ssl_error_rx_record_too_long on nginx ubuntu server

    php - 连接到本地主机工作正常,但我无法连接到本地主机上的大多数子目录。怎么了?

    cmocka链接apache运行时函数

    python - 无法在虚拟主机 apache 上执行 proxy.cgi