Test HTTP Requests Tools Blog PHP Quiz API Log In With Github
Test HTTP Requests Tools Blog PHP Quiz API Log In With Github
« Return to the tutorials list
We have updated the website and our policies to make sure your privacy rights and security are respected.
Click here to learn more about the way our website handles your data.

Remove this message.

You can read this article in: English :: Español :: русский

Как установить PHP 7 на cPanel/сервер под управлением WHM и ничего не сломать

Daniel Gheorghe Difficulty: 40 / 50 Tweet
php-7-cpanel2

Обновление: Easy Apache 4 работает в настоящее время. Вот как обновить:

Easy Apache 4 поставляется с 2-мя функциями. PHP 7 из коробки и возможность выбрать версию PHP вы хотите запустить для каждой учетной записи.

Чтобы установить EA4 запустить команду ниже как корень:
/scripts/migrate_ea3_to_ea4 --run

Перед обновлением, пожалуйста, проверьте файл /etc/yum.conf. Убедитесь, что он имеет плагины = 1 в нем. В противном случае, сборка завершится ошибкой.

Если что-то пойдет не так. Вы всегда можете вернуться: /scripts/migrate_ea3_to_ea4 --revert --run

После установки (это занимает некоторое время), зайдите в WHM и загрузить эту версию: "All PHP Options + OpCache"

Тем не менее нужно использовать EasyApache 3? Вот учебник с 2015 года:

Всем привет!

В этом руководстве я хочу поделиться своим опытом в установке PHP7 на один из моих серверов под управлением WHM/cPanel. Некоторые из сайтов, размещенных на этом сервере, просто не могут работать на версии PHP, написанной в этом столетии.

Мне нужно было запустить PHP 7 для некоторых web-сайтов и при этом оставить более старую (5.3, если не путаю) версию для прочих.

Также я должен был все это сделать так, чтобы люди могли продолжать работать с cPanel/WHM... в двух словах, заставить все работать совершенно отдельно.

устройство: CENTOS 6.7 x86_64 kvm – WHM 11.52.1 (build 2).

После небольшого исследования я разработал план, за выполнение которого и принялся, начав с компиляции PHP 7 из исходного кода. Вот так:

    
        cd /usr/local/
        mkdir php7.0
        cd php7.0
        wget http://php.net/distributions/php-7.0.1.tar.gz
        tar -xvf php-7.0.1.tar.gz
        cd php-7.0.1

        # не забудьте сначала запустить ./configure --help для просмотра всех доступных настроек
        ./configure  --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd-native-ttf --enable-libxml --enable-mbstring --enable-pdo=shared --enable-sockets --enable-zip --prefix=/usr/local/php70  --with-curl=/opt/curlssl/ --with-freetype-dir=/usr --with-gd --with-gettext --with-imap=/opt/php_with_imap_client/ --with-imap-ssl=/usr --with-jpeg-dir=/usr --with-kerberos --with-libdir=lib64 --with-libxml-dir=/opt/xml2/ --with-mcrypt=/opt/libmcrypt/ --with-mysqli --with-openssl=/usr --with-openssl-dir=/usr --with-pcre-regex=/opt/pcre --with-pdo-mysql=shared --with-pdo-sqlite=shared --with-pic --with-png-dir=/usr --with-xpm-dir=/usr --with-zlib --with-zlib-dir=/usr

        make
        make test
        make install

        cd /usr/local/php70/bin
        ./php -v
    

Если все отработает как надо, то запуск на выполнение ./php -v из каталога /usr/local/php70/bin должен вернуть вам что-то вроде этого:

    
        PHP 7.0.1 (cli) (built: Dec 18 2015 03:53:53) ( NTS )
        Copyright (c) 1997-2015 The PHP Group
        Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
    

Теперь давайте займемся настройкой нашего php.ini

Я добавил всего парочку расширений, а в остальном полагался на готовый пример php.ini.

    
        cp -f /usr/local/php7.0/php-7.0.1/php.ini-production /usr/local/php70/lib/php.ini

        echo "extension=pdo.so" >> /usr/local/php70/lib/php.ini
        echo "extension=pdo_mysql.so" >> /usr/local/php70/lib/php.ini
        echo "zend_extension=opcache.so" >> /usr/local/php70/lib/php.ini

        # если вам требуется какая-то особенная конфигурация, просто откройте файл php.ini и исправьте его под свои нужды
    

На этом этапе вы можете удалить каталог /usr/local/php7.0 (исходный код).

Теперь давайте настроим Apache

Для того, чтобы добавить обработчик PHP 7, нам нужно создать файл настроек для Apache. Итак, создайте новый файл /usr/local/apache/conf/php7.conf, откройте его и вставьте в него приведенный ниже код. Не забудьте исправить путь в "Directory".

    
        vi /usr/local/apache/conf/php7.conf
        <IfModule mod_suphp.c>
            <Directory ~ "home/user/public_html/">
                AddType application/x-httpd-php7 .php
                suPHP_AddHandler application/x-httpd-php7
            </Directory>
        </IfModule>
    

Теперь давайте настроим suPHP (предполагая, что вы используете WHM)

Чтобы создать новый обработчик suPHP откройте файл конфигурации /opt/suphp/etc/suphp.conf и добавьте в него новый обработчик, вставив приведенный ниже фрагмент кода в конце списка обработчиков.

    
        ;Handler for php-scripts
        #... здесь находятся уже существующие обработчики ... поставьте ваш под ними
        application/x-httpd-php7="php:/usr/local/php70/bin/php-cgi"
    

Теперь давайте аккуратно добавим наши обработчики в конфигурацию EasyApache/cPanel/WHM так, чтобы ничего не сломать

Здесь возможны два варианта. Или вы идете в WHM и правите файл post_virtualhost_global.conf оттуда или вы просто запускаете vi /usr/local/apache/conf/includes/post_virtualhost_global.conf. Добавьте приведенную ниже строку в этот файл и все готово.

    
        Include /usr/local/apache/conf/php7.conf
    

Теперь перезапустите Apache и наслаждайтесь!

    
        service httpd restart 
    

видео:

Поделитесь со мной в комментариях, помогла ли вам эта статья.