Как установить новый драйвер PDO в существующую установку LAMP?
Я использую Amazon Linux (на AWS EC2) и установил PHP 5.5 и MySql из репозиториев Amazon. Когда я смотрю на phpinfo
Я вижу, что PDO успешно установлен вместе с PDO_SqlLite. Мне нужно добавить PDO_MySql.
Основываясь на том, что я прочитал, я могу либо перекомпилировать PHP с включенным PDO_MySql, либо загрузить его из репозитория. Первый вариант звучит как тяжелая работа и потенциально очень грязная. Второй вариант был бы хорош, но, насколько я вижу, репозитории yum Amazon Linux не включают драйвер PDO_MySql для PHP 5.5. (Я могу ошибаться, так как я новичок в yum).
Какие еще есть варианты? Что произойдет, если я просто скачаю откуда-нибудь файл .so, положу его вместе с другими файлами .so и назову его в своем php.ini?
Я использую AMI 2013.09.
ОБНОВЛЕНИЕ: эта ссылка на pecl, http://pecl.php.net/package/PDO_MYSQL, говорит, что PDO_MySql был перемещен в исходный код PHP. Может, тогда дело только в том, чтобы его включить?
Я не использовал 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.