Posterous theme by Cory Watilo

FreeBSD and php5

Довелось мне столкнуться с ситуацией, когда на сервере запущено 2 апача и у одного mod_php4 а у другого mod_php5. Ну и из-за этого возникает интересная ситуация - PHP4 был поставлен раньше и стал нормально, а PHP5 был поставлен с префиксом в /usr/local/php5. Все бы и хорошо, только я обнаружил полное отсутствие PDO. PDO был добыт из самого PECL'а, в надежде что поставив его все обойдется без внесения изменений вкуда бы то нибыло. Если бы... Когда я скачивал PDO меня несколько смутило то, что отдельно есть еще и PDO_MYSQL и тому подобное. Но я привычно не обратил на это внимания. А зря... Итак, развалил PDO и сделал phpize. первая моя ошибка состояла в том, что надо было делать /usr/local/php5/bin/phpize. Но я об этом догадался потом. Далее был сделан ./configure и тут я понял, что что-то не так. пути мелькали -I/usr/local/lib/php... Но ведь там стоит РНР4! Были опробованы все варианты ./configure --prefix=... и т.д. Ничего не помогло. Сегодня ковыряния продолжились. и, скажу сразу, завершились успехом. Был расковырян до безобразия configure и в нем была обнаружена строка PHP_CONFIG=php-config я ее заменил и все вроде как стало работать и правильно... Но потом посмотрев выше я нашел, что за установку этой команды отвечает опция конфигурятора --with-php-config=PATH. Я-то наивный думал что это путь к php.ini. Итого, #/usr/local/php5/bin/phpize #./configure --with-php-config=/usr/local/php5/bin/php-config и PDO встал. Первая попытка отправить MySQL-запрос не удалась. Посмотрел phpinfo();. PDO есть, а драйверов БД к нему нет. Проклиная все и вся, скачал PDO_MYSQL и скомпилял его уже проверенным способом. При попытке make вывалился с ошибкой на MYSQL_OPT_LOCAL_INFILE. Ну не знает оно такого. Мускуль стоит 4.0.какой-то-там. Пошел в /usr/local/include/mysql и поиском там не нашел упоминания такого. Хм. Остальные константы там нашлись. Полез в mysql_driver.c и закоментарил тот кусок (строки около 478й). Скомпилил. В каком месте он перестанет работать я не догадываюсь, но твердо уверен, что рано или поздно это случится. Потом вписал в конфиге extension=pdo.so и  extension=pdo_mysql.so и все взлетело.