Установка PHP 7(php-fpm) с nginx 1.9 в Debian 8

Установка PHP 7(php-fpm) с nginx 1.9 в Debian 8

Недавно, вышла новая версия PHP7. В данной статье «Установка PHP 7 в Debian 8» я хотел бы уделить внимание установки PHP 7 в Debian 8.

Установка nginx 1.9 в Debian 8.

Для начала, добавляем ключ:

#apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62

Добавляем репозиторий:

# echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list

И выполняем установку:

# apt-get update && apt-get install -y ca-certificates nginx

Я ленивый иногда, по этому для этой задачи, я написал bash скрипт. Вы можете его тоже использовать:

# cd /usr/local/src && wget https://raw.githubusercontent.com/SebastianUA/Nginx-1.9-PHP-7-PHP7-FPM/master/Install-nginx1.9.x.sh   && bash Install-nginx1.9.x.sh

Установка PHP 7 в Debian 8 с использованием репозитория Dotdeb.

Чтобы установить PHP 7 на Debian 8, но для начала добавляем репозиторий:

# echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list && echo "deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list

После этого, загружаем и запускаем ключ GnuPG:

# cd /usr/local/src && wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg

Обновляем репозиторий:

# apt-get update

Запускаем установку PHP как fpm:

# apt-get install -y php7.0-fpm

Чтобы запустить PHP 7, используйте:

Запуск:

# service php7.0-fpm start

Останавливаем:

# service php7.0-fpm stop

Перезапуск:

# service php7.0-fpm restart

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

# php7.0-fpm -t

Ну это простой вариант и взят в качестве примера (что можно использовать данный репозиторий), а дальше, я опишу нормальное решение.

Установка PHP 7 в Debian 8 с исходного кода.

Для начала выполняем установку всех необходимых компонентов и все зависимости для PHP 7:

#apt-get install -y wget curl git vim make checkinstall build-essential libtool gettext libpcre3 libpcre3-dev libldap2-dev libpq-dev libxslt-dev libxpm-dev libmysqlclient-dev libgmp3-dev libpng12-dev libpng-dev libfreetype6-dev autoconf re2c bison libssl-dev libcurl4-openssl-dev pkg-config openssl libpng-dev libpspell-dev librecode-dev libreadline-dev libjpeg-dev libxml2 libxml2-dev libbz2-dev libmcrypt-dev libicu-dev libltdl-dev libcurl3

Я указал все нужные зависимости для моей сборки, вы можете дополнить их (в зависимости от своих нужд). Если не сделать это, то вы получите ошибку в процессе выполнения команды ./configure.

Переходим в директорию, скачиваем и распаковываем архив с php7, для этого выполните команду:

# cd /usr/src && wget http://be2.php.net/get/php-7.0.2.tar.gz/from/this/mirror -O php-7.0.2.tar.gz && tar -xzf php-*.tar.gz

Вы можете использовать другую ссылку (если вышла пхп свежей версии) с официального сайта.

Переходим в папку:

# cd php-*

Добавляем нужные модули в свою сборку и указываем параметры:

./buildconf --force

CONFIGURE_STRING="--prefix=/usr/local/php7 \
 --with-config-file-path=/usr/local/etc \
 --with-config-file-scan-dir=/usr/local/php7/etc/conf.d \
 --enable-mbstring \
 --with-curl \
 --with-openssl \
 --with-xmlrpc \
 --enable-soap \
 --enable-zip \
 --with-gd \
 --with-jpeg-dir \
 --with-png-dir \
 --with-pgsql \
 --enable-embedded-mysqli \
 --with-freetype-dir \
 --enable-intl \
 --with-xsl \
 --with-mysqli \
 --with-pdo-mysql \
 --enable-pdo=shared \
 --with-pdo-mysql=shared \
 --with-pdo-sqlite=shared \
 --with-pdo-pgsql=shared \
 --disable-short-tags \
 --enable-phpdbg \
 --with-readline \
 --with-gettext \
 --enable-opcache \
 --enable-xdebug \
 --enable-intl \
 --enable-mbstring \
 --enable-pcntl \
 --enable-sockets \
 --enable-sysvmsg \
 --enable-sysvsem \
 --enable-sysvshm \
 --enable-ftp \
 --enable-fpm \
 --enable-shmop \
 --with-fpm-user=www-data \
 --with-fpm-group=www-data \
 --bindir=/usr/local/bin \
 --sbindir=/usr/local/sbin \
 --libdir=/usr/local/php7/lib \
 --includedir=/usr/local/php7/include \
 --mandir=/usr/local/php7"

При необходимости, можно просмотреть весь список доступных модулей:

# ./configure --help

А сейчас, приступаем к компиляции и собственно к самой установки PHP 7:

# ./configure $CONFIGURE_STRING
# make && make install

Идем далее, копируем конфигурационный файл с php.ini в папку установки PHP:

# cp /usr/src/php-7.0.2/php.ini-production /usr/local/etc/php.ini

Подключаем модуль Zend OPcache: /usr/local/php7/etc/conf.d

# vim /usr/local/etc/modules.ini

Прописываем в него:

# Zend OPcache
zend_extension=opcache.so

И так, настроим сейчас PHP-FPM, для этого открываем файл:

# vim /usr/local/php7/etc/php-fpm.d/www.conf

И прописываем в него:

[global]

pid = /var/run/php7-fpm.pid
error_log = /var/log/php7-fpm.log

include=/usr/local/php7/etc/php-fpm.d/*.conf
Затем создайте файл:

nano /usr/local/php7/etc/php-fpm.d/www.conf
И добавьте в него параметры:

[www]
user = www-data
group = www-data

listen = /var/run/php7-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

И для этого, создаем init.d скрипт:

# cd /etc/init.d && wget http://linux-notes.org/wp-content/uploads/files/php7-fpm

Назначаем нужные права (исполнение) и добавляем скрипт в автозагрузку своей ОС:

# chmod +x /etc/init.d/php7-fpm
# update-rc.d php7-fpm defaults

Чтобы запустить (в данном случае перезапусить) php7-fpm выполняем:

# service php7-fpm restart

Если используете PHP-FPM с Nginx, то нужно добавьте в блок server виртуального хоста следующий текст:

location ~ .php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

PS: Для всего этого, я написал bash скрипт, вы можете его использовать для своих нужд:

# cd /usr/local/src && wget https://raw.githubusercontent.com/SebastianUA/Nginx-1.9-PHP-7-PHP7-FPM/master/Install-PHP7.sh && bash Install-PHP7.sh

Осталось только перезапустить все службы:

# service nginx restart &&  service php7-fpm restart

Вот и все!

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

# php7-fpm -t

Статья «Установка PHP 7 в Debian 8» завершена.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *