Назад | Перейти на главную страницу

Компиляция PHP 5.1.6 с PDO MySQL

ОБНОВИТЬ

Я спросил об этом на StackOverflow, так как в то время у меня не было никаких ответов. Вот ссылка на ответы для полноты картины. Мне понравится эта страница, как только я попробую решение Дэна С.


ОРИГИНАЛ

Некоторое время назад наш крупный клиент перешел к одному хостинг-провайдеру, который разработал программную среду, которая будет согласована на всех действующих серверах.

Среди прочего, это включает Apache 2.2.8 и PHP 5.1.6.

У нас был сервер ubuntu 8.04 для разработки, и эти версии Apache и PHP не установлены по умолчанию. Поэтому мне пришлось скомпилировать их из исходников. Эти версии успешно работают уже больше года.

Мы начинаем сборку нового сайта и хотим использовать ZendFrameword, для которого требуется PDO_MySQL.

Я пробовал перекомпилировать со следующим ...

./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/user/local/apache2/conf/php.ini \
--with-curl=/usr/lib/ --with-mysql=shared --with-mysqli=shared \
--with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ \
--with-freetype-dir=/usr/lib/ --enable-soap --enable-pdo=shared \
--with-pdo-mysql=shared --with-sqlite=shared
...
make
...
make install
...
libtool --finish /sources/php-5.1.6/libs

Все это работает нормально, и когда я возвращаю apache, он показывает мне новый ./configure в phpinfo ().

После этого MySQL перестает работать, раздел MYSQL исчезает и msyql перестает работать.

Make, make install, libtool ... помещает файлы * .so в

/ USR / локальные / lib / php / расширения / без отладки-не-zts-20050922

Конфигурация, которую я использовал ранее, которая включает MySQL, но не PDO,

./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/user/local/apache2/conf/php.ini \
--with-curl=/usr/lib/ --with-mysql --with-mysqli \
--with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ \
--with-freetype-dir=/usr/lib/ --enable-soap

Я не массивный * nix человек, может кто подскажет, где я ошибаюсь.

Спасибо

Первый:

У вас есть посторонняя буква "е" в вашем --with-config-file-path флаг.

Если опечатка в твоей реальности configure тоже, то это может быть причиной вашей проблемы.

Второй:

PHP должен знать, откуда загрузить расширение.

Вы можете указать ему искать в каталоге, который вы отметили, отредактировав свой php.ini следующим образом:

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20050922/"

На заметку:

Обратные косые черты - это обычное обозначение продолжения строк.

Ваша оболочка будет безопасно интерпретировать их, если вы скопируете / вставите команду в терминал.