我正在试图找出 if 以及如何在一个主机上运行PHP文件(即:Hostgator)并在单独的主机上运行数据库(即:Godaddy)。
我有两个cPanel Linux计划,并希望将此作为隐私和安全措施,因此没有一个主机拥有我的所有数据。我目前无法运行自己的服务器,所以请不要建议。
这可能吗?
答案 0 :(得分:1)
是。当您在PHP中为数据库设置连接字符串时,它通常包含一个名为 hostname 的内容,这是您连接到远程数据库的方式。这是非常标准的行业惯例(我对此有一些经验),尽管它与性能和安全性有关。
答案 1 :(得分:1)
是,可以想象在主机提供商A上运行您的Web服务器,在托管服务提供商B上运行您的MySQL实例。
当你开始工作时,你的MySQL查询将通过两个提供商之间的公共网络传输,很可能是未加密的。一个典型的CMS Web应用程序(Joomla!,WordPress等)至少生成十个MySQL查询来获取呈现每个页面的信息。所以你将有一堆长途查询往返,延迟将受到影响。
现在可能有两个提供商在他们之间有一条高速私人路线,但它让我觉得不太可能。
为什么未加密?为了在典型的共享托管服务提供商处获利,在每台服务器上放置尽可能多的客户非常重要。处理来自客户端的加密连接所需的传输层安全代码会增加服务器开销。它还需要服务器加密证书管理。您可以使用此命令判断MySQL是否支持加密连接。
SHOW VARIABLES LIKE 'have_ssl';
我使用的两个提供商都对此查询回复“已禁用”。
要使其正常运行,您将不得不说服提供商B将提供商A的IP地址范围内的MySQL连接列入白名单(授权)。某些提供商允许您将MySQL连接列入白名单个人机器,其他人没有。这种白名单是一项有风险的业务:您与提供商B的其他客户共享MySQL服务器。当外部地址列入白名单时,存在对所有共享客户进行俗气的拒绝服务攻击的风险。
因此,请询问提供商B的支持人员是否将提供商A列入白名单以进行MySQL连接。如果他们说违反他们的安全政策就不要感到惊讶。
答案 2 :(得分:0)
简而言之:
有可能吗?的是
有效吗? 否强>
在这种情况下不,因为您将服务器放在远离彼此的位置。当应用程序服务器和数据库服务器位于同一网络上或彼此靠近时,这实际上很好,以获得更好的性能和安全性。现在,您几乎可以打开数据库中的漏洞和其他一千个性能和安全性问题。
答案 3 :(得分:-1)
这是可能的。当您建立数据库连接时,您需要告诉PHP 数据库所在的位置。这默认为“这台机器”,但您可以为它提供一个IP,它将连接到那里。
目标被赋予你正在使用的connect
函数的构造函数。
如果您使用的是现有的软件,那么这是否可行取决于相关软件,但大多数软件都支持该软件。