升级到Ubuntu 13.10后,Apache不使用DocumentRoot(使用默认页面“It works!”)

时间:2013-11-07 16:41:01

标签: 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文档根目录?

注意:

  1. 我已经尝试将我的sites-available / cnm文件重命名为sites-available / cnm.conf并使用a2ensite cnmservice apache2 reload启用它。这是一件好事,但它没有任何改变。

  2. 我已尝试将<VirtualHost *:80>更改为<VirtualHost cnm.localhost><VirtualHost cnm>。那没什么。

7 个答案:

答案 0 :(得分:12)

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

然后使用*:80确定您的Virtualhost定义更好,这意味着为端口80上的所有IP接口(*)激活了此虚拟主机。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)

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

如果您有来自默认Virtualhost的答案,则表示apache未找到可用于该IP /端口的ServerName和ServerAlias列表中的Host头中使用的名称,并且回退到默认的Virtualhost。如果您真的被卡住(并且您没有忘记重新启动),您可以随时删除默认的Virtualhost并仅保留您正在使用的虚拟主机。

答案 1 :(得分:5)

我找到了问题的答案。我需要删除/ etc / apache2 / sites-enabled中的文件。

  1. 删除/ etc / apache2 / sites-enabled
  2. 中的文件
  3. 重命名/ etc / apache2 / sites中的配置文件 - 可用于.conf结尾
  4. 对于可用的网站中的每个文件,请运行sudo a2ensite mysite
  5. 运行sudo service apache2 reload

答案 2 :(得分:3)

我找不到任何有关如何让它在我身边工作的分步教程。我在这里和那里聚集了点点滴滴,所以对于那些需要遵循所有步骤的人来说,这里有:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/local-mydefault.conf

$ sudo gedit /etc/apache2/sites-available/local-mydefault.conf

将以下内容粘贴到local-mydefault.conf文件中(将路径'/ your / full / path'更改为您要将文件保存到的位置。并将用户名更改为您自己的用户名):

# ------------------------------------------------------
<VirtualHost *:80>
    ServerName localhost
    ServerAdmin webmaster@localhost

    DocumentRoot /your/full/path
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /your/full/path>
            DirectoryIndex index.php
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Require all granted
            allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

User username
Group username
# ------------------------------------------------------

然后输入以下命令

$ cd /etc/apache2/sites-available/
$ sudo a2ensite local-mydefault.conf
$ sudo a2dissite 000-default.conf
$ sudo /etc/init.d/apache2 restart

答案 3 :(得分:1)

我找到了这个问题的答案:

升级到Ubuntu 13.10时,DocumentRoot似乎没有什么区别。

这是因为Apache 2.4在其他地方移动了Directory配置。您的旧.conf文件仍然包含以下行:

    DocumentRoot "/var/www/myVhost"
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory "/var/www/myVhost">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

删除(或注释掉)<Directory>指令,以便您只有:

    DocumentRoot "/var/www/myVhost"

现在重新加载您的设置:service apache2 reloadDocumentRoot又回来了。 :)

答案 4 :(得分:0)

使用扩展名.conf

重命名文件配置“cnm”
mv sites-available/cnm sites-available/cnm.conf
a2ensite sites-available/cnm.conf

准备好了!

service apache2 reload

答案 5 :(得分:0)

我有同样的问题 在途中是禁用000-default并重新加载apache,但这不是解决方案,因为你必须同时只有一个vhost :(

sudo a2dissite 000-default.conf
sudo service apache2 reload

答案 6 :(得分:0)

我遇到了类似的问题。我的服务器名称和我的FQDN与运行到/ var / www / html目录中的默认值相同。我禁用了默认配置,我的网站工作得很轻松。谢谢@regilero。

sudo a2dissite 000-default.conf

为我修好了。