在Google App Engine上 - PHP致命错误:调用未定义的函数pg_connect()

时间:2017-07-31 06:48:56

标签: php postgresql google-app-engine

我正在尝试使用Google Cloud Platform从PHP本地调用我的PostgreSQL实例。 PHP部署在与PostgreSQL相同的项目中。

我的电话是:

$conn_string = "host='/cloudsql/<MY_INSTANCE_CONNECTION_NAME>' dbname='<MY_DB>' user='<USER>' password='<PASSWORD>' options='--client_encoding=utf8'";
$db = pg_connect($conn_string);

我收到以下错误:

PHP Fatal error:  Call to undefined function pg_connect() in ...

phpinfo 方法中,我可以看到以下内容:

enter image description here

在向php.ini添加PostgreSQL扩展时,我收到以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library '/base/php_experiment_runtime/modules/pgsql.so' - /base/php_experiment_runtime/modules/pgsql.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Warning:  PHP Startup: Unable to load dynamic library '/base/php_experiment_runtime/modules/php_pgsql.so' - /base/php_experiment_runtime/modules/php_pgsql.so: cannot open shared object file: No such file or directory in Unknown on line 0

我的php.ini:

extension=pgsql.so
extension=php_pgsql.so

默认情况下,这些扩展程序似乎没有安装在App Engine上,或类似的东西。 由于它是一个App Engine,它没有VM实例,我不知道如何自己连接和安装模块。

感谢。

更新

我尝试使用PDO类,如建议的那样:

$pdo = new PDO('pgsql:unix_socket=/cloudsql/<MY_INSTANCE_CONNECTION_NAME>;dbname=<MY_DB>', $username, $password)

我得到的错误是:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in ...

同样,我没有在App Engine中看到手动安装软件包的方法。

0 个答案:

没有答案