php 使用实时服务器而不是本地服务器,尽管有虚拟主机设置

php 使用实时服务器而不是本地服务器,尽管有虚拟主机设置

我原本计划将网站迁移到另一台服务器,

因此,复制了代码和数据库等,并更改了 Windows 上的 hosts 文件后,一切几乎都按预期运行。我可以加载网站并在重新指向域之前使用它进行测试,

但是,其中有一个功能使用 php 库来查找 html 代码中的图像 URL。因此,我必须使用外部 http URL 来访问图像,即使图像位于同一台服务器上。

我的问题,

尽管网站的其他部分都使用新的本地服务器,但这段代码仍然在查看实时服务器,就好像没有为其设置虚拟主机一样。

在我的 /etc/sites-enabled/example.conf 中我设置了一个虚拟主机...

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com

DirectoryIndex index.php
DocumentRoot /var/www/html/example

ScriptAlias /cgi-bin /var/www/html/example/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

ErrorLog /var/www/html/example/error.log
CustomLog /var/www/html/example/access.log combined
</VirtualHost>

除了上面描述的一个问题外,这一切都按预期工作,在这种情况下它似乎被忽略了。

如果我更改该域的实际 A 记录,我相信这会起作用,但我需要先进行测试。

编辑:为了进一步澄清,

我在 Ubuntu 上使用 Apache2。

我的核心问题是,

当我的 php 代码使用图像 url 时,<img src="http://www.example.com/myimage.jpg" />为什么只有在特定情况下才会从该域指向的真实服务器加载该图像,而不是像其他所有服务器一样从本地服务器加载?

答案1

因为 PHP 代码是在新服务器上执行的,而不是在您的客户端上。除非您对该服务器的 DNS 配置进行一些更改(例如,向 hosts 文件添加条目),否则 PHp 仍会(正确地)认为 www.example.com 在实时服务器上。PHP 不会查看 apache 配置,也不知道它所运行的服务器是否有一个可以响应 www.example.com 请求的 apache。

相关内容