我想为我电脑上运行的 apache2 设置虚拟主机。因此,当我浏览到“invision.jan.pcsg”时,我会从“/var/www/html/invision”获取页面内容/文件夹结构
这是我创建的虚拟主机文件“invision.jan.pcsg.conf”:
<VirtualHost invision.jan.pcsg:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/invision
ServerName invision.jan.pcsg
ServerAlias hkl.mor.pcsg hkl_at.mor.pcsg
<Directory />
Options FollowSymLinks
AllowOverride FileInfo
</Directory>
<Directory /var/www/html/invision/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
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>
当我现在浏览“invision.jan.pcsg”时,我会被重定向到本地主机并显示“php 正在运行”页面。
当浏览“jan.pcsg”时,会显示“/var/www”文件夹的内容。
有人知道为什么会发生这种情况吗?
答案1
首先,第一行不需要域名。第一行应该是:<VirtualHost *:80>
。其次,ServerName 和 ServerAlias 应该是同一个域。如果要让不同的域指向同一个根目录,您需要设置多个虚拟主机。请查看说明这里。