Web-server = Nginx + PHP, установка PHP
Здесь даются инструкции для установки PHP версий 5.2.* в ОС типа Linux (сами инструкции работают под CentOS и Fedora без изменений и предполагают, что используется 64-битная версия. См. статью про установку Web-среды: Web-server = Nginx + PHP.
Содержание |
Предварительные замечания
Я использую именно версии 5.2.*, поскольку эта статья написана по мотивам создания Web-среды для Drupal 6.*, а эта CMS не полностью совместима с PHP 5.3.*. Но в целом и общем подход ровно такой же, с точностью до тонкости конфигурации.
Я предполагаю, что вы размещаете собранные компоненты по адресам вида
/usr/local/package-v.vv.vvvv
(в имя каталога входит версия), а также создаёте символическую ссылку вида
/usr/local/package
указывающую на используемую в данный момент версию. Такой подход позволяет оперативно переключаться между разными версиями и возвращаться, при необходимости, к устаревшим, в случае возникновения вопросов совместимости.
Скачать и распаковать дистрибутивы
Я храню последние версии дистрибутивов у себя на CDN-ресурсах, но вам имеет смысл, если вы обеспокоены вопросами аутентичности, скачать дистрибутив с сайта PHP.
PHP 5.2.17: php-5.2.17.tar.bz2
mkdir -p /usr/local/src/arc mkdir -p /usr/local/src/install cd /usr/local/src/arc wget -c http://download.boyandin.info/linux/web/src/php-5.2.17.tar.bz2
Я предполагаю, что вы храните дистрибутивы в /usr/local/src/arc, а распаковываете в каталоге /usr/local/src/install - но делайте так, как вам самим удобнее. Это изменит только имена каталогов в командах ниже.
Скачиваем дополнительные дистрибутивы, re2c и lemon (необязательно).
wget -c http://download.boyandin.info/linux/web/src/lemon-1.0.20090718.tar.gz wget -c http://download.boyandin.info/linux/web/src/re2c-0.13.5.tar.gz
Установка дополнительных пакетов
Этот шаг необязательный, но может помочь улучшить эффективность работы компонент (модулей) PHP.
Установка re2c:
cd /usr/local/src/install tar zxf ../arc/re2c-0.13.5.tar.gz cd re2c-0.13.5 ./configure 1> configure.out 2> configure.err make 1> make.out 2> make.err make install 1> make-install.out 2> make-install.err
Убедитесь, что в .err файлах нет ничего серьёзнее безобидных предупреждений и информационных сообщений.
Установка lemon:
cd /usr/local/src/install mkdir lemon cd lemon tar zxf ../../arc/lemon-1.0.20090718.tar.gz gcc -o lemon lemon.c cp lemon /usr/bin
Установка PHP
cd /usr/local/src/install tar jxf ../arc/php-5.2.17.tar.bz2 cd php-5.2.17
Теперь конфигурируем дистрибутив:
./configure \ --prefix=/usr/local/php-5.2.17-cgi \ --with-libdir=lib64 \ --enable-bcmath \ --enable-calendar \ --enable-ftp \ --enable-magic-quotes \ --with-mysqli=shared,/usr/bin/mysql_config \ --with-mysql=shared \ --with-openssl=shared \ --with-kerberos \ --with-pear \ --enable-sockets \ --with-zlib=shared \ --with-curl=shared \ --with-gd=shared \ --with-jpeg-dir=shared,/usr \ --enable-mbstring \ --with-iconv=shared \ --with-imap=shared \ --with-imap-ssl=shared \ --with-ldap=shared \ --with-ldap-sasl \ --enable-pcntl \ --enable-sysvshm \ --enable-sysvsem \ --enable-sysvmsg \ --with-freetype-dir=/usr \ --with-mcrypt=shared \ --with-gettext=shared \ --enable-cgi \ --enable-fastcgi \ --enable-force-cgi-redirect 1> ./configure.out 2> ./configure.err
По завершении посмотрите содержимое configure.err, там не должно быть ошибок — если все пакеты были установлены. Теперь сборка и установка:
make 1> make.out 2> make.err make install 1> make-install.out 2> make-install.err
Убедитесь, что в файлах .err нет сообщений об ошибках. Если сборка и установка прошли успешно, осталось добавить каталог с исполняемыми файлами в путь. Вначале создаём символическую ссылку:
cd /usr/local ln -s php-5.2.17-cgi php
Теперь рекомендуется добавить /usr/local/php/bin в путь. Проще всего это сделать глобально, в файле /etc/profile. Для этого допишите в конец файла строку
export PATH=$PATH:/usr/local/php/bin
Внимание: не забудьте создать устраивающий вас вариант php.ini в каталоге /usr/local/php/lib. Команда
php --ini
укажет, какие конфигурационные файлы используются, а команда
php -m
позволит увидеть список установленных модулей.
Установка PHP 5.2 + FPM
После проведённых испытаний, я выбрал php-fpm в качестве FCGI-сервера. Пакет php-fpm, начиная с версии PHP 5.3.3, включен в основной дистрибутив; чтобы включить его в PHP 5.2, потребуется несколько дополнительных действий и одна дополнительная строка в команде конфигурирования.
Инструкции даны для версии 5.2.17, которая объявлена последней в ветке PHP 5.2. Ссылку на правильный патч можно найти на сайте php-fpm (см. выше), в начале этой страницы указана полная ссылка на мою копию этого архива.
Вначале установите re2c и lemon (см. выше), затем убедитесь, что загружен пакет autoconf213.
cd /usr/local/src/install tar jxf ../arc/php-5.2.17.tar.bz2 cp /usr/local/src/arc/php-5.2.16-fpm-0.5.14.diff.gz . gunzip php-5.2.16-fpm-0.5.14.diff.gz patch -d php-5.2.16 -p1 < php-5.2.16-fpm-0.5.14.diff export PHP_AUTOCONF=/usr/bin/autoconf-2.13 export PHP_AUTOHEADER=/usr/bin/autoheader-2.13 cd php-5.2.16 ./buildconf --force
После этого переходите к конфигурированию (вызов ./configure) и остальным шагам, упомянутым выше. Добавьте вот эту строку в конфигурирования:
--enable-fpm
Особенности конфигурирования для PHP 5.3.x
Для ветви PHP 5.3.x все упомянутые процедуры выглядят точно так же (патч для php-fpm не нужен, поскольку этот пакет уже включен), за исключением того, что параметры configure
--enable-fastcgi --enable-force-cgi-redirect
уже не поддерживаются и их указывать не нужно. Таким образом, запуск конфигуратора будет выглядеть примерно так:
./configure \ --prefix=/usr/local/php-5.3.10-cgi \ --with-libdir=lib64 \ --enable-bcmath \ --enable-calendar \ --enable-ftp \ --enable-magic-quotes \ --enable-pdo \ --with-mysqli=shared,/usr/bin/mysql_config \ --with-mysql=shared \ --with-pdo-sqlite \ --with-pdo-mysql=shared \ --with-openssl=shared \ --with-kerberos \ --with-pear \ --enable-sockets \ --with-zlib=shared \ --with-curl=shared \ --with-gd=shared \ --with-jpeg-dir=shared,/usr \ --enable-mbstring \ --with-iconv=shared \ --with-imap=shared \ --with-imap-ssl=shared \ --with-ldap=shared \ --with-ldap-sasl \ --enable-pcntl \ --enable-sysvshm \ --enable-sysvsem \ --enable-sysvmsg \ --with-freetype-dir=/usr \ --with-mcrypt=shared \ --with-gettext=shared \ --with-gmp=shared \ --enable-fpm \ --enable-cgi 1> ./configure.out 2> ./configure.err
(в случае, если вы ставите PHP 5.3.10)
Вернуться к статье про установке Web-среды.
комментарии поддерживаются Disqus