我无法从外部访问我的家庭服务器的 wordpress 网站

我无法从外部访问我的家庭服务器的 wordpress 网站

基本上,我可以使用 127.0.0.1 正常访问所有内容,但如果我使用我的外部 IP(123.123.123.123),就会出现页面未找到的情况。

我的路由器正在将 HTTP 端口 80 转发到我服务器内部 IP 地址上的端口 8080。换句话说:(应用程序:HTTP | 开始:80 | 结束:8080 | 协议:两者 | IP 地址 192.168.0.101 | 启用 [是])我知道它转发正确,因为当我停止端口转发时,我可以使用我的外部 IP 访问我的路由器页面。

我的虚拟主机文件是:

NameVirtualHost *:80
    <VirtualHost *:80>
    DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
    ServerName example.com
    ServerAlias www.example.com
</VirtualHost>

我的 httpd.conf 文件是:

Listen 80
Servername localhost:80
DocumentRoot "/opt/lampstack-5.3.16-0/apache2/htdocs
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny, allow
    deny from all
</Directory>
<Directory "/opt/lampstack-5.3.16-0/apache2/htdocs">
    Options FollowSymLinks
    AllowOverride None
    Order allow, deny
    allow from all
</Directory>

答案1

您正在使用基于名称的虚拟主机。如果您尝试使用其他名称访问您的网站,您将获得默认网站。

NameVirtualHost *:80

Servername localhost:80

答案2

我认为问题来自于指定一个具有拒绝权限的 DocumentRoot - 但您应该得到 403 禁止错误,而不是 404 未找到(至少当我尝试模仿您的配置时我会得到这样的错误)。

DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress

因为此目录没有条目,所以<Directory >它继承了默认权限

<Directory />
  Options FollowSymLinks
  AllowOverride None
  Order deny, allow
  deny from all
</Directory>

尝试注释掉拒绝行

  #Order deny, allow
  #deny from all

或者创建一个新条目来测试这个问题

<Directory "/opt/lampstack-5.3.16-0/apps/wordpress">
  Options FollowSymLinks
  AllowOverride None
  Order allow, deny
  allow from all
</Directory>

笔记:您现在应该尝试使用 IP 地址访问服务器,www.example.com 将无法带您到达任何地方,因为它没有 DNS 条目(或者如果有,它也指向您的服务器)。

答案3

看起来是路由器的问题。尽管我尝试过重启路由器,尽管我尝试过启用和禁用 nat 重定向的所有方法。我刚坐下来,路由器就自己重置了。我必须输入默认密码才能进入路由器管理页面(而不是我设置的密码)。之后一切都正常了。

另外尝试在 vhosts 文件中不包含任何内容,这样也可以

故事的寓意是:以防万一,请尝试使用不同的路由器。

相关内容