我是 Linux 世界的新手,并且在 Apache 版本 2.2 虚拟主机配置方面遇到了困难。
在我的本地 /var/www 中,我有 2 个站点(和默认的 localhost)在它们各自的目录中:
/var/www/importer
/var/www/foostore
Importer 是安装在 daxstore 目录中的 Opencart 导入器,我正在开发它。我想让两个不同的网站运行,所以我复制了文件
/etc/apache2/sites-available/default
两次进入同一个目录,将其重命名为“importer”和“foostore”,然后将它们编辑为:
<VirtualHost importer:80>
ServerAdmin webmaster@localhost
ServerName importer
DocumentRoot /var/www/importer/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/importer>
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 debug
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>
切换另一侧的名称。然后我编辑了 /etc/hosts 如下:
127.0.0.1 localhost
127.0.1.1 VirtualHD
127.0.0.1 foostore
127.0.0.1 importer
然后我给出命令:
sudo a2ensite importer
sudo a2ensite foostore
sudo service apache2 restart
并且 apache 运行正常。当我尝试访问这两个站点时,浏览器将我重定向到 foostore 站点(该站点也找不到某些文件,但这是另一个问题)。我哪里错了?
谢谢各位先生。
答案1
更改<VirtualHost>
检查两个站点配置的块,从<VirtualHost importer:80>
到,<VirtualHost *:80>
并确保ServerName
每个文件中都有正确的指令。重新加载 Apache。
如果这没有帮助,请检查两者access.log
并error.log
获取有关 Apache 实际正在执行的操作的信息。
答案2
首先,确保您NameVirtualHost *:80
的 /etc/apache2/ports.conf 文件中有一行。然后尝试在配置中更改<VirtualHost importer:80>
为。<VirtualHost *:80>
答案3
首先禁用刚刚添加的两个网站a2dissite site
打开default
文件并将以下内容添加到顶部。简单又好用。如果您以后想将它们移到自己的 conf 文件中或更改安全性,欢迎您这样做,但请先进行测试。
<VirtualHost *:80>
ServerName importer
DocumentRoot /var/www/importer
</VirtualHost>
<VirtualHost *:80>
ServerName foostore
DocumentRoot /var/www/foostore
</VirtualHost>
然后重启apacheservice apache2 restart