http://www.mediaent.org/blog/archives/1167
Частые ошибки при сборке
http://www.mediaent.org/blog/archives/462
Понадобилось на сервере с коробочным PHP 5.2.9 установить PHP 5.3.27. В чём заключается приживление второй версии PHP - в отдельной директории.
Качаем
wget http://ua1.php.net/get/php-5.3.27.tar.gz/from/this/mirror
Распаковываем
tar zxvf php-5.3.27.tar.gz
Переходим в папку с исходниками
cd php-5.3.27
Конфигурируем
./configure --prefix=/opt/php53 --with-libdir=lib64 --with-config-file-path=/opt/php53/etc --with-config-file-scan-dir=/opt/php53/etc/php.d --disable-fileinfo --disable-phar --with-bz2 --with-curl=/opt/curlssl/ --with-curlwrappers --with-freetype-dir=/usr --with-gd --with-gettext --with-jpeg-dir=/usr --with-kerberos --with-libexpat-dir=/usr --with-libxml-dir=/usr --with-ldap=shared --with-ldap-sasl --with-mcrypt=/opt/libmcrypt/ --with-mhash --with-mm=/opt/mm/ --with-mysql=/usr --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=/usr/bin/mysql_config --with-openssl=/usr --with-openssl-dir=/usr --with-pear=/opt/pear/ --with-pcre-regex=/usr --with-pdo-mysql=shared --with-pdo-sqlite=shared --with-pic --with-png-dir=/usr --with-pspell --with-recode --with-sqlite=shared --with-tidy=/usr --with-xmlrpc --with-xpm-dir=/usr --with-xsl=/usr --with-zlib --with-zlib-dir=/usr --with-t1lib=/usr --with-gmp --with-iconv --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd-native-ttf --enable-libxml --enable-magic-quotes --enable-mbstring --enable-pdo=shared --enable-shmop --enable-soap --enable-sockets --enable-xml --enable-wddx --enable-zend-multibyte --enable-zip --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-ucd-snmp-hack --enable-dba --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx
Обращаем внимание на –prefix=/opt/php53 - это рабочая папка нашего нового интерпретатора, –with-config-file-path=/opt/php53/etc где искать конфиг (php.ini),–with-config-file-scan-dir=/opt/php53/etc/php.d где будут наши расширения например APC(apc.ini)
Без ошибочек не обходится
Распространённые ошибки при установке PHP из исходников можно посмотреть тут
не пишу принципиально Debian CentOS и тд разница в устранении дебиан apt-get install центос yum install в центос пакет носит название с расширением devel в дебиан сокращён до dev. Ну если уж совсем запара то гугл быстро ответит где и как установить не достающую связь.
И так
make make install
Собираем PHP-FPM
cp /root/php-5.3.27/sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm cp /opt/php53/etc/php-fpm.conf.default /opt/php53/etc/php-fpm.conf chmod 755 /etc/init.d/php-fpm nano /etc/init.d/php-fpm И правим его php_fpm_BIN=/opt/php53/sbin/php-fpm php_fpm_CONF=/opt/php53/etc/php-fpm.conf php_fpm_PID=/var/run/php-fpm.pid В конфиге /opt/php53/etc/php-fpm.conf user =nginx group = nginx
Или на свои ибо может начать ругатся каким нибудь страшными словами типа cannot get gid for group 'nobody' то-бишь такой группы не существует.
Если на порту 9000 запущена предедущая версия PHP то в этом же конфиге прописываем другой порт ну к примеру 9100
В принципе всё /etc/init.d/php-fpm start
В nginx требуемому виртуальному хосту в секцию server прописываем всё стандартно
location ~ \.php$ {
root /var/www/saite;
fastcgi_pass 127.0.0.1:9000; #если прописывали порт 9100 то соответственно 127.0.0.1:9100
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Мы собирали его с PDO драйвером как шаред, поэтому нужно указать на него конфиг
echo «extension=pdo.so» > /opt/php53/etc/php.d/pdo.ini
Установка из PECL при двух разных версиях PHP на одной машине
/opt/php53/bin/pecl install pdo_mysql
echo «extension=pdo_mysql.so» > /opt/php53/etc/php.d/pdo_mysql.ini
/opt/php53/bin/pecl install apc
echo «extension=apc.so» > /opt/php53/etc/php.d/apc.ini
То-бишь прописываем полный путь к бинарнику pecl
Удачи!
Мой php живет в
/opt/php55/
service php-fpm55 status
в nginx - вуафгде php55
ну а дальше через сокет, который там указан
Инструменты страницы
