Debian.pro

Блог для пользователей и администраторов Debian


php 5.2 для Debian 6 squeeze, пакеты php52*. Откладываем бубен и ставим PHP 5.2 не вредя системе.

Пока наш системный администратор Ильдар шаманит с кластером для shared-хостинга на best-hosting.ru, в сторону летят очень вкусные вещи =)
На днях он собрал пакеты php52-* для squeeze, а ваш покорный слуга собрал репозиторий для этого дела.

Собранные пакеты ставятся параллельно с php5.3 и ничуть не мешают им. Если вы используете php-cgi, то разные пользователи смогут использовать php52 или php53. Если вы используете mod_php — то вы можете легко переключаться между php52 и php53, но переключение будет затрагивать весь сервер.

Пакеты собраны только для архитектуры amd64. Поддерживать php52 для других архитектур мы, скорее всего, не будем. Может быть, соберем под i386 и забудем, не более.
Спасибо Alexander V Bo за 32 битные пакеты. Я их протестировал — всё работает.

Подключаем наш репозиторий:
Для 64 битных систем:
root@apache-php52:~# echo "deb http://debian.best-hosting.ru/cluster squeeze main" >> /etc/apt/sources.list && aptitude update
Для 32 битных систем:
root@apache-php52:~# echo "deb http://debian.best-hosting.ru binary32/" >> /etc/apt/sources.list && aptitude update
Если нужны сорцы пакетов:
root@apache-php52:~# echo "deb-src http://debian.best-hosting.ru/cluster squeeze main" >> /etc/apt/sources.list && aptitude update
Вы должны увидеть что-то вроде:
Current status: 27 new [+27].
после ввода этой команды.

root@apache-php52:~# aptitude search php52
Покажет нам список пакетов, которые доступны для установки.

Все пакеты устроены так, что вместо php5 в названии каталога используется php52.
Например, конфиг для mod-php будет располагаться по адресу /etc/php52/apache2/php.ini, а extensionы в /usr/lib/php52/

Собственнно, поставим веб-сервер на голый дебиан с php52:
root@apache-php52:~# aptitude update && aptitude upgrade && aptitude install apache2 php52 libapache2-mod-php52 mysql-server mysql-client php52-mysql phpmyadmin
(почитайте эти статьи ещё раз, на всякий случай)
Так как мы ставили phpmyadmin, то php5 (то есть 5.3) тоже вытянулся. Отпилим php 5.3 у апача:
root@apache-php52:~# rm /etc/apache2/mods-enabled/php5.load && rm /etc/apache2/mods-enabled/php5.conf
и перезапустим Apache:
root@apache-php52:~# apache2ctl restart

Для удобства поставим php52-cli:
root@apache-php52:~# aptitude install php52-cli
И проверим:
root@apache-php52:~# php52 -i | grep "PHP Version"
PHP Version => 5.2.17-1

Обратите внимание, что бинарник мы запускали php52, а не php.

Ну и собственно, вам осталось проверить версию php, которую раздаёт apache2 в свет (про phpinfo(); все помним).

Есть там и пакет php52-cgi, и всякая фигня а-ля php52-curl.

Собственно, как переключаться в случае с mod-php:

root@apache-php52:~# ls /etc/apache2/mods-available/ | grep php
php52.conf
php52.load
php5.conf
php5.load

Соответствующие load и conf нужно закинуть в /etc/apache2/mods-enabled

По всем вопросам насчет репозитория пишите на [email protected].


