Apache 本地虚拟主机已列出但不起作用
Posted
技术标签:
【中文标题】Apache 本地虚拟主机已列出但不起作用【英文标题】:Apache local virtual host is listed but doesn't work 【发布时间】:2019-01-19 04:45:41 【问题描述】:我需要帮助将我的网站配置为在本地服务器中作为 Apache 中的虚拟目录访问。 我正在尝试使用端口 8050,当我打开 localhost:8050 时,它显示:
无法访问此网站 localhost 拒绝连接。 ERR_CONNECTION_REFUSED
当我尝试在浏览器中访问我的 localhost:80 时,它会显示默认的空白页面,并显示消息“It Works” 如果我在配置中将我的虚拟主机更改为 *.80,它会一直显示默认消息“It Works”,而不是我的页面。
apachectl -t
返回语法 OK
命令:apachectl -t -D DUMP_VHOSTS
返回:
虚拟主机配置: *:8050 personal.com (/private/etc/apache2/extra/httpd-vhosts.conf:24)
我的 httpd.conf 文件中的 Servername 是 localhost,它还包含: 听 8050 和 收听 localhost:8050
这是我在 etc/apache2/extra/httpd-vhosts.conf 中的 httpd-vhosts:
<VirtualHost *:8050>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/Users/renatobento/Documents/Projetos/Personal"
ServerName personal.com
ErrorLog "/private/var/log/apache2/personal.com-error_log"
CustomLog "/private/var/log/apache2/personal.com-access_log" common
<Directory "/Users/renatobento/Documents/Projetos/Personal">
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
路径“/Users/renatobento/Documents/Projetos/Personal”似乎是正确的,并且包含一个带有一些内容的简单 index.html,它在具有文件协议的浏览器中工作:“file:///Users/renatobento/文档/Projetos/personal/index.html"
已经执行
apachectl stop
、apachectl start
、apachectl restart
千次
在停止命令之后,localhost:80 仍然显示消息“It Works”
我使用的是 MAC OSX 10.3 high sierra, apache 2.4
服务器版本:Apache/2.4.33 (Unix) 服务器构建时间:2018 年 4 月 3 日 23:45:11 服务器模块幻数:20120211:76 服务器加载:APR 1.5.2,APR-UTIL 1.5.4 编译使用:APR 1.5.2,APR-UTIL 1.5.4 架构:64 位服务器 MPM:prefork 线程:否 分叉:是(可变进程计数)服务器编译时使用.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6(启用 IPv4 映射地址)-D APR_USE_FLOCK_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/usr" -D SUEXEC_BIN="/usr/bin/suexec" -D DEFAULT_PIDLOG="/private/var/run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types" -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
编辑: 尝试使用不同的端口:9050 但仍然无法正常工作
【问题讨论】:
【参考方案1】:检查 DocumentRoot 是否有权限
/Users/renatobento/Documents/Projetos/Personal
设置为每个人都可以访问。
您的整体配置似乎不错。
检查您的 /etc/hosts
文件,是否包含类似
127.0.0.1 localhost
127.0.0.1 personal.com
要编辑此文件,请在终端中键入
sudo nano /etc/hosts
,然后在编辑后键入sudo killall -HUP mDNSResponder
以刷新 DNS 缓存。
【讨论】:
刚刚签入 gui finder> 右键单击文件夹 > 获取信息。是每个人 - 只读,我把每个人都改为 - 读写,然后重新启动 apache,但没有任何改变 hosts文件中没有personal.com,只是添加试一试:` 127.0.0.1 localhost 127.0.0.1 personal.com 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost ` 还尝试了刷新DNS缓存的命令,并重新启动了apache但没有解决【参考方案2】:问题解决了。 奇怪,看起来重启 Apache 和缓存命令有时是不够的。 系统重启后消息变为 403-forbidden。
我检查了端口
lsof -nP -i4TCP:80 | grep LISTEN
lsof -nP -i4TCP:8050 | grep LISTEN
lsof -nP -i4TCP:9050 | grep LISTEN
它显示 4 个 httpd 进程正在侦听:80 即使 apache 停止,然后在重新启动后出现一个进程正在侦听正确的端口。
【讨论】:
以上是关于Apache 本地虚拟主机已列出但不起作用的主要内容,如果未能解决你的问题,请参考以下文章