ubuntu 13.10和apache 2.4.6上的虚拟主机

Lac*_*hev 39 apache apache-config ubuntu-13.10

我有以下问题
我的主机文件如下:

127.0.0.1       localhost
127.0.1.1       barbala4o-HP-ProBook-4530s
127.0.1.1       mysite.localhost
Run Code Online (Sandbox Code Playgroud)

我的文件/etc/apache2/sites-available/mysite.localhost.conf如下:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName mysite.localhost

        DocumentRoot /var/www/mysite

        <Directory /var/www/mysite/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>
        ErrorLog /var/log/apache2/mysite-error.log
        CustomLog /var/log/apache2/mysite-access.log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

sudo a2ensite mysite.localhost.confmysite.localhost /上执行并重新启动apache 之后,只在localhost上执行以下操作(如列出没有索引文件的目录):

Index of /

[ICO]   Name    Last modified   Size    Description
[DIR]   apache_logs/    2013-09-24 10:15     -   
[DIR]   mysql/  2013-10-22 10:05     -   
[DIR]   tools/  2013-10-22 10:05
Run Code Online (Sandbox Code Playgroud)

在目录中的任何其他文件夹,/var/www/例如test,当我输入localhost/test而不是加载index.php文件时,它显示:

Not Found

The requested URL /adlantic was not found on this server.

Apache/2.4.6 (Ubuntu) Server at localhost Port 80   
Run Code Online (Sandbox Code Playgroud)

如果我这样做sudo a2dissite mysite.conf并重新启动apache,一切正常.我想问题是在某个地方,mysite.localhost.conf但我无法找到.有任何想法吗?10倍

Anj*_*K P 56

Ubuntu 13.10和变种已经转移到Apache 2.4.Apache 2.4希望启用的虚拟主机配置文件默认以.conf结尾.

现在要纠正此问题,可以使用两种方法来实现相同的结果.

  1. 第一个解决方案和简单的解决方案是为所有虚拟主机添加.conf扩展.新的Apache 2.4使用新的Apache 2.4配置文件中概述的.conf扩展名读取站点可用目录中的每个虚拟主机.

  2. 第二种解决方案是删除位于/etc/apache2/apache2.conf中的Apache 2.4配置文件中的.conf扩展名

在旧的Apache 2.2文件中,.conf文件包含一个Include sites-enabled /,而新的.conf文件有

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Run Code Online (Sandbox Code Playgroud)

将该行更改为:

# Include the virtual host configurations:
IncludeOptional sites-enabled/
Run Code Online (Sandbox Code Playgroud)

结果:命令a2ensite yourdomain现在按预期运行.如果您使用第二种方法; 您的虚拟主机文件不需要具有.conf扩展名.

Note: Configuration file is "/etc/apache2/apache2.conf" in new Apache, so please copy document root path and other configurations from "/etc/apache2/sites-available/000-default.conf" to  "/etc/apache2/apache2.conf"
Run Code Online (Sandbox Code Playgroud)

  • 如果只有Apache的错误日志抱怨已启用的网站正在跳过,则会为升级人员节省大量时间.谢谢你的单挑. (3认同)

Lac*_*hev 13

我在实验3小时后发现了这个问题.显然在新的Ubuntu 13.10中出于某种愚蠢的原因,虚拟主机的conf文件必须与此类似:

<VirtualHost mysite.localhost>
        ServerAdmin webmaster@example.com
        ServerName  mysite.localhost
        ServerAlias mysite.localhost

        # Indexes + Directory Root.
        DocumentRoot /var/www/mysite/public_html

         <Directory /var/www/mysite/public_html/>
                DirectoryIndex index.php
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        # Logfiles
        ErrorLog /var/log/apache2/mysite-error.log
        CustomLog /var/log/apache2/mysite-access.log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

显然,开发Ubuntu 13.10的人决定使用它不再有价值

<VirtualHost *:80> 
Run Code Online (Sandbox Code Playgroud)

在制作虚拟主机时,而不是必须这样做

<VirtualHost mysite.localhost>
Run Code Online (Sandbox Code Playgroud)

与专门指定DirectoryIndex混合使用.这解决了我遇到的问题,现在事情正在发挥作用(希望如此,最终会出现一些问题)显然apache的配置文件是不同的.

  • 当您更新到13.10时,您是否保留了旧的apache配置文件?`NameVirtualHost`没有效果,在apache 2.4中已弃用. (4认同)

ara*_*ara 5

我有同样的问题,但上述帖子中没有一个适合我.后来我阅读并查看了Apache和PHP的每个配置文件.

我可以弄清楚在apache2.conf(在ubuntu 13.10中)有一个叫做的标志

HostnameLookups off
Run Code Online (Sandbox Code Playgroud)

默认情况下,这将设置为关闭,我将其更改为

HostnameLookups on
Run Code Online (Sandbox Code Playgroud)

通过这样做,Apache开始提升我的主机条目和vhost配置.

以下是我的实际Vhost文件.我曾经使它工作

Offcourse我也建议Require all granted在Vhost 指令中添加.

<VirtualHost *:80>
    ServerName test.yoursite.domain.in
    DocumentRoot path_to_code_base/public
    <Directory path_to_code_base/public>
        Options -Indexes
        Require all granted
        DirectoryIndex index.php
        AllowOverride All
    </Directory>
    ErrorLog  /path_to_code_base/logs/error.log
    LogLevel warn
    CustomLog /path_to_code_base/logs/access.log  combined
</VirtualHost> 
Run Code Online (Sandbox Code Playgroud)

我发布这个帖子是为了帮助那些不想浪费时间的人将Ubuntu从13.10降级到13.04.

我没有看到这个博客,我也无法理解hostnameLookups究竟是什么意思.

希望这可以帮助 .