为什么Ubuntu 14.04上的Apache虚拟主机无法正常工作?


23

我在Ubuntu 14.04上安装了Apache 2.4,并且按http://localhost/地址运行正常。但是,当我尝试添加新的虚拟主机(例如)http://bow.loc并重新启动apache时,新的地址在上不可用,在上http://bow.loc可用http://localhost

我的配置是:

<VirtualHost *:80>
    ServerName www.bow.loc
    ServerAlias bow.loc
    DocumentRoot /var/www/html/bow/web

    <Directory /var/www/html/bow>
        AllowOverride All
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

如何获得我的网站http://bow.loc



在这里查看我的答案。遇到类似的问题,结果是系统DNS配置出现问题。
jmarceli 2015年

Answers:


29

从Apache 2.4开始,每个虚拟主机文件都应具有.conf扩展名。

您可以重命名每个虚拟主机文件以包括.conf扩展名:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

使用a2ensite命令添加虚拟主机:

a2ensite example.com.conf

并重新加载Apache:

service apache2 reload

谢谢!在执行此操作后,我不需要手动修改/etc/hosts文件并向其中添加主机吗?apache会自动写新主机吗?
Victor Bocharsky

Apache不会自动编写新主机,您应该手动编写。CMIIW
阿里·普拉托莫2014年

所以,我的配置是正确的,为了让我忘了添加主机,我/etc/hosts
遇到

另一种方法是修改apache2.conf并从“ IncludeOptional sites-enabled / *”指令中删除“ .conf”扩展名。我使用网站域作为文件名,所以我不喜欢额外的“ .conf”要求。
lepe

17

我忘记在添加主机/etc/hosts

127.0.0.1   localhost
127.0.0.1   bow.loc

我以为apache是​​自动完成的。


在服务器上之前,我不必做任何事情。我总是从客户那里进行测试。您能在这里说清楚吗?
flickerfly

@flickerfly你是什么意思?我将我的虚拟主机指向我的本地计算机,以使用已安装的Apache服务器来处理它们
Victor Bocharsky,2015年

我也忘记添加它!:P
Rishi Kulshreshtha 2015年

该死,我在Debian 8 VM上浪费了我们的本钱!谢谢!!!
lucaferrario

@lucaferrario哈哈,我也是。难以发现的简单错误;)不客气!
Victor Bocharsky '17

3

好吧,我一直在尝试提供的所有这些解决方案。但是可惜没有任何效果!i,我编辑了

    /etc/hosts

进入

    127.0.1.1 example.com test.com

而且有效!!

(很抱歉,如果我在技术上讲得不多!)



-3
Options FollowSymLinks MultiViews

需要char'+':+ FollowSymLinks + Multiviews

Order allow,deny
Allow from all

现在=需要全部授予


请解释一下,将其放在何处以及它的作用。不要只是发布命令或配置工件。请参阅我如何写一个好的答案?
David Foerster,2015年

1
如果要使用-排除一个,则只需在各个选项前加上+或-。否则,他们很好。必需全部授予Apache 2.4。Order,Allow行是2.2语法。
flickerfly
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.