我正在使用heroku local
尝试在本地开发PHP,然后再推送到heroku。
但是,我无法在本地使用Postgres,因为缺少PDO驱动程序:
'PDOException' with message 'could not find driver'
错误消息phpinfo()
显示pdo_pgsql
未安装。 如何在heroku local
上安装(或启用?)PostgreSQL PDO(pdo_pgsql)?
我在官方文档中找不到任何内容,也没有在网上找到任何内容。 (PHP似乎缺乏文档,尤其是如何在本地使用heroku。)
仅供参考,运行Mac OS X.
如果需要,这是我正在进行测试的最小例子:
/**
* postgres-helloworld.php
* Runs fine on XAMPP, which has PHP Version 5.5.15 with pdo_pgsql installed.
* But won't run on heroku local, which has PHP Version 5.5.34 WITHOUT pdo_pgsql installed.
* `PDOException`, `could not find driver'`
*/
$dbh = new PDO( "pgsql:dbname=test;host=localhost", 'fabien', NULL );
$res = $dbh->query( 'SELECT name FROM test_table' )->fetchAll( PDO::FETCH_ASSOC );
echo $res[0]['name']; // echoes the content of said table, i.e. `hello database` -- OK
?>
编辑:
我意识到我heroku local
完全关闭的整个模型。它只是这样做:
“Heroku Local从.env文件中读取配置变量。”(来自https://devcenter.heroku.com/articles/heroku-local)
我错误地认为它在本地提供了heroku在云中提供的相同灵活性(即:dev-prod-parity,例如:能够选择运行哪个PHP版本并在本地重现与云中相同的设置,并且它带有自己的二进制文件。
实际上,heroku local
仅仅依赖于系统默认的PHP安装和扩展(或缺少它)来运行Web服务器。
一旦理解,根据Shyam Bhimani的解决方案,问题就是通过在本地系统上安装pdo_pgsql来修复它。