我正在尝试使用XAMPP v3.2.2在32位Windows 10平板电脑上运行,在家中设置Web服务器。它具有:-Apache / 2.4.38(Win32)-PHP版本7.3.2-mysql Ver 15.1 Distrib 10.1.38-MariaDB,用于Win32(AMD64)
我的域的DNS设置包括A记录,指向www.mydomain.mytld
和@.mydomain.mytld
的外部IP(分配给ISP,并且多年来相同)。
已在我的路由器中设置了端口80到服务器的端口转发。
Apache的httpd.conf
文件包括一个部分:
<VirtualHost *:80>
ServerName www.mydomain.mytld
ServerAlias *.mydomain.mytld
</VirtualHost>
在MySQL中,数据库用户username
拥有从SELECT
访问的DELETE
的INSERT
,UPDATE
,database
和localhost
特权。
在.php文件中,我使用以下方式连接到数据库:
$dbUrl = "127.0.0.1";
$dbUser = "username";
$dbPass = "password";
$dbName = "database";
$db = new mysqli($dbUrl, $dbUser, $dbPass, $dbName);
当我在服务器本身(使用http://127.0.0.1/)上访问此文件时,此方法工作正常。当我使用服务器的网络地址(http://192.168.178.35/)从家庭网络中的另一台计算机访问同一计算机时,它也可以正常工作。当我使用外部(ISP分配的)IP地址从家庭网络中的另一台计算机访问同一计算机时,它也可以正常工作。
但是...当我使用域名尝试相同操作时,它失败:“警告:mysqli :: __ construct():(HY000 / 2002):连接尝试失败,因为经过一段时间后被连接方未正确响应时间或建立的连接失败,因为连接的主机无法响应。”在$db = new mysqli(...
语句中。
我已经尝试过localhost
,甚至是服务器的网络地址(192.168.178.35
)都为$dbUrl
,还尝试了包括端口号3306
,但都无济于事。也尝试过root
用户具有所有特权,结果仍然相同。
同一服务器上不使用数据库的其他页面(.html和.php),使用我的域名也可以正常工作。
[在互联网上的某个地方,我发现也许可以通过用#
注释掉::1 localhost
文件中的%WINDIR%\system32\drivers\etc
行来解决,但是该行已经在我的主机文件中被注释掉了。
由于使用我的外部IP地址,一切正常,只是不使用我的域名,我希望我只是在许多配置文件之一中的某些地方缺少某些指令,但是我找不到我要的内容。缺少。
任何想法,有人吗?预先感谢。
我发现了问题。
[愚蠢的我监督了一些过时的代码,这些代码根据$ _SERVER [“ SERVER_NAME”]的信息,在赋值语句和mysqli对象的创建之间更改了$ dbUrl变量值。我删除了旧代码,现在可以正常使用。
谢谢大家,花时间阅读此问题,对不起,浪费您的时间。