Я искал все подряд и ничего не нашел. Возможно, я не знаю, что искать.
Среда - Ubuntu Lucid (10.4) с PHP 5.2.4 и PostgreSQL 9.2.
PHP "удерживается" в версии 5.2.4 с dpkg --set-selections
. Я могу найти только версию php5-pgsql 5.2.6, и когда я пытаюсь установить ее с помощью dpkg, он жалуется, что PHP находится на уровне 5.2.4.
Пробный запуск с aptitude install php5-pgsql
сообщает мне, что хочет перейти на PHP 5.3.
Изменить: обновление PHP в настоящее время невозможно.
Я должен добавить: я пытался собрать PHP 5.2.4 из исходников, используя --with-pgsql --with-pdo-pgsql
. Никаких расширений в результате не получил. Установлены как libpq, так и libpq-dev.
Кажется, это помогает:
libpq5
и libpq-dev
установлены.cd php_x.x.x/ext/pgsql
phpize
./configure
make
sudo make install
php.ini
добавить extension=pgsql.so
и любые другие необходимые директивы pgsql.Перво-наперво: если вы говорите о производство система, а вы не системный администратор (ваш комментарий указывает, что вы не), не трогай систему.
Если вы решите проигнорировать этот совет и непреднамеренно сломать что-то, ваш системный администратор, вероятно, нанесет вам серьезные телесные повреждения по возвращении (и будет полностью оправдано в этом - Нет ничего хуже, чем вернуться из отпуска и обнаружить, что кто-то что-то сломал, пытаясь «помочь», за исключением, может быть, вызова службы экстренной помощи во время отпуска).
С учетом всего сказанного, если вы хотите сделать это вручную, вы должны точно определить, что устанавливается php5-pgsql
пакет (помимо PHP, скомпилированного с поддержкой Postgres, он также включает расширение pgsql PDO, и, возможно, другие вещи). Затем вам нужно вручную установить все детали.
Нет никакой гарантии, что вы сможете собрать эту головоломку: например, PECL (где вы получите расширение PDO) тестируется только на поддерживаемых версиях PHP. Так и будет наверное работают, но если это не так, решение - «Обновите PHP до поддерживаемой версии».
Чтобы повторить то, что другие люди сказали в своих комментариях:
Привязка вашей системы к определенной версии PHP - это плохо.
Если у вас есть система, которая требует PHP 5.2 (которая давно не поддерживается и изобилует известными дырами в безопасности), самое время сесть со своим системным администратором и написать записку для двух уровней управления над вами. (Если ваш системный администратор не понимает, почему это проблема ты напишите меморандум и поставьте ему копию.)
Блокировка вашей системы на определенном уровне патча PHP - это Безумный.
Если у вас есть система, абсолютно требует PHP 5.2.4, вы уже должны были написать об этом памятку и кричать всем лично о том, что это неустойчиво и создаст серьезные проблемы в будущем.
Если бы вы написали эту записку, именно здесь вы можете выглядеть прозорливо и сказать: «Помните ту записку?» - В противном случае вы можете написать это сейчас (что выглядит не так хорошо, но, по крайней мере, показывает, что вы выполняете свою работу и указываете на серьезные риски для бизнеса).