【发布时间】:2015-11-30 19:56:42
【问题描述】:
我正在尝试使用 PHP 和 ClearDB(使用 PDO 进行连接)创建一个 Bluemix 应用程序。
当我尝试使用本地主机 (WAMP) 访问服务器时,我可以获得连接成功消息。当我简单地复制并粘贴 Bluemix 上的代码时,我收到以下错误:
Fatal error: Class 'PDO' not found in /home/vcap/app/htdocs/includes/db.php on line 43
我确信我的凭据有效,因为我使用相同的凭据通过 MySQL Workbench 进行连接。 我确信我的语法是正确的,因为我可以使用 localhost (WAMP) 进行连接。
我搜了一下发现需要将PDO激活为PHP扩展(我已经看到这个帖子Activating PHP extensions in Bluemix但是没有成功)。
一些配置文件:
.bp-config -> php -> php.ini
extension=pdo.so
extension=pdo_sqlite.so
extension=pdo_mysql.so
extension=sqlite.so
extension=mysqli.so
extension=mysql.so
extension=mbstring.so
extension=php_pdo.dll
extension=php_pdo_mysql.dll
display_errors = On
display_startup_errors = On
error_reporting = On
.bp-config -> options.json
{
"PHP_EXTENSIONS": ["bz2", "zlib", "openssl", "fpm", "tokenizer", "curl", "mcrypt", "mbstring", "PDO", "pdo_mysql", "mysql", "mysqli"]
}
/home/vcap/app/htdocs/includes/db.php 中的第 43 行
$this->conn = new PDO($strcon, $this->user, $this->password)
有人可以帮我解决吗? 谢谢!
【问题讨论】:
-
您是否查看了服务器的错误日志以了解 500 的含义?在你发现错误到底是什么之前,摆弄配置文件是没有意义的。
-
你好@JeffSloyer,我已经尝试过该帖子中提供的解决方案,但我无法修复......
-
您好@MarcB,我不再收到错误 500,但 PDO 仍然无法正常工作
-
您已加载 .so 和 .dll 文件。 .so 适用于 unix 系统,.dll 适用于 windows。你不能混合它们。如果您检查了 php/apache 错误日志,您可能会看到一堆关于无法加载 dll 的错误/警告(因为您的系统路径表明您使用的是 unixish 系统)。
标签: php pdo connection ibm-cloud cleardb