虚拟主机显示目录结构
Posted
技术标签:
【中文标题】虚拟主机显示目录结构【英文标题】:Virtual host shows directory structure 【发布时间】:2017-10-24 13:14:13 【问题描述】:目标 :- 正确设置虚拟主机。
目前我正在开发 MAC 系统版本 10.10.05 os x yosemite。
我已经使用XAMPP配置了apache2、php和mysql
我已经关注all the necessary steps 配置虚拟主机。
我的文件 /private/etc/apache2/extra/httpd-vhosts.conf 会像
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
<Directory "/Applications/XAMPP/xamppfiles/htdocs">
Options Indexes FollowSymLinks Includes execCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName emsv2l.localhost.com
ServerAlias emsv2l.localhost.com
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/emsv2"
ErrorLog "/private/var/log/apache2/apple.com-error_log"
CustomLog "/private/var/log/apache2/apple.com-access_log" common
ServerAdmin webmaster@dev.plutustec.com
<Directory "/Applications/XAMPP/xamppfiles/htdocs/emsv2">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName emsv2l-backend.plutustec.com
ServerAlias emsv2l-backend.plutustec.com
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/emsv2-backend/public“
ErrorLog "/private/var/log/apache2/apple.com-error_log"
CustomLog "/private/var/log/apache2/apple.com-access_log" common
ServerAdmin webmaster@dev.plutustec.com
<Directory "/Applications/XAMPP/xamppfiles/htdocs/emsv2-backend/public“>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
所以,现在如果我写 http://emsv2l.localhost.com/
将被重定向到项目而不是显示目录结构。
我的/etc/hosts
文件会是这样的
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
#127.0.0.1 localhost
#255.255.255.255 broadcasthost
#::1 localhost
#127.0.0.1 dev.local
#127.0.0.1 emsv2l-backend.plutustec.com # emsv2-backend
#127.0.0.1 emsv2l.plutustec.com # emsv2
#127.0.0.1 plutustec.com #localplutus site
127.0.0.1 emsv2l.localhost.com
127.0.0.1 emsv2l-backend.plutustec.com
任何帮助将不胜感激。
【问题讨论】:
你可以访问apache服务吗?您可能需要重新启动 apache。 我多次使用 XAMPP gui 重新启动 apache。 @ShashankShah 你能告诉我们你在/Applications/XAMPP/xamppfiles/htdocs/emsv2
下的文件吗?那里有index.* 文件吗?
我认为在 Apache 中,虚拟主机的顺序也很重要 + 有类似 VirtualHostName 127.0.0.1
的东西。如果您想要更合理、更简单的设置,请使用 nginx。
【参考方案1】:
就我而言,
我正在使用 macOS Mojave (Apache/2.4.34)。在 /etc/apache2/httpd.conf 文件中搜索文本“IfModule dir_module”。检查 IfModule 指令/标签是否包含任何 index.php。如果没有,则在 index.html 之后添加 index.php。希望这会拯救你。
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
【讨论】:
【参考方案2】:您是否严格按照指南配置虚拟主机? 如果是这样,您确定您配置的 Apache 是当前正在侦听端口 80 的 Apache 吗? XAMPP 应该有它自己的 Apache 内置并且它不会运行默认配置。 你的 XAMPP httpd.conf 应该包含:
# XAMPP VirtualHosts dir
Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf
为了最快的解决:
cp -iv /private/etc/apache2/extra/httpd-vhosts.conf /Applications/XAMPP/etc/extra/httpd-vhosts.conf
如果要求覆盖确认,请按“y”
【讨论】:
【参考方案3】:您需要禁用目录列表,以替换它:
<Directory "/Applications/XAMPP/xamppfiles/htdocs/emsv2">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
与:
<Directory "/Applications/XAMPP/xamppfiles/htdocs/emsv2">
Options FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
然后重新加载 apache。
更多详情请查看here
还有一件事,你的:/Applications/XAMPP/xamppfiles/htdocs/emsv2
中有 index.php 或 index.html 吗?
【讨论】:
不应要求关闭索引。它实际上可能是您想要使用的东西。但确实检查 index.* 文件 我已经在上面尝试过,但它不起作用更改文件的内容并重新启动 apache。以上是关于虚拟主机显示目录结构的主要内容,如果未能解决你的问题,请参考以下文章