大家好,正如标题所述,我正在尝试通过 LAMP 设置公开我的网站。我尝试过但失败了……所以如果你能再多加努力,我将不胜感激!我的设置:-VMWARE 9.0.2 -Ubuntu server 12.10 -apache2(我认为是 2.2?)-php5 -mysql -phpmyadmin
我猜是标准的东西。那么我在哪里?我的网站可以通过 LAN 连接访问,在http://192.168.1.147/test.php
那里我有 phpinfo() 函数,并且http://192.168.1.147/
它工作正常!
我在路由器的端口:80 上设置了端口转发,并检查虚拟机的本地 IP 地址是否打开(确定)。
现在我在想下一步是改变 ports.conf 文件?
从:
NameVirtualHost *:80
Listen *:80
<ifModule mod_ssl.c>
Listen 443
</ifModule>
<ifModule mod_gnutls.c>
listen 443
</ifModule>
到:
NameVirtualHost My.IP.Add.ress:80
Listen My.IP.Add.ress:80
<ifModule mod_ssl.c>
Listen 443
</ifModule>
<ifModule mod_gnutls.c>
listen 443
</ifModule>
但是我应该更改 /etc/apache2/sites-available/default 的虚拟主机文件以使用相同的 IP 和端口,对吗?那时我得到以下信息(在我重新启动或尝试重新启动 apache 之后)
[日期] [错误](EAI 2)名称或服务未知:无法解析服务器名称(检查 dns)或等。然后(99)无法分配请求的地址:make_sock:无法绑定到地址 1.2.3.4,没有可用的监听套接字正在关闭。
我输入的是我的互联网 IP 地址,而不是本地 IP。
这就是我的停留,感谢您的阅读!
按照 ubuntuforums 的建议,我将 ports.conf 和 /etc/apache2/sites-available/default 重置为 *:80,并检查端口是否打开http://www.canyouseeme.org/
端口已打开,正如站点所建议的那样。我将 port.conf 更改为 *:80,并将 /etc/apache2/sites-available/default --> 更改为,但是当我访问我的 ipaddress:80 时,我收到“服务器需要用户名和密码。服务器显示 level_15_access
PS ofc 重新启动了 apache
答案1
如果您的端口转发设置正确,则不需要调整 Apache 上的任何设置。
我将恢复您对 Apache 配置所做的更改并重新测试。尝试在您的 VM 上运行“tcpdump”,查看是否有来自外部世界的流量到达它。
如果没有,我会先检查您的路由器配置。
答案2
通常,您不应在“Listen”和“VirtualHost”指令中使用 IP 地址。这些指令的存在是为了让您能够告诉 Apache 服务器,在具有多个接口的系统上它必须绑定到哪个接口。您的系统只有一个接口。默认设置(使用 * 绑定到所有接口)是正确的。获取配置,使其处于您的请求
http://192.168.1.147/test.php
再次有效的状态。
我认为您遇到了网络问题。您的 VMWare 实例是否在您进行测试的同一台机器上运行?如果是那样的话,请先测试您是否可以从同一网络中的另一台 PC 访问您的 Web 服务器。可能是您的虚拟主机根本无法访问。
下一步是在路由器上配置端口转发,并使用网络外部的某些计算机对其进行测试。
事实上,这既不是 UBUNTU 的问题,也不是 Apache 的问题……这是一个网络问题。