更新破坏了 Apache

更新破坏了 Apache

我刚刚从 Ubuntu 8.04 更新到最新版本,突然我的虚拟主机不再工作了。我不确定发生了什么变化,但我知道当我输入时,它localhost不会转到我期望的目录(可能是默认的 /var/www/,但这不是我保存项目的地方),并且输入我的一个虚拟主机的名称会将我带到同一个位置。我该如何让它再次工作?

答案1

您可能已将虚拟主机添加到/etc/apache2/httpd.conf或类似内容,并且文件在更新时被覆盖(系统提示您!)。检查您的虚拟主机是否仍在/etc/apache2/sites-available(每个文件一个主机)中,并且是否在中具有有效的可解析符号链接/etc/apache2/sites-enabled:这是在 Ubuntu 中添加它们的正确方法(我相信,在所有 Unix 系统中,这都是常见的:将它们分开而不是堆放在一个文件中是一个好主意!)。

答案2

事实证明,更新会将所有内容重置为默认设置。以下是我为使其正常工作所做的操作(这在 Ubuntu 9.10 Karmic Koala 上对我有效):

  1. localhost 目录已设置为,/var/www因此要更改该目录,您需要编辑 /etc/apache2/sites-available 中的默认虚拟主机配置文件。确保同时更改DocumentRoot<Directory >值。

    sudo nano /etc/apache2/sites-available/default
    
  2. 要创建虚拟主机,请在 /etc/apache2/sites-available 中创建一个文件

    sudo nano /etc/apache2/sites-available/mysite
    

    以下是应在虚拟主机文件中输入的内容的示例:

    <VirtualHost *:80>
        ServerName myvirtualhostname
        ErrorLog /var/log/apache2/myvirtualhostname-error.log
        CustomLog /var/log/apache2/myvirtualhostname-access.log combined
        DocumentRoot /home/name/Projects/myvirtualhostname/public
        <Directory /home/name/Projects/myvirtualhostname/public>
            Options FollowSymLinks
         AllowOverride All
        </Directory>
    </VirtualHost>
    
  3. 接下来,您需要启用虚拟主机。您可以通过运行“Apache 2 Enable Site”命令并使用您在 中创建的文件的名称来执行此操作sites-available

    sudo a2ensite mysite
    
  4. 您可能还需要将虚拟主机名添加到文件中/etc/hosts

  5. 现在重新启动 Apache 使其生效:

    sudo /etc/init.d/apache2 restart
    

奖金!如果您想摆脱“无法确定服务器的完全限定域名,使用 127.0.0.1 作为 ServerName”的消息,您可以创建一个配置文件,名为 ,/etc/apache2/conf.d/fqdn值为ServerName localhost。您可以在一个命令中执行此操作,如下所示:

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

如需了解更多信息,请查看在 Ubuntu 上设置 Apache、PHP 和 MySQL

答案3

我没有针对 Ubuntu 的答案,但你只需要检查你的httpd配置文件为了文档根目录并根据需要进行设置。除非您的 vhost 配置被清除,否则您需要重新创建它们。

答案4

这也可能与 DNS 有关。

那么当你具体地说 http://本地主机://

相关内容