Apache не перезапустится с включенным PDO MySQL
Я попытался установить драйвер 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", он не запускается (я только предполагаю, что он не загружает ни один из размещенных на нем веб-сайтов - я не получаю сообщений об ошибках при выполнении предыдущей команды).
Мой каталог dir "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/", а следующая строка в моем файле php.ini "extension=pdo_mysql.so". Действительно, существует новый файл pdo_mysql.so, созданный в extension_dir. Когда я комментирую "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
Кроме того, возможно ли, что это проблема, из-за которой у меня должен быть файл "pdo_mysql.so" в моем файле php.ini, а не pdo.so? PDO (не драйвер PDO MySQL) не загружается как расширение с помощью php.ini, но, похоже, уже включено в мою установку PHP.
Есть идеи?
1 ответ
Очевидно, это была известная ошибка в версии PHP, которую я использовал: http://pecl.php.net/bugs/bug.php?id=12141
В итоге мы решили эту проблему, скомпилировав новую версию PHP без скомпилированного PDO и используя PECL для установки драйверов PDO.