我刚刚从 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 上对我有效):
localhost 目录已设置为,
/var/www
因此要更改该目录,您需要编辑 /etc/apache2/sites-available 中的默认虚拟主机配置文件。确保同时更改DocumentRoot
和<Directory >
值。sudo nano /etc/apache2/sites-available/default
要创建虚拟主机,请在 /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>
接下来,您需要启用虚拟主机。您可以通过运行“Apache 2 Enable Site”命令并使用您在 中创建的文件的名称来执行此操作
sites-available
:sudo a2ensite mysite
您可能还需要将虚拟主机名添加到文件中
/etc/hosts
。现在重新启动 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://本地主机://