Поиск по сайту:

Как установить PHP 7 с Apache и MariaDB на CentOS 7/Debian 8


На прошлой неделе (точнее, 21 августа 2015 года) команда разработчиков PHP объявила о доступности последней версии PHP 7 и призвала пользователей и разработчиков по всему миру протестировать ее. это.

Однако мы должны отметить, что, поскольку это версия RC (Release Candidate), ожидается, что она может содержать ошибки или несовместимость с существующими настройками, поэтому пользователей просят сообщать о них с помощью системы отслеживания ошибок и не использовать PHP 7 в производстве, пока он находится на этом этапе.

Положительная сторона заключается в том, что эта версия включает в себя несколько исправлений (вы можете обратиться к этой странице в репозитории GitHub проекта для получения подробного списка новых функций и улучшений), причем наиболее отличительной особенностью является значительное увеличение производительности по сравнению с предыдущими версиями.

В этой статье вы узнаете, как установить и скомпилировать PHP 7 RC1 из исходного архива вместе с Apache и MariaDB на CentOS 7. и Debian 8 Джесси. Те же инструкции также работают в дистрибутивах на базе CentOS, таких как RHEL, Fedora, Scientific Linux и Debian<. на основе Ubuntu/Mint.

Установка PHP 7 в CentOS 7 и Debian 8

Как указано во введении, поскольку эта версия является RC, а не стабильной версией, мы не можем разумно ожидать ее обнаружения в репозиториях. По этой причине нам придется скачать исходный код и скомпилировать программу с нуля.

Однако прежде чем мы это сделаем, нам нужно помнить, что для того, чтобы лучше использовать преимущества PHP 7 и, возможно, лучший способ опробовать его – установить его вместе с Apache. и MariaDB – которые мы МОЖЕМ найти в репозиториях:

На ЦентОС 7


yum update && yum install httpd mariadb mariadb-server

В Дебиан 8


aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common

В любом случае архив с исходным кодом PHP можно загрузить и распаковать следующим образом:


wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz
tar xzf php-7.0.0RC1.tar.gz -C /opt

После этого давайте перейдем в /opt/php-7.0.0RC1 и выполним сценарий buildconf с переключателем –force, чтобы принудительно сборка RC-версии:


ls


cd /opt/php-7.0.0RC1.tar.gz
./buildconf --force

Теперь пришло время выполнить нашу известную команду configure. Хотя приведенные ниже параметры обеспечат стандартную установку PHP 7, вы можете обратиться к полному списку параметров в руководстве по PHP, чтобы лучше настроить установку в соответствии с вашими потребностями:


./configure \
--prefix=$HOME/php7/usr \
--with-config-file-path=$HOME/php7/usr/etc \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-xpm-dir=/usr \
--with-freetype-dir=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-pdo-mysql=/usr \
--with-gettext=/usr \
--with-zlib=/usr \
--with-bz2=/usr \
--with-recode=/usr \
--with-mysqli=/usr/bin/mysql_config \
--with-apxs2

Если вы столкнулись со следующей ошибкой:


configure: error: no acceptable C compiler found in $PATH
see 'config.log' for more details

Просто установите gcc и зависимости с помощью следующей команды и снова запустите указанную выше команду configure.


yum install gcc       [On CentOS 7 box]
aptitude install gcc  [On Debian 8 box]

Вы приступите к компиляции PHP 7, что может занять некоторое время. Если есть другие недостающие библиотеки или ресурсы, этот процесс завершится неудачей, но вы всегда можете установить их и снова запустить настройку.

Например, мне пришлось установить libxml2-devel после получения следующего сообщения об ошибке:


configure: error: xml2-config not found. Please check your libxml2 installation.

К сожалению, мы не можем охватить все сценарии развития событий, поскольку установленное программное обеспечение может различаться в зависимости от системы. Во время установки вы можете обратиться к этой странице, на которой описаны несколько ошибок, с которыми вы можете столкнуться при установке PHP из исходного кода, а также их соответствующие решения.

На ЦентОС 7

