首页 > 解决方案 > 站点仅在 localhost 中打开

问题描述

我正在使用 apache 2.4 和 PHP 5.6 设置 Windows Server 2019。

我能够使用 localhost 在浏览器中加载 phpinfo。

我正在尝试使用别名在另一个驱动器 (D:) 上的 htdocs 文件夹中打开站点,根据我们的网络团队引用的说法,“DNS 设置正确,指向 newprod.company.name.com” ,其中“newprod”是实际别名。

在我的 httpd.conf 文件中,我有以下设置:

Define SRVROOT "c:/Apache24"

ServerRoot "${SRVROOT}"

Listen 80

以上是指Apache24所在的C:盘。

LoadModule rewrite_module modules/mod_rewrite.so

我没有注释上述模块。还有几个其他模块未注释,但根据各种 Apache 设置教程,上面的一个似乎是主要模块之一,是主要模块。

ServerAdmin my.company@company.com

ServerName newprod.company.name.com:80
ServerName Localhost:80

根据各种教程,以上似乎是准确的。我比较了我以前的 httpd.conf 文件,它们使用非常相似的配置工作,包括 Localhost:80。

DocumentRoot "D:/htdocs"
<Directory "D:/htdocs">
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted
</Directory>

主要集中在 D:/htdocs 之上。这是我认为应该从这里打开网站以及使用别名打开的地方。

<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>

根据各种教程,以上是 Apache 设置的典型情况。

<VirtualHost newprod.company.name.com:80>
  ServerName newprod.company.name.com
  Redirect / http://newprod.company.name.com/
</VirtualHost>

我在另一台服务器(具有不同的别名)上使用上述内容,没有任何问题。

PHPIniDir "C:/PHP5.6"
AddHandler application/x-httpd-php .php
LoadModule php5_module "C:/PHP5.6/php5apache2_4.dll"

最后,以上是为了确保 Apache 会读取 PHP。

我有另外两台服务器正在使用自己的别名加载站点,没有问题。我真的一行一行地试图确保一切都匹配。唯一不匹配的是文件底部的 PHP 配置。我的另外两台服务器使用的是 PHP 7.4,而问题服务器使用的是 PHP 5.6。

为什么我的网站没有使用我提供的别名加载?

标签: phpapachehttpd.confphp-5.6apache2.4

解决方案


如果你正在使用

ServerName newprod.company.name.com:80
ServerName Localhost:80

在主 httpd.conf(或主 apache 配置文件)中,去掉

ServerName Localhost:80

虚拟主机配置

<VirtualHost newprod.company.name.com:80>
  ServerName newprod.company.name.com
  Redirect / http://newprod.company.name.com/
</VirtualHost>

可能会创建一个重定向循环:如果这是虚拟主机内的所有配置,请摆脱它:它没用。

您的 apache 服务器上的端口 80 是否可以从另一台 PC 访问?您是否可以从 apache 服务器的 po 80 上同一局域网中的 PC 远程登录?您是否检查过防火墙是否丢弃了第一个同步数据包?


推荐阅读