
Как установить новый драйвер PDO в существующую установку LAMP?
Я использую Amazon Linux (на AWS EC2) и установил PHP 5.5 и MySql из репозиториев Amazon. Когда я смотрю, phpinfo
я вижу, что PDO успешно установлен, вместе с PDO_SqlLite. Мне нужно добавить PDO_MySql.
Исходя из того, что я прочитал, я могу либо перекомпилировать PHP с включенным PDO_MySql, либо загрузить его из репозитория. Первый вариант кажется сложной работой и потенциально очень грязной. Второй вариант был бы хорош, но, насколько я могу судить, репозитории Amazon Linux yum не включают драйвер PDO_MySql для PHP 5.5. (Я могу ошибаться, так как я новичок в yum).
Какие еще есть варианты? Что произойдет, если я просто скачаю файл .so откуда-нибудь, поместлю его рядом с другими файлами .so и вызову его в моем php.ini?
Я использую AMI 2013.09.
ОБНОВЛЕНИЕ: Эта ссылка pecl,http://pecl.php.net/package/PDO_MYSQL, говорит, что PDO_MySql был перемещен в исходный код PHP. Может быть, тогда нужно просто включить его?
решение1
Я не использовал EC2, но был бы удивлен, если бы он не включал php-mysql, который является базовым компонентом LAMP. sudo yum install php-mysql
У вас работает?
Если нет, то вам не хватает некоторых важных репозиториев в yum, и лучшим выбором будет их добавить. Я не очень много знаю об этом, но уверен, что кто-то здесь может помочь.
Да, вы можете просто скопировать файлы с другого хоста, если только он имеет ту же архитектуру, что и ваш (запустите arch
для проверки), и связан с версиями библиотек, которые существуют на вашем хосте, что, вероятно, так. Вот файлы, которые вам понадобятся:
$ rpm -q php-mysql -l
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so
/usr/lib64/php/modules/mysqli.so
/usr/lib64/php/modules/pdo_mysql.so
Но в целом вам будет гораздо лучше использовать менеджер пакетов вашего хоста для установки этих файлов и поддержания их в актуальном состоянии. Я не думаю, что у php-mysql есть какие-либо установочные скрипты, но у многих других пакетов они есть, и если вы просто скопируете файлы в эти скрипты, они не будут запущены.
pdo_mysql является частью исходного кода PHP, но дистрибутивы выделяют его в отдельный пакет из основных пакетов PHP.