我已经与这个问题斗争了几天,现在已经筋疲力尽了,所以任何帮助都会非常有帮助。我在办公室有几台电脑。其中一台现在是 Ubuntu 服务器,我正在为基于 Web 的应用程序设置它。其余的是 Windows 7 和 Apple 的混合体。我无法通过具有 IP 的其他客户端浏览器访问 Ubuntu LAMP。旋转一段时间后,我收到“页面未找到”错误。我对从 WAN 访问 Ubuntu 服务器不感兴趣,只对从 LAN 访问感兴趣。
在 Ubuntu 服务器上设置:我删除了一个硬盘并安装了新版本的 15.04,因此它是系统上唯一的操作系统。我安装了 xrdp 以启用远程桌面控制。安装过程顺利。我运行此命令apt-get install lamp-server^
来安装 LAMP 堆栈。安装过程顺利。我没有更改任何文件conf
。这是我运行时显示的内容ufw status
:
root@ubuntuserver:/# ufw status
Status: inactive
这是iptables
我跑步时的样子iptables -L
:
root@ubuntuserver:/# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
以下是所netstat
展示的内容netstat -ntlp
:
root@ubuntuserver:/# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 17201/mysqld
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1227/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 11437/sshd
tcp 0 0 127.0.0.1:5910 0.0.0.0:* LISTEN 1742/Xvnc
tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN 1594/xrdp-sesman
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 1590/xrdp
tcp6 0 0 :::80 :::* LISTEN 19199/apache2
tcp6 0 0 :::22 :::* LISTEN 11437/sshd
有时,如果我service apache2 reload
先尝试访问该页面,我可以It Works
从我的 Windows 7 计算机访问该页面一次。但只有一次。如果我尝试导航到该phpinfo.php
页面,它会超时。反之亦然,如果我phpinfo.php
先尝试访问该页面,那么我就无法访问该It Works
页面。
在 Ubuntu 服务器上,我可以通过localhost
IP访问任意数量的页面172.19.0.15
。不过,我在办公室的其他电脑上却没有取得同样的成功。而且由于这是一个他们需要访问的基于 Web 的应用程序,所以我需要这种访问权限。
我错过了什么?
编辑1
根据 Ben 的建议,我编辑了该ports.conf
文件如下:
#Listen 80
Listen 0.0.0.0:80
我已经重新启动了 Apache2 服务,netstat 现在如下所示:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9342/apache2
但是,我仍然遇到相同的问题。我曾经能够访问该phpinfo.php
页面It Works!
,但之后就无法导航到另一个页面了。
我确实读过关于编辑<Directory>
条目的内容apache2.conf
。目前内容如下:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all denied
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
但同样,我并没有更改默认设置。这样,本地主机就可以正常工作...还有其他想法吗?
编辑2
这是我的文件的内容000-default.conf
:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port t$
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
我重新启动了服务器,但仍然无法使用 LAN 计算机的 IP 访问它。
答案1
问题不在于您的防火墙,而在于您的 apache 配置。
正如 muru 正确解释的那样,你可以通过这一行看到:
tcp6 0 0 :::80 :::* LISTEN 19199/apache2
Apache 正在监听两个都ipv4 和 ipv6。
由于您提到它是从本地主机运行的,我建议您检查您的网络配置。