Фатальная ошибка PDO в Bluemix


Я действительно застрял в создании PDO, работающего с PHP в bluemix. Я не могу его использовать, каждый раз, когда я получаю эту ошибку:

Fatal error: Class 'PDO' not found in ...

Затем я добавил файл options.json в раздел .bp-config\

{
     "PHP_VERSION": "{PHP_55_LATEST}",
       "WEB_SERVER": "httpd",
     "PHP_EXTENSIONS": [ "bz2", "zlib", "openssl", "fpm", "tokenizer", "curl", "mcrypt", "mbstring", "pdo", "mysqli"]
}

Затем я также попробовал использовать php.ini в файле .bp-config\

display_errors = On
display_startup_errors = On
extension=pdo.so
extension=pdo_mysql.so
extension=mysqli.so
extension=mysql.so
extension=mbstring.so

И после phpinfo(); Я получаю:

'./configure' '--prefix=/tmp/staged/app/php' '--disable-static' '--enable-shared' '--enable-ftp=shared' '--enable-sockets=shared' '--enable-soap=shared' '--enable-fileinfo=shared' '--enable-bcmath' '--enable-calendar' '--with-kerberos' '--enable-zip=shared' '--with-bz2=shared' '--with-curl=shared' '--enable-dba=shared' '--with-cdb' '--with-gdbm' '--with-mcrypt=shared' '--with-mhash=shared' '--with-mysql=shared' '--with-mysqli=shared' '--enable-pdo=shared' '--with-pdo-sqlite=shared,/usr' '--with-pdo-mysql=shared,mysqlnd' '--with-gd=shared' '--with-jpeg-dir=/usr' '--with-freetype-dir=/usr' '--enable-gd-native-ttf' '--with-pdo-pgsql=shared' '--with-pgsql=shared' '--with-pspell=shared' '--with-gettext=shared' '--with-gmp=shared' '--with-imap=shared' '--with-imap-ssl=shared' '--with-ldap=shared' '--with-ldap-sasl' '--with-zlib=shared' '--with-xsl=shared' '--with-snmp=shared' '--enable-mbstring=shared' '--enable-mbregex' '--enable-exif=shared' '--with-openssl=shared' '--enable-fpm'

Я также пробовал composer.json:

{
  "require": {
    "ext-mysqli": "*",
    "ext-pdo": "*",
    "ext-pdo_mysql": "*"
  }
}

Но все же, после всех этих шагов, я все еще получаю одну и ту же ошибку со дня на день:(:отчаянный:

Author: notme, 2015-08-10

2 answers

Для меня композитор не работал, но options.json работал.

Файл options.json в разделе .bp-config/ должен также содержать драйвер, который вы хотите использовать. В противном случае сам PDO не сможет взаимодействовать с БД.

Это мои рабочие параметры.json

{
"PHP_EXTENSIONS": ["bz2", "pdo", "zlib", "curl", "mcrypt", "mbstring", "mysqli", "gd", "zip", "pdo_mysql", "pdo_sqlite" ]
}

Из предоставленного вами phpinfo() вы можете взаимодействовать с mysql, sqlite и pgsql с помощью PDO.

Чтобы проверить, загружен ли у вас драйвер, запустите phpinfo() и найдите раздел PDO. Там должно быть что-то вот так: PDO drivers mysql, sqlite .

 5
Author: Trix, 2015-11-30 14:38:04

Просто попытался воспроизвести вашу проблему, но с помощью composer.json, что касается вашей вставленной конфигурации, она работала нормально. Вероятно, ваша проблема может быть связана с конфликтом между различными конфигурациями, используемыми для устранения ошибки. Мое предложение решить вашу проблему состоит в том, чтобы снова начать с начального кода, убедиться, что служба MySQL привязана правильно, а затем заменить код на свой и настроить composer.json с нужными вам библиотеками. Затем нажмите на нее снова, оставив ее завершенной полностью постановочные мероприятия (действительно важно!) Дайте нам знать, если вам удастся решить эту проблему.

 0
Author: v.bontempi, 2015-08-14 15:33:21