首先,我运行的是 Ubuntu 11.04。我通过 taskel 安装了 Apache,以及 phpmyadmin 和 mysql。我的 localhost 站点可以运行,我可以进入 phpmyadmin。我通过 VHOST 文件设置了 5 个站点。我可以毫无问题地访问其中 3 个。
我的问题是,有另外 2 个 VHOST,我无法从浏览器访问实际站点。相反,它总是显示默认的“有效”页面。这最新的 2 个站点是我的新站点,所以自从添加我的第四个站点以来,我还没有弄清楚这一点。前 3 个站点不知为何有效,我可以通过浏览器访问这些站点。
这是我的 /etc/hosts 文件的样子。
127.0.0.1 我的.dev
127.0.1.1 系统崩溃
127.0.0.1 开发.bac
127.0.0.1 vl.dev
127.0.0.1 经理.dev
127.0.0.1 密码
我无法运行的站点是 my.dev 和 dev.bac。my.dev 是第四个添加 VHOST 文件的站点,最近我再次添加了 dev.bac 以尝试设置我需要的另一个站点。
创建两个 VHOST 文件后,我运行 a2ensite my.dev 来启用该站点。我检查了 apache 的 mod_rewrite 以查看它是否已启用。运行 a2enmod rewrite 后,我收到消息 mod-rewrite 已启用。
以下是我为两个无法正常工作的站点提供的 VHOST。(除了路径不同)
<VirtualHost *:80>
ServerName dev.back
DocumentRoot /home/developmental/workspace/dev.bac/public
<Directory /home/developmental/workspace/dev.bac/public>
AllowOverride All
Options All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
如果这有区别(我不认为有区别,但试图提供所有相关信息),我会在我的项目中使用 Zend Framework。因此,任何网站的根目录都从公共文件夹开始。我还确保公共文件夹中也有一个 .htaccess 文件。
[编辑显示 /usr/sbin/apache2ctl -S]
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server localhost (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost dev.bac (/etc/apache2/sites-enabled/dev.bac:1)
port 80 namevhost manager.dev (/etc/apache2/sites-enabled/manager.dev:1)
port 80 namevhost pw.dev (/etc/apache2/sites-enabled/pw.dev:1)
port 80 namevhost my.dev (/etc/apache2/sites-enabled/my.dev:1)
port 80 namevhost vl.dev (/etc/apache2/sites-enabled/vl.dev:1)
Syntax OK
[my.dev 的 VHOST]
<VirtualHost *:80>
ServerName my.dev
DocumentRoot /home/developmental/workspace/PW1/public
<Directory /home/developmental/workspace/PW1/public>
AllowOverride All
Options All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
答案1
我不知道这是否是拼写错误,但是在您的 /etc/hosts 中有:
127.0.0.1 开发.bac
在虚拟主机配置中您有:
服务器名称 dev.back
那么,你的 apache 将你重定向到错误的地方是正常的。