编辑 apache vhosts 和 ubuntu 主机文件?

Hai*_*ood 5 virtualhost 11.04 hosts apache2

我刚刚安装了 ubuntu (11.04)。

我已经安装了 apache/mysql/php 等。

我有几个网站

/var/www/site1  
/var/www/site2  
/var/www/site3  
Run Code Online (Sandbox Code Playgroud)

我希望能够访问这些

http://site1.local  
http://site2.local  
http://site3.local
Run Code Online (Sandbox Code Playgroud)

所以在我的主机文件中我有

127.0.0.1   site1.local  
127.0.0.1   site2.local  
127.0.0.1   site3.local  
Run Code Online (Sandbox Code Playgroud)

然后我复制了/etc/apache2/sites-available/default3次。

所以现在我有:

/etc/apache2/sites-available/site1  
/etc/apache2/sites-available/site2  
/etc/apache2/sites-available/site3  
Run Code Online (Sandbox Code Playgroud)

这些看起来都像(带有适当的站点名称)

<VirtualHost site1.local>
    ServerAdmin webmaster@localhost

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

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在终端我然后打电话

sudo a2ensite site1 site2 site3 && sudo /etc/init.d/apache2 reload

这似乎有效,除了只有一个虚拟主机同时工作(包括默认),我做错了什么?


当我运行重新加载命令时,我得到

  • 重新加载 Web 服务器配置 apache2
    apache2:无法可靠地确定服务器的完全限定域名,
    使用 127.0.1.1 作为 ServerName
    [Fri Apr 15 10:45:27 2011] [warn] NameVirtualHost *:80 has no VirtualHosts

小智 8

文件:/etc/hosts

127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
Run Code Online (Sandbox Code Playgroud)

文件:/etc/apache2/apache2.conf

[...]
NameVirtualHost *:80
[...]
Run Code Online (Sandbox Code Playgroud)

文件:/ etc/apache2/sites-available/site {i} .local.conf(而不是 {i} 插入编号:1 或 2 或 3)

<VirtualHost *:80>
    ServerName site{i}.local
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/site{i}
    [...]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在目录/etc/apache2/sites-enabled/创建符号链接:

@site{i}.local.conf
Run Code Online (Sandbox Code Playgroud)

重新启动 apache 并玩得开心:)

  • 一个注意事项是在 `/etc/apache2/ports.conf` 中找到了为 `/etc/apache2/apache2.conf` 建议的行,它是由 `apache2.conf` 导入的 (2认同)