Комментарии (32):

  1. Виктор :

    Спасибо за сборку!
    А как в ней включить поддержку gd?
    Из-за отсутствия gd получаю такие ошибки:
    Fatal error: Call to undefined function ImageCreateFromJpeg() in /var/www/test/test.php on line 55

  2. Поставьте пакет php52-gd

  3. Serj :

    Все отлично, только я присел когда увидел что ITK не совместим с fcgi.. Подозреваю что cgi тоже… А хотелось сделать php52 для тех у кого cms закодирована zend_optimizer и нет возможности обновится…

    Думаю проблема для немалого количества хостеров.

  4. CGI пакет у нас тоже собран. Попрощу ещё собрать fcgi, но вообще вряд ли.

  5. Mixasik :

    А пакетов под х86 ещё не собрано?

  6. Нет, и скорее всего никто их не будет собирать.

  7. Mixasik :

    А если поделиться сорсами пакета или тоже никак?

  8. В понедельник или во вторник спрошу сорцы и history команд для сборки.

  9. Дмитрий :

    Стоит ли ждать fcgi?

  10. Mixasik :

    Было бы совсем не плохо :)
    Тогда потом выложу сборку под х86.

  11. Нет, fcgi не будет.

  12. Mixasik :

    Как там исходники для ПХП? нету ещё?

  13. Исходники там вполне обычные как оказалось.
    diff файл валяется в репе, history пока не забрал.

  14. Mixasik :

    Обычные от ленни? а можно линк на дифф? а то там в бинари нету, а остальное закрыто.

  15. http://debian.best-hosting.ru/source/
    Здесь исходники и диффы. Порядок сборки:
    dpkg-source -x < ПАКЕТ>.dsc
    cd < ПАКЕТ>
    dpkg-buildpackage -rfakeroot -b -j8 -nc; dpkg-buildpackage -rfakeroot -b -j8 -nc

    Собрать там 2 тарболла нужно соответственно (php и suhosin).
    И.. как соберете — мне пришлите архивом =) Напишу в топик.

  16. Юрий :

    Спасибо!

  17. zaartix :

    Пожалуйста добавьте в комплект php52-memcache

  18. В ближайшее время не появится, через неделю-две ждите.

  19. vitich :

    Приветствую.
    А где php52-pear?
    Мне вот oci8 понадобился…

  20. pear, скорее всего не будет. Нам он не нужен.

    Поймите нас правильно — мы не девелоперы дебиана, а просто поддерживаем репу, которая нужна нашим клиентам и нам самим )

  21. Roma :

    Я так понимаю что http://debian.best-hosting.ru/source/ уже доступ закрыли. А жаль.

  22. Да нет, всё там в порядке с доступом. Листинг файлов отключен, просто.

  23. Sergey :

    Сделал все как описано в статье. Кроме этого собрал и установил расширения memcache, imagick. Апач (2.2.16) примерно раз в 10 минут вылетает с Segmentation fault:

    child pid 19457 exit signal Segmentation fault (11)

    Никто не сталкивался с такой проблемой?
    Весь софт кроме 2 расширений пхп установлен из репозитария.

  24. Вероятнее всего, из репозитория вы поставили модули для php53.
    Собирать и устанавливать ничего не нужно, возьмите пакеты от lenny (с самим php там проблемы по зависимостям были, потому мы и пересобирали, а модули нормально ставятся). Если не будут ставиться — пробуйте —force, установку без зависимостей и прочее. И потом ручками в php.ini подключайте.
    Memcache наверняка не взлетит, если он неправильной версии.

    А вообще — было бы неплохо посмотреть на strace апача перед вылетом, syslog, dmesg, error.log, если там что-то есть.

  25. Спасибо, то что надо! Не хотелось собирать руками.

  26. michael :

    deb http://debian.best-hosting.ru cluster/ не работает . в конце выдает Ош http://debian.best-hosting.ru cluster/ Packages
    404 Not Found
    W: Не удалось получить http://debian.best-hosting.ru/cluster/Packages.gz 404 Not Found

    пофиксят ?

  27. Пофиксили, смотрите в мануал.

  28. df-h :

    Очень нужный репозиторий, не первый раз выручает. Спасибо!

  29. PavelTkachev :

    Возможно ли воспользоваться этим репозиторием для работы php и nginx? В связях прописан Apache и при удалении его компонентов удаляется и php.


  30. root@master:~# apt-get install php52 php52-cgi
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following extra packages will be installed:
    php52-common php52-suhosin
    Suggested packages:
    php52-pear
    The following NEW packages will be installed:
    php52 php52-cgi php52-common php52-suhosin
    0 upgraded, 4 newly installed, 0 to remove and 101 not upgraded.
    Need to get 5,532 kB of archives.
    After this operation, 12.3 MB of additional disk space will be used.
    Do you want to continue [Y/n]?

    https://debian.pro/239

    fpm там не собран, разумеется.

  31. Alex :

    Страница http://debian.best-hosting.ru/
    Выдаёт:
    Information
    Account disabled by server administrator.

    Репозиторий закрыт?

  32. Попросил включить, подняли.

    Потом перенесу к себе.

    Спасибо.

Написать комментарий

ACHTUNG: Вам должно быть 18 или больше лет.
Весь материал на сайте предназначен для лиц старше 18 лет.

Если вам нет 18 лет, пожалуйста, найдите другой блог по данной тематике. На этом много мата.


Спасибо.

P.S.: http://habrahabr.ru/post/219935/