Как часто бывает на одном сервере где куча проектов – появляется еще один и он негодник не хочет работать на php-5.3 или php-5.4 в таком случае приходится прикручивать ,олее старую версию php, ну или если старая уже есть – более новую.
Я буду приводить пример как было у меня, я на серваке с php-5.4 добавлял php-5.2
Качаю php-52 с офф. сайта к себе в /opt
Нужну версию можно найти вот тут по ссылке/
1 2 3 4 |
cd /opt wget http://museum.php.net/php5/php-5.2.10.tar.gz tar xvf php-5.2.10.tar.gz cd php-5.2.10 |
Ставим зависимости что бы php собрался как надо и без ошибок:
1 2 |
yum install gcc make libxml2-devel openssl-devel curl-devel curl libjpeg-devel libpng-devel freetype-devel libmcrypt-devel \ postgresql-devel |
После этого начинаем собирать, у меня вот такие параметры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
./configure \ --prefix=/opt/php52 \ --with-config-file-path=/opt/php52 \ --with-pdo-pgsql \ --with-zlib-dir \ --with-freetype-dir \ --enable-mbstring \ --with-libxml-dir=/usr \ --enable-soap \ --enable-calendar \ --with-curl=/usr/bin \ --with-mcrypt \ --with-zlib \ --with-gd \ --with-pgsql \ --disable-rpath \ --enable-inline-optimization \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-mysql \ --with-pdo-mysql \ --with-mysqli \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --enable-gd-native-ttf \ --with-openssl \ --enable-ftp \ --with-kerberos \ --with-gettext \ --enable-cli \ --enable-fastcgi \ --enable-discard-path \ --enable-force-cgi-redirect \ --enable-cgi make make install |
Если у apache не установлен модуль для работы с FastCGI установим его:
1 2 3 4 5 6 |
Для Debian Linux: apt-get install libapache2-mod-fastcgi a2enmod fastcgi Для Centos Linux: yum install mod_fcgid |
Теперь оздаем обертку (Wrapper) через которую будет идти выполнение php скриптов:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
vi /usr/lib/cgi-bin/php52-cgi #!/bin/sh PHPRC="/opt/php52/" export PHPRC PHP_FCGI_CHILDREN=4 export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_MAX_REQUESTS exec /opt/php52/bin/php-cgi chmod +x /usr/lib/cgi-bin/php5-cgi |
Создадим конфигурационный файл для apache с настройками обработчика PHP скриптов, нужно сказать серверу, что скрипты должны обрабатываться CGI-приложение PHP 5.2:
1 2 3 4 5 6 7 8 |
vi /etc/apache2/php52.conf <FilesMatch "\.php"> SetHandler application/x-httpd-php5 </FilesMatch> ScriptAlias /php52-cgi /usr/lib/cgi-bin/php52-cgi Action application/x-httpd-php5 /php52-cgi AddHandler application/x-httpd-php5 .php |
Вот и все, теперь достаточно в настройках виртуального хоста добавить импорт php52.conf файла и для этого хоста будет работать PHP 5.2:
1 2 3 4 5 |
<VirtualHost *.80> ........................................ Include php52.conf ......................................... </VirtualHost> |
После этого делаем stop и start apache и все, порверяем версию php простым скриптом, которы выкладываем в корень домена на сервере:
1 2 3 4 5 |
vi inf.php <?php echo phpinfo(); ?> |
Всем привет!