Как установить и использовать две версии PHP на одном сервере Plesk 11.0 для Linux

Создана:

2016-11-16 13:22:02 UTC

Изменена:

2017-08-16 15:41:24 UTC

4

Помогла ли вам статья?


Есть вопросы?

Отправить запрос

Как установить и использовать две версии PHP на одном сервере Plesk 11.0 для Linux

Applicable to:

  • Plesk 11.0 for Linux

Примечание

Parallels Plesk для Linux поддерживает использование нескольких версий PHP на одном сервере начиная с версии 11.5 (см. примечания к выпуску ). Инструкции по установке и настройке PHP на серверах Plesk 11.5 доступны в руководстве администратора Parallels Plesk .

Решение

Примечание . Приведенные ниже инструкции предназначены только для Parallels Plesk 11.0.9. В случае с Plesk Panel 11.5, пожалуйста, используйте упомянутое выше руководство.

Чтобы можно было использовать несколько версий PHP на одном сервере, PHP должен работать в режиме fastcgi .

  1. Подключитесь к своему серверу Plesk по SSH как root, скачайте PHP, распакуйте и настройте его:

    # cd /usr/local/src
    # mkdir php540
    # cd php540
    # wget http://www.php.net/get/php-5.4.0.tar.gz/from/at2.php.net/mirror
    # tar xzvf php-5.4.0.tar.gz
    # cd php-5.4.0
    

    Примечание . Чтобы новый РНР был установлен в одну папку, НЕОБХОДИМО УКАЗАТЬ ПРЕФИКС. Пример:

    # ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php540-cgi' '--with-config-file-path=/usr/local/php540-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php540-cgi' '--with-png-dir=/usr/local/php540-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php540-cgi' '--with-openssl' '--with-pspell' '--with-pcre-regex' '--with-zlib' '--enable-exif' '--enable-ftp' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--with-unixODBC=/usr' '--enable-shmop' '--enable-calendar' '--without-sqlite3' '--with-libxml-dir=/usr/local/php540-cgi' '--enable-pcntl' '--with-imap' '--with-imap-ssl' '--enable-mbstring' '--enable-mbregex' '--with-gd' '--enable-bcmath' '--with-xmlrpc' '--with-ldap' '--with-ldap-sasl' '--with-mysql=/usr' '--with-mysqli' '--with-snmp' '--enable-soap' '--with-xsl' '--enable-xmlreader' '--enable-xmlwriter' '--enable-pdo' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-pear=/usr/local/php540-cgi/pear' '--with-mcrypt' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php540-cgi/php.d'

    Как видите, в этом примере используется префикс /usr/local/php540-cgi/ .

    Выбор префикса - это обязательный шаг , так как позволяет предотвратить конфликт между новой установкой PHP и старой версией PHP, используемой Plesk.

  2. Скомпилируйте PHP:

    # make
    
  3. Установите новую копию PHP:

    # make install
    
  4. Создайте оболочку PHP. Например, допустим, у вас есть клиент domain.com , который использует новые функции PHP, отсутствующие в PHP 5.1. Сделаем так, чтобы Apache использовал для него новую версию PHP (5.4.0):

    # cd /var/www/vhosts/domain.com/cgi-bin
    # mkdir .cgi_wrapper
    # cd .cgi_wrapper
    

    Создайте новый файл с именем .phpwrapper и следующим содержимым:

    #!/bin/sh
    export PHPRC=/var/www/vhosts/domain.com/etc/
    export PHP_FCGI_CHILDREN=4
    export PHP_FCGI_MAX_REQUESTS=1000
    exec /usr/local/php540-cgi/bin/php-cgi
    

    Установите необходимые права доступа и привилегии для созданных файлов и папок:

    # chgrp psaserv /var/www/vhosts/domain.com/cgi-bin
    # cd /var/www/vhosts/domain.com/cgi-bin
    # chmod 101 .cgi_wrapper
    # chmod 500 .cgi_wrapper/.phpwrapper
    # chown domain.com:psacln .cgi_wrapper -R
    # chattr -R +i .cgi_wrapper
    
  5. Сообщите Apache о новой оболочке PHP. Plesk позволяет изменить настройки httpd на уровне отдельных виртуальных узлов (это может быть домен или субдомен). Используем эту опцию, чтобы сообщить Apache, что (согласно нашему примеру) для domain.com нужно использовать новую оболочку PHP вместо той, которую предоставляет Plesk:

    # cd /var/www/vhosts/domain.com/conf
    

    Создайте файл vhost.conf со следующим содержимым:

    <Directory /var/www/vhosts/domain.com/httpdocs>
    RemoveHandler fcgid-script
    <IfModule mod_fcgid.c>
        AddHandler fcgid-script .php
        <Files ~ (\.php)>
            SetHandler fcgid-script
            FCGIWrapper /var/www/vhosts/domain.com/cgi-bin/.cgi_wrapper/.phpwrapper .php
            Options +ExecCGI
            allow from all
        </Files>
    </IfModule>
    </Directory>
    

    Итак, мы сказали Apache не использовать стандартную для Plesk оболочку PHP (RemoveHandler fcgid-script) и создали новую оболочку для файлов PHP. При запуске файлов PHP на домене "domain.com" Apache обратится к новой оболочке PHP и будет использовать версию, установленную на шагах 1-3.

  6. Перенастройте домен "domain.com":

    # /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain domain.com
    
  7. Перезапустите Apache:

    # /etc/init.d/httpd restart
    

    Выполните шаги 4-7 для каждого домена, которому нужны дополнительные функции, доступные только в более новых версиях РНР (заменяя "domain.com" на необходимое имя домена).

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 4 из 8
Еще есть вопросы? Отправить запрос
Войдите в службу, чтобы оставить комментарий.