gpt4 book ai didi

php - Apache 虚拟服务器和使用 ip 地址的硬编码 mysql 连接器

转载 作者:行者123 更新时间:2023-11-30 22:06:52 25 4
gpt4 key购买 nike

xampp 发行版 5.6.15,Apache 2.4.17 MariaDB 10.1.10 在 w7-64 上运行,

我使用虚拟主机在我的本地机器上重新创建了一个生产网站的副本。除了分发所有关于代码的硬编码 mysql 连接器外,效果很好。

目前不能修改这些文件。问题是,有没有办法设置 Apache 或 mysql 以允许这些连接工作?

这是一个例子(旧技术):

mysql_connect('123.123.123.123', DB_USER, DB_PASSWORD);

mysql 数据库在此 xampp 端口之外运行。它是一个相同的 mysql/MariaDB 版本。正确命名主机后,数据库将连接。

谢谢。 (请留下 php 标签 - 这些人知道很多。)

更多信息 - 编辑

我修改了两个文件试图重新映射 ip 地址。

\Windows\System32\drivers\etc\hosts和\xampp2\apache\conf\extra\httpd-vhosts.conf

使用它可以找到的主机名。这是我所做的其他条目。如果你能想到一个排列,我可能已经尝试过了。我现在想知道这不是一些 mysql 配置问题。再次,去掉 ip 地址,使用一个名称,一切都很好:(这是带有失败的 ip 地址的条目。在这两个文件中的任何一个发生任何更改后,我循环 Apache 并刷新 dns。来自连接的错误消息尝试是:

mysql_connect(): 尝试对无法访问的主机进行套接字操作

============================================= =======================

<VirtualHost *:80>
DocumentRoot "C:/xampp2/htdocs"
ServerName www.production.com
</VirtualHost>

<VirtualHost 123.123.123.123>
DocumentRoot "C:/xampp2/htdocs"
ServerName www.production.com
</VirtualHost>

============================================= =====================

127.0.0.1 localhost
127.0.0.1 www.mspfound.com # second server
123.123.123.123 localhost

127.0.0.1 localhost
127.0.0.1 www.mspfound.com # second server
123.123.123.123 www.mspfound.com

最佳答案

你不能在本地覆盖 ip 地址,你可以做的是通过代理服务器和/或一些 iptables 更改重新路由连接,但这不是我的领域,另一个想法是建立一个本地或虚拟网络,其中mysql 服务器可以使用与现有生产服务器相同的 ip,我通常使用连接到同一虚拟网络的几个虚拟框并使用与相关服务器相同的子网来做到这一点。

但这只是快速修复和修补,您真正应该做的(我希望您已经完成了,已经 3 个月了!)是将代码中的所有 IP 地址替换为可以更改的配置变量集中或可以在主机文件中更改的虚拟主机名,您可能还需要替换已弃用的 mysql_* 函数。

祝你好运。

关于php - Apache 虚拟服务器和使用 ip 地址的硬编码 mysql 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41411394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com