Активация расширений PHP в Bluemix
Это чисто вопрос Bluemix!
У меня есть код, который работает гладко на локальном хосте, но когда я перенес его в Bluemix, у меня не получилось подключиться к БД. Проверяя журналы, я обнаружил проблему "Вызов неопределенной функции mysqli_init()" HTTP-ответ 500. Я узнал, что расширение было отключено, чтобы уменьшить его размер, и нашел некоторые подробности об этом: Параметры пакета сборки.
К сожалению, я пробовал это и потерпел неудачу. Может быть, я неправильно понял решение.
Мы будем очень признательны за любую помощь.
ИЗМЕНИТЬ:
Bgconfig-->bp-config устранена "ошибка неопределенной функции"
Похоже, что некоторые расширения были добавлены, но не все. "Фатальная ошибка: класс "PDO" не найден в /home/vcap/app/htdocs/db_config.php в строке 15"
Однако я добавил расширение PDO в options.json.
Я попытался добавить перезапись php.ini
Но все равно получаю ту же ошибку...
Для информации: строка 15 на db_config.php это просто:
$db = new PDO('mysql:host=us-cdbr-iron-east-02.cleardb.net;dbname=ad_dae231843a962ca', $username, $password);}
В рамках try & catch, конечно.
Есть какие-нибудь подсказки?
4 answers
Файл options.json
является правильным, который вы опубликовали. Однако он находится в неправильном каталоге, он должен находиться в папке с именем .bp-config/
. Переименуйте папку и верните свое приложение обратно в Bluemix.
Также попробуйте добавить pdo_mysql
в .bp-config/options.json
.
Я только что протестировал некоторый код с драйвером PDO на базе данных, и он работал нормально. Мой файл .bp-config/options.json
приведен ниже.
{
"PHP_EXTENSIONS": ["pdo", "mysqli", "pdo_mysql", "mysql"]
}
Я бы дважды проверил ваш доступ к базе данных с помощью настольного клиента MySQL. Похоже, у вас проблема с подключением информация.
У меня есть пример приложения для проверки вашей информации о соединении с PDO.
Инструкции по добавлению файла options.json являются правильными, и, судя по вашему снимку экрана, файл выглядит правильным. Проблема в том, что каталог, в который вы поместили файл options.json, вы назвали .bgconfig
, когда он должен быть .bp-config
.
Можете ли вы изменить имя каталога, повторно загрузить приложение в Bluemix, и оно должно работать.
Есть ли у вас mysql, определенный в вашем composer.json
?
{
"require": {
"ext-mysqli": "*"
}
}
Вы можете добавить расширение в файл composer.json
{
"require": {
"ext-mysqli": "*",
"ext-gd": "*"
}
}