在MacOS 13 Ventura上,我安装了PHP 8.2.10和PostgreSQL 16(来自Postgres.app),并创建了一个数据库,我可以通过命令行毫无问题地查询。我还在网络浏览器(Firefox和Safari)中正确获取了phpinfo()
功能的网页。然而,当我想通过web浏览器和PHP脚本查询数据库时,我得到一个超时错误:“加载页面时,与服务器的连接已重置."。我该如何解决这个问题?
下面是PHP脚本:
<?php
$host = "host = 127.0.0.1";
$port = "port = 5432";
$dbname = "dbname = DBNAME";
$credentials = "user = USER password = PASS";
$conn = pg_connect( "$host $port $dbname $credentials" );
if(!$conn) {
echo "Error : Unable to open database".PHP_EOL;
} else {
echo "Opened database successfully".PHP_EOL;
}
?>
对Apache httpd.conf
的修改如下:
未评论:
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
修改:
ServerName localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
Options FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride All
Require all granted
</Directory>
又道:
#PHP
PHPIniDir "/usr/local/etc/php/8.2/php.ini"
LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so "Vlad Atanasiu Myself"
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
1条答案
按热度按时间hs1rzwqc1#
我通过从pg_connect()函数中省略主机和端口来解决这个问题。所以与其
我以前
我仍然想知道为什么会发生这个问题。
**PS:**上述行为似乎取决于配置。例如,在MacOS 10.15.7 Catalina 、PHP 7.3.29(预装在MacOS上)和PostgreSQL 15(来自Postgres.app)上,您需要使用
pg_connect("$host $port $dbname $credentials")
连接到数据库,代码与上面相同。