Я попытался установить драйвер PDO MySQL на сервер с Solaris, используя следующие команды:
$ pecl download pdo_mysql
$ tar xzf PDO_MYSQL-1.0.2.tgz
$ cd PDO_MYSQL-1.0.2
$ phpize
$ ./configure --with-pdo-mysql=/usr/local/mysql
$ make
$ make install
Каждый раз, когда я перезапускаю apache с помощью "./apachectl restart", он не запускается (я только предполагаю, поскольку он не загружает ни один из размещенных на нем веб-сайтов - я не получаю сообщений об ошибках при выполнении предыдущей команды).
Мой каталог расширения: «/ usr / local / lib / php / extensions / no-debug-non-zts-20060613 /», а следующая строка находится в моем файле php.ini «extension = pdo_mysql.so». Действительно, в extension_dir создается новый файл pdo_mysql.so. Когда я закомментирую «extension = pdo_mysql.so», Apache запускается успешно.
Если я попробую команду pecl install pdo_mysql
я получил pecl/pdo_mysql is already installed and is the same as the released version 1.0.2
.
Что могло пойти не так с моей установкой и где я могу найти сообщения об ошибках, почему Apache не запускается?
ОБНОВИТЬ: Я нашел свой журнал ошибок и нашел следующее сообщение:
ld.so.1: php: fatal: relocation error: file /usr/local/lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so: symbol php_pdo_declare_long_constant: referenced symbol not found
Killed
Кроме того, возможно, проблема в том, что в моем файле php.ini должен быть "pdo_mysql.so", а не pdo.so? PDO (а не драйвер PDO MySQL) не загружается как расширение с php.ini, но, похоже, уже включен в мою установку PHP.
Любые идеи?
По-видимому, это была известная ошибка в той версии PHP, которую я использовал: http://pecl.php.net/bugs/bug.php?id=12141
В итоге мы решили эту проблему, скомпилировав новую версию PHP без компилированного PDO и используя PECL для установки драйверов PDO.