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"
Всем привет!
В этом руководстве я хочу поделиться своим опытом в установке 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.
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 (исходный код).
Для того, чтобы добавить обработчик 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 откройте файл конфигурации /opt/suphp/etc/suphp.conf
и добавьте в него новый обработчик, вставив приведенный ниже фрагмент кода в конце списка обработчиков.
;Handler for php-scripts
#... здесь находятся уже существующие обработчики ... поставьте ваш под ними
application/x-httpd-php7="php:/usr/local/php70/bin/php-cgi"
Здесь возможны два варианта. Или вы идете в 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