Вот полный список пакетов, которые мне пришлось установить в свой компьютер с CentOS 7, прежде чем я смог завершить процесс настройки:


gcc
libxml2-devel
pkgconfig
openssl-devel
bzip2-devel
curl-devel
libpng-devel
libpng-devel
libjpeg-devel
libXpm-devel
freetype-devel
gmp-devel
libmcrypt-devel
mariadb-devel
aspell-devel
recode-devel
httpd-devel

Вы можете установить все вышеперечисленные необходимые пакеты с помощью одной команды yum, как показано ниже.


yum install gcc libxml2-devel pkgconfig openssl-devel bzip2-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel

Следующее сообщение указывает на то, что настройка завершена успешно:

Тогда беги,


make
make install

После завершения установки вы можете проверить версию с помощью командной строки:

В Дебиан 8

В Debian мне пришлось установить следующие пакеты для успешного завершения процесса настройки:


make
libxml2-dev
libcurl4-openssl-dev
libjpeg-dev
libpng-dev
libxpm-dev
libmysqlclient-dev
libicu-dev
libfreetype6-dev
libxslt-dev
libssl-dev
libbz2-dev
libgmp-dev
libmcrypt-dev
libpspell-dev 
librecode-dev
apache2-dev

Вы можете установить все вышеперечисленные необходимые пакеты с помощью команды apt-get в Debian 8.


apt-get install make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev

Затем добавьте –with-libdir=/lib/x86_64-linux-gnu к параметрам конфигурации и создайте следующую символическую ссылку на заголовочный файл gmp.h:


ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

Затем запустили make и make install, как и в предыдущем случае. В течение 10-15 минут компиляция должна завершиться, и мы сможем проверить установленную версию PHP, как и раньше:


make
make install

Настройка php.ini и тестирование установки PHP 7

При установке PHP из исходного кода предоставляются два примера php.ini. В данном случае они расположены внутри /opt/php-7.0.0RC1:


ls -l /opt/php-7.0.0RC1 | grep php.ini

Теперь вам нужно скопировать один из них в /usr/local/lib, который указан в качестве местоположения по умолчанию для такого файла в соответствии с примечаниями по установке:


cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib

И не забудьте добавить эту директиву конфигурации в основные файлы конфигурации Apache.


/etc/httpd/conf/httpd.conf    [On CentOS 7 box]
/etc/apache2/apache2.conf in  [On Debian 8 box] 

LoadModule php7_module        /usr/lib64/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

В Debian 8 можно опустить строку LoadModule, а также необходимо удалить и создать следующие символические ссылки на указанные модули Apache:


cd /etc/apache2
rm mods-enabled/mpm_event.conf
rm mods-enabled/mpm_event.load
ln -s mods-available/mpm_prefork.conf mpm_prefork.conf
ln -s mods-available/mpm_prefork.load mpm_prefork.load

Затем перезапустите веб-сервер:


systemctl restart httpd     [On CentOS 7 box]
systemctl restart apache2   [On Debian 8 box]

Если при запуске Apache в CentOS 7 появляется сообщение об ошибке, в котором говорится, что не удается найти модуль libphp7.so, просто скопируйте его по указанному пути. из /opt/php-7.0.0RC1/.libs/libphp7.so.

Классический способ протестировать установку PHP/Apache — использовать файл phpinfo(). Создайте файл с именем test.php со следующим содержимым в корне документа веб-сервера (/var/www/html в обоих дистрибутивах):


<?php
phpinfo();
?>

И запустите браузер на клиенте в вашей сети, чтобы проверить:


http://localhost/test.php
OR
http://IP-address/test.php

Краткое содержание

В этой статье мы объяснили, как установить PHP 7 из исходного кода, новейшую версию этого популярного языка сценариев на стороне сервера, целью которой является повышение производительности до беспрецедентных значений. Пока он не достигнет стабильного уровня в ноябре этого 2015 года, вам НАСТОЯТЕЛЬНО рекомендуется НЕ использовать этот выпуск в производственной среде.

Если у вас есть какие-либо вопросы/комментарии/предложения по поводу этой статьи, сообщите нам об этом, используя форму ниже.