Centos php установка: Установка PHP 7 и 8 на Linux CentOS 7.

Содержание

Установка PHP 7 на Centos 7 • centos, php • IT Draft

Обновляем операционную систему

[root@localhost]# yum update

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

[root@localhost]# rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Устанавливаем утилиту для работы с репозиториями

[root@localhost]# yum install yum-utils

Подключаем репозиторий для установки php версии 7.2

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.

Подробнее

[root@localhost]# yum-config-manager --enable remi-php72

Устанавливаем php и дополнительные библиотеки для него

[root@localhost]# yum install php php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-common php-devel php-fpm php-pdo php-mysqlnd php-imap php-embedded php-ldap php-odbc curl curl-devel

Метки записи:
#centos#php

Максим Макаров

У блога появился новый хостинг от компании Selectel.
Нашли интересную или полезную информацию в блоге? Хотели бы видеть на нем еще больше полезных статей? Поддержи автора рублем.

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

Похожие записи

Установка почтового сервера iRedMail на CentOS 7. Часть 3. Алиасы, вэб-интерфейс для работы с алиасами

Установка почтового сервера iRedMail. Алиасы, вэб-интерфейс для работы с алиасами

Алиас – короткое, удобное для запоминания имя, использующееся вместо более длинного и сложного имени; наиболее часто используется в приложениях электронной почты.

Цикл статей по установке и настройке почтового сервера iRedMail

Установка почтового сервера iRedMail на CentOS 7. Часть 1. Базовая установка
Установка почтового сервера iRedMail на CentOS 7. …

Читать далее Установка почтового сервера iRedMail на CentOS 7. Часть 3. Алиасы, вэб-интерфейс для работы с алиасамиПродолжить

Установка Redmine 2.

4.0

Устанавливаем необходимые библиотеки

[root@localhost]# yum install make gcc gcc-c++ zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel
[root@localhost]# yum install zlib zlib-devel openssl-devel sqlite-devel gcc-c++ glibc-headers libyaml-devel readline readline-devel zlib-devel libffi-devel

Скачиваем исходники Ruby

[root@localhost]# cd ~
[root@localhost]# wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz

Распаковываем

[root@localhost]# tar zxvf ruby-2.1.5.tar.gz

Компилируем и устанавливаем

[root@localhost]# cd ruby-2.1.5
[root@localhost]# ./configure
[root@localhost]# make
[root@localhost]# make install

Смотрим версию

[root@localhost]# ruby -v

Устанавливаем passenger:

[root@localhost]# gem install passenger
[root@localhost]# passenger-install-apache2-module

Создаем конфигурационный файл

[root@localhost]# …

Читать далее Установка Redmine 2. 4.0Продолжить

Установка ITSM-системы Snipe-IT + NGINX + Percona на Centos 7

Snipe-IT + NGINX + Percona

Snipe-IT – open source, кроссплатформенная, многофункциональная система управления ИТ-активами с открытым исходным кодом, построенная с использованием PHP-фреймворка Laravel.

Подготовка

Обновляем операционную систему, добавляем репозиторий EPEL, устанавливаем софт

$ sudo yum -y update
$ sudo yum -y install epel-release
$ sudo yum -y install nano wget net-tools

Установка и настройка PHP 7.4

Установим yum-utils для инструмента yum-config-manager

$ sudo yum …

Читать далее Установка ITSM-системы Snipe-IT + NGINX + Percona на Centos 7Продолжить

Установка почтового сервера iRedMail на CentOS 7. Часть 4. Настройка Postfix, авторизация без ввода домена

Установка почтового сервера iRedMail. Настройка Postfix, авторизация без ввода домена

Postfix — агент передачи почты (MTA — mail transfer agent). Postfix является свободным программным обеспечением, создавался как альтернатива Sendmail. Изначально Postfix был разработан Вейтсом Венемой в то время, когда он работал в Исследовательском центре имени Томаса Уотсона компании IBM.

Цикл статей по установке и настройке почтового сервера …

Читать далее Установка почтового сервера iRedMail на CentOS 7. Часть 4. Настройка Postfix, авторизация без ввода доменаПродолжить

Работаем с FreeIPA из командной строки

FreeIPA cli

FreeIPA — open source решение для централизованного управления идентификацией пользователей, задания политик доступа на базе Linux и Unix.

Бывают ситуации, когда быстрее и проще выполнить какое-нибудь действие (массовые действия) с FreeIPA через терминал. Например: добавить пользователей, сбросить пароли и т.д.

Для начала авторизуемся под пользователем с правами администратора FreeIPA

$ kinit admin
Password for [email protected]:

Работаем с пользователями

Посмотреть информацию …

Читать далее Работаем с FreeIPA из командной строкиПродолжить

Установка PHP 5.

6 на CentOS через Yum

PHP версии 5.6.2 была анонсирована на официальном сайте разработчика второго октября 2014 и уже доступна для CentOS/RHEL 6.5 или 7.0 на Webtatic, причём можно пользоваться Yum!

Уже была опубликована статья об установке свежей версии PHP, но сейчас мы поднимем версию ещё выше.

В PHP 5.6 добавлены следующие функции:

  • Постоянные скалярные выражения
  • Функции с переменным числом аргументов
  • Распаковка независимых переменных
  • Возведение в степень операторов
  • Поддержка больших (>2ГБ) файлов загрузки
  • Улучшения SSL/TLS, включая одноранговую проверку по умолчанию
  • Новый отладчик командной строки, под названием phpdbg

Перед установкой нам понадобится добавить репозиторий (хранилище пакетов) WebtaticEL, соответствующее вашей версии CentOS/RHEL в yum:

CentOS/RHEL 7.x:

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror. webtatic.com/yum/el7/webtatic-release.rpm

CentOS/RHEL 6.x:

rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

Теперь можно установить PHP 5.6 (вместе с кэшером операционного кода), для установки запустим yum со следующими параметрами:

yum install -y php56w php56w-opcache

Если вам нужно обновить php до данной версии, рекомендуется сначала проверить, поддерживает ли ваша система установку обновления, например попробовать запустить специализированное ПО типа CPanel после обновления.

Даже если вы отдаёте отчет своим действиям, рискованно обновлять существующую систему. Безопаснее будет установить обновление на чистый сервер.

Если вы уверены в том, что делаете, то можно обновить PHP, запустив yum со следующими параметрами:

yum install -y yum-plugin-replace
yum replace --enablerepo=webtatic-testing php-common --replace-with=php56w-common

Вероятнее всего у вас появится сообщение типа “WARNING: Unable to resolve all providers …”. Это нормально, продолжить можно нажав “y“. Затем вы увидите какие пакеты будут установлены и заменены перед тем, как подтвердить установку.

SAPIs – различные модули

  • mod_php NTS (непотоковая безопасность) ‒ содержится в пакете php56w, данная SAPIвходит в состав ApacheHttpd 2.2 и представляет собой стандартное SAPI для использования с httpd prefork mpm (режим по умолчанию httpd). Данное SAPI не использует потоковую безопасность, так как здесь не применяются потоки. Адрес расположения: /usr/lib[64]/httpd/modules/libphp5.so
  • cli ‒ Содержится в пакете php56w-cli, данное SAPI позволяет запускать скрипты с командной строки, так же в состав входит встроенный веб-сервер для расширенного использования. Адрес расположения: /usr/bin/php
  • fpm ‒ содержится в пакете php56w-fpm, fpm (диспетчер процессов FastCGI) варьируемый процессFastCGI, работающий аналогично Httpd preforkmpm, который управляет разветвлением. Адрес расположения: /usr/sbin/php-fpm, контролируется с помощью служебного скрипта /etc/init. d/php-fpm
  • phpdbg ‒ содержится в пакете php56w-phpdbg, phpdbg имеет возможность отладки скриптов, используя контрольные точки из командной строки, также phpdbg имеет возможность удалённой отладки при помощи внешнего Java-клиента для удалённой коммуникации.
  • Embedded ‒ содержится в пакете php56w-embedded, данноеSAPIпозволяет встраивать PHPв другие приложения.Библиотека Embedded расположена по адресу:/usr/lib[64]/libphp5.so
  • cgi, fastcgi ‒ содержится в пакете php56w-cli, данные SAPI не рекомендованы к использованию, но при необходимости могут быть использованы. Данные SAPI существуют в двоичном коде и находятся по адресу: /usr/bin/php-cgi.
  • mod_phpTS (Потоковая безопасность) ‒ содержится в пакете php56w, данное SAPIвходит в состав ApacheHttpd 2.2. Это стандартноеSAPI для использования с httpdworkermpm. Предполагается, что данное SAPI поддерживает потоковую безопасность, но это необязательно так, особенно при использовании дополнительных расширений PHP. Лучше использовать FastCGISAPI. Адрес расположения: /usr/lib[64]/httpd/modules/libphp5-zts.so.

Opcode Cache

В дистрибутив PHP теперь входит opcode cache ZendOptimizer+, который теперь называется расширение ZendOPcache. Это дополнение необязательно, вы можете выбрать любое другое, на ваше усмотрение.

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

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

yum install -y php56w-opcache

Сообщение об ошибке E_ALL теперь включает E_STRICT

Вы можете получить намного больше ошибок в протоколах ошибок, если по умолчанию error_reporting установлена E_ALL, без отключения отключения E_STRICT. По умолчаниюphp.ini, который поставляется в PHP-пакете отключает E_STRICT,но если вы обновляете существующую установку, ваш php.ini не может быть обновлен, а это означает, что вероятно E_STRICT будет включен.

Автоматизация обновления

Обновление в кратчайшие сроки путем запуска одной строчки:

service mysqld stop && service nginx stop && service httpd stop && yum erase php54 php54-gd  php54-imap php54-pdo php54-mysql php54-xml php54-common php54-process php54-mbstring  php54-cli php54-ldap -y && yum install php56w php56w-gd  php56w-imap php56w-pdo php56w-mysql php56w-xml php56w-common php56w-process php56w-mbstring  php56w-cli php56w-ldap php56w-devel -y && service mysqld start && service nginx start && service httpd start

Как скомпилировать, установить и настроить последнюю версию PHP на CentOS — LinuxFere

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

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

Мы будем использовать последнюю на данный момент стабильную версию 8.1.2 PHP в качестве примера, чтобы показать, как компилировать, устанавливать и настраивать PHP, а также как настроить для запуска FPM (менеджер процессов FastCGI для PHP). Полный процесс был протестирован на совместимость с CentOS 7, CentOS 8 и CentOS Stream 8.

Для выполнения команд, описанных в этой статье, требуется роль пользователя root. Если вы не являетесь пользователем root, не забудьте добавить «sudo» перед каждой командой или переключитесь на пользователя root с помощью следующей команды:

 sudo -s 

Мы будем использовать команду yum для любой операции, связанной с пакетом. Обратите внимание, что в CenOS 8, CentOS Stream 8 и более поздних версиях CentOS команда yum представляет собой символическую ссылку на двоичный файл dnf и была заменена командой dnf .

1 Загрузить исходный код

Мы получим ссылку для скачивания последнего стабильного исходного кода PHP по адресу:

  • Страница загрузки PHP: https://www.php.net/downloads

Существует 3 типа форматов пакетов: Gzip (расширение .gz), Bzip2 (расширение .bz2) и XZ (расширение .xz). Вы можете использовать любой из них, и здесь мы используем, например, Gzip .

Сначала давайте изменим каталог на системную локальную исходную папку, затем мы загрузим пакет, используя ссылку, скопированную из файла пакета Gzip на странице:

 cd /usr/local/src
curl -LO https://www.php.net/distributions/php-8.1.2.tar.gz 

2 Компиляция PHP

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

Компиляция PHP состоит из двух этапов. Сначала мы воспользуемся параметрами конфигурации скрипта PHP configure для создания файла Makefile, состоящего из набора правил, которые сообщают инструменту Make, как компилировать программы друг из друга. Затем эти правила MakeFile будут использоваться инструментом Make для автоматической сборки PHP. Более подробно мы поговорим далее.

2.1 Подготовка среды

PHP написан в основном на языке C. Перед компиляцией PHP нам нужно убедиться, что компилятор C установлен в CentOS. Мы будем использовать GCC (сборник компиляторов GNU) в качестве компилятора C. Вы можете использовать любой компилятор C, который вам нравится.

Нам также необходимо установить средство автоматизации сборки Make , которое будет автоматически собирать исполняемые программы и библиотеки из исходного кода в соответствии с настроенным Makefile.

Вы можете использовать следующие команды для установки GCC и Make на CentOS:

 yum install -y gcc make 

2.

2 Настройка функций

Сначала мы распакуем исходный пакет PHP и переключимся в каталог источника (обратите внимание, что мы останемся в этом каталоге для всех операций, если не указано иное):

 смола -xvf php-8.1.2.tar.gz
cd php-8.1.2 

В этом каталоге вы найдете сценарий оболочки с именем configure , который представляет собой файл сценария настройки из исходного кода PHP. Этот файл скрипта выполняет две функции: первая — тонкая настройка функций PHP с помощью предоставляемых им богатых опций; другой — сопоставить библиотеки в системе и библиотеки, от которых зависит компиляция PHP (если одна библиотека отсутствует, она остановится и даст вам имя библиотеки для исправления).

Вы можете выполнить приведенные ниже команды, чтобы проверить все доступные параметры настройки из справочного руководства (нажмите q, чтобы выйти):

 ./configure --help | less 

Вы также можете обратиться к странице List of core configure options в документации PHP, где каждая опция дается с кратким описанием. Для получения более подробной информации о функциях, указанных в описании опции, вы можете перейти к Справочнику по функциям PHP.

Что касается используемых опций, это зависит от необходимых вам функций. Например, если вы хотите, чтобы PHP поддерживал обработку изображений, то необходимо установить библиотеку GD, в противном случае она не требуется. Если вы используете готовые веб-решения, такие как Laravel, Symfony и WordPress, для своей PHP-программы, вы можете найти их требования к среде в соответствующей документации.

Для обработки запросов к программам PHP по протоколу FastCGI в сотрудничестве с веб-сервером PHP в этой статье скомпилирован для поддержки FPM (FastCGI Process Manager). Он также должен поддерживать OpenSSL, zlib, cURL, библиотеку GD (а также GD поддерживает webP, JPEG, FreeType), Multibyte String, Zip и два расширения mysqli и PDO_MYSQL для доступа к MySQL. Эти функции соответствуют следующим параметрам конфигурации:

90 085 –with-zip
Параметры настройки Функции
–префикс Для указания каталога установки
–enable-fpm Для поддержки FPM
–with-openssl Для поддержки OpenSSL
–with-zlib Для поддержки zlib
Для поддержки Zip
–with-curl Для поддержки cURL
–enable-gd Для поддержки GD
–enable-mbstring Для поддержки обработки многобайтовых строк
–with-mysqli=mysqlnd Для поддержки доступа к MySQL через mysqli 90 088
—with-pdo-mysql=mysqlnd Для поддержки доступа к MySQL через PDO

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

 yum install -y libxml2-devel openssl-devel \
sqlite-devel curl-devel libpng-devel \
libwebp-devel libjpeg-devel freetype-devel 

Кроме того, нам нужно установить библиотеку Libzip, чтобы PHP мог читать и записывать Zip-файлы, что является функцией, требуемой менеджером зависимостей PHP Composer.

Чтобы установить Libzip на CentOS 8 и CentOS Stream 8:

 yum install -y libzip-devel 

Как и для CentOS 7, поскольку версия Libzip, установленная менеджером пакетов, равна 0.10, что ниже минимальной версии 9.0007 0.11 требуется для PHP, нам нужно вручную скомпилировать его для установки. Вы можете обратиться к этой статье для получения подробной информации о процедуре установки:

  • Как скомпилировать и установить последнюю версию libzip на CentOS

После установки выполните приведенную ниже команду, чтобы добавить путь к pkg-config (файл конфигурации для libzip) в переменную системной среды PKG_CONFIG_PATH :

9 0012 export PKG_CONFIG_PATH=/usr/local/libzip/lib64/pkgconfig

Таким образом, скрипт PHP configure сможет распознать и прочитать установленный вами libzip.

В дополнение к libzip требуется библиотека Oniguruma для поддержки многобайтовых строк для регулярных выражений. Поскольку он не включен во встроенные библиотеки CentOS, нам нужно активировать или указать его вручную.

Чтобы установить Oniguruma на CentOS 8 и CentOS Stream:

 yum install oniguruma-devel --enablerepo=powertools 

Чтобы установить Oniguruma на CentOS 7:

 yum install oniguruma-devel --enablerepo=epel 9001 3 

После установки программных библиотек, от которых зависят параметры настройки, мы можем запустить скрипт настройки PHP:

 ./configure --prefix=/usr/local/php \
--enable-fpm --with-openssl --with-zlib \
--with-curl --enable-gd --with-webp \
--with-jpeg --with-freetype --enable-mbstring \
--with-zip --with-mysqli --with-pdo-mysql 

Обратите внимание, что каталог, указанный параметром --prefix в приведенной выше команде, является местом установки PHP. Вы можете указать любое местоположение, которое вам нравится, но, как показывает практика, расположение системных локальных программ (/usr/local/php) является хорошим выбором. На самом деле вы можете игнорировать эту опцию, но установочные файлы PHP будут распространяться повсюду, распространяясь на etc , lib и bin в папке /usr/local .

Мы также использовали два параметра конфигурации --with-mysqli и --with-pdo-mysql , чтобы позволить PHP получить доступ к MySQL как через mysqli, так и через PDO. Это связано с тем, что некоторые PHP-программы использовали только один из способов доступа к MySQL, и мы хотим его поддерживать. Значение для параметров может быть mysqlnd или отсутствовать. Чтобы узнать, почему он установлен таким образом, вы можете обратиться к странице MySQL Native Driver документации PHP.

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

 +---------------------------------------------------------------------+
| Лицензия: |
| На это программное обеспечение распространяется лицензия PHP, доступная в этом |
| дистрибутив в файле LICENSE.  Продолжая эту установку |
| процесс, вы связаны условиями этого лицензионного соглашения. |
| Если вы не согласны с условиями этой лицензии, вы должны прервать |
| процесс установки на данный момент. |
+---------------------------------------------------------------------+
Спасибо за использование PHP. 

2.3 Выполнение компиляции

Теперь вы можете выполнить следующую команду для компиляции исходного кода PHP:

 make 

Если конфигурация вашего сервера высока, вы можете использовать опцию -j команды make для запуска нескольких процессов для ускорения компиляции. Например, для компиляции с 3 процессами используйте команду make -j3 .

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

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

 Сборка завершена.
Не забудьте запустить make test. 

Необязательно: Выполнение теста

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

 make test 

После завершения теста вы можете заметить два списка в подсказке: FAILED TEST SUMMARY и WARNED TEST SUMMARY , в котором перечислены многие элементы предупреждений о неудачных и пройденных тестах. Нам не нужно беспокоиться. Пока тест пройден, PHP можно использовать.

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

3 Установка PHP

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

 make install 

На этом установка PHP завершена. Если вы впервые устанавливаете PHP, чтобы упростить выполнение команд PHP позже, добавьте путь к исполняемому файлу PHP в переменную системной среды 9.0015 PATH командами ниже:

 echo 'export PATH="/usr/local/php/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc 

Теперь вы можете проверить версию PHP:

 php --version 

4 Настроить PHP

Для PHP с запущенным FPM существует два типа файлов конфигурации, один php.ini для настройки поведения PHP, другой php -fpm.conf для настройки FPM (включая файл конфигурации пула в папке php-fpm.d ). Все эти три файла не существуют при установке по умолчанию, поэтому нам нужно скопировать их в соответствующие места, где был установлен PHP.

4.1 Настройка php.ini

Приведенная ниже команда скопирует php.ini в папку lib каталога установки PHP:

 cp php.ini-production /usr/local/php/lib/php.ini 

9000 2 В общем, php. ini можно использовать без каких-либо изменений. Если его необходимо настроить для использования, вы можете обратиться к аннотации файла в нем или перейти на страницу директив php.ini документации PHP.

Если вашей программе PHP необходимо получить доступ к MySQL через Socket вместо использования порта 3306, каталог файла Socket необходимо указать в php.ini .

Откройте php.ini в вашем любимом редакторе и измените его (здесь мы используем редактор vi): две директивы mysqli.default_socket и pdo_mysql.default_socket следующим образом:

 mysqli.default_socket=/tmp/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock 

Обратите внимание, что эта конфигурация называется конфигурацией времени выполнения. Для PHP с запущенным FPM он будет прочитан только один раз в момент запуска FPM. Поэтому каждый раз php.ini был изменен, нам нужно перезапустить FPM, чтобы изменения вступили в силу.

4.

2 Настройка php-fpm.conf

Существует два типа процессов после запуска PHP FPM: главный процесс и пул процессов . Существует только один главный процесс, и его роль заключается в чтении и оценке конфигурации, а также в управлении пулом процессов. Может быть более одного пула процессов (настраиваемых директивами процесса в файле конфигурации), и его роль заключается в обработке запросов.

Главный процесс может работать от имени учетной записи администратора (root) для чтения файлов конфигурации, в то время как пул процессов должен работать от имени обычной учетной записи пользователя. Это связано с тем, что это пул процессов, которые фактически обрабатывают запросы, и, ограничивая его разрешения, можно избежать потенциальной опасности для безопасности операционной системы из-за дефектов приложений PHP.

Как правило, у нас есть учетная запись пользователя, имя которой (www-data) настраивается из программы веб-сервера (Nginx). Если эта учетная запись еще не создана, вы можете запустить команду ниже, чтобы создать системную учетную запись с именем «www-data», которая не имеет разрешения на вход:

 useradd www-data -s /sbin/nologin 

Теперь мы покинем каталог исходного кода PHP и перейдем в папку конфигурации в каталоге установки PHP:

 cd /usr/local/php/etc 

Выполнив две приведенные ниже команды, мы создадим файл конфигурации FPM и файл конфигурации пула:

 cp php-fpm. conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf 

Нет необходимости изменять php-fpm.conf без необходимости. Мы сосредоточимся на файле конфигурации пула www.conf , который находится в каталоге php-fpm.d и включен php-fpm.conf (при необходимости вы можете создать несколько файлов конфигурации пула, чтобы FPM мог запускать несколько пулов процессов с разными конфигурациями. Подробнее см. аннотацию в файле конфигурации).

Откройте www.conf в вашем любимом редакторе и измените его (здесь мы используем редактор vi):

 vi php-fpm.d/www.conf 

Мы изменим значения двух директив user  и  group , которые в основном являются именем пользователя и группой пользователей владельца веб-файлов (используемые здесь «www-данные» — это учетная запись из конфигурации веб-сервера или созданная на шаге выше):

 user = www-data
group = www-data 

Если вы планируете разрешить веб-серверу (например, Nginx, Apache) взаимодействовать с FPM через сетевой порт (то есть localhost: 9000 или 127. 0.0.1:9000), то наша работа по настройке выполняется здесь.

Если вы хотите, чтобы веб-сервер взаимодействовал с FPM через файл Socket, нам нужно установить каталог файла Socket для директивы 9.0015 listen чтобы FPM мог писать (путь и имя файла не обязательны, как показано ниже):

 ;listen = 127.0.0.1:9000
listen = /tmp/php-fpm.sock 

Нам также нужно установить разрешение файла Socket, чтобы веб-сервер мог читать:

 listen.owner = www-data
listen.group = www-данные
listen.mode = 0660 

После изменения конфигурации вы можете выполнить следующую команду для проверки. Если вы видите слово  success , это означает, что конфигурация подходит для запуска FPM:

 /usr/local/php/sbin/php-fpm -t 

5 Запустить FPM

Теперь пришло время запустить FMP, тогда он будет работать с веб-сервером для обработки запросов к PHP-программам.

Хотя мы можем использовать команду php-fpm для прямого запуска FPM, чтобы сделать его более стабильным (не остановленным из-за простоя системы или обслуживания сервера), необходимо передать PHP FPM в качестве службы операционной системе, чтобы FPM мог перезапускаться при перезагрузке системы.

В CenOS мы используем systemd (менеджер системы и служб) для управления всеми службами в системе. Чтобы позволить systemd управлять PHP, нам нужно создать для него файл конфигурации.

Используйте ваш любимый редактор для создания файла конфигурации с именем php-fpm.service в каталоге ниже (здесь мы используем редактор vi):

 vi /etc/systemd/system/php-fpm.service 

Скопируйте содержимое ниже и сохраните в новый файл (для редактора vi: нажмите ESC + input :wq + нажмите Введите):

 [Единица]
Description=Менеджер процессов PHP FastCGI
After=local-fs.target network.target nginx.service
[Услуга]
Тип = разветвление
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
[Установить]
WantedBy=multi-user.target 

Позвольте systemd перезагрузить новый файл конфигурации:

 systemctl daemon-reload 

Теперь мы можем запустить службу FPM с помощью следующей команды:

 systemctl start php-fpm 

Если в файл конфигурации внесены какие-либо изменения, вы можете использовать следующую команду для перезапуска FPM: 9000 3

 systemctl restart php-fpm 

Чтобы проверить статус службы FPM:

 systemctl status php-fpm 

Если статус службы  Активен: активен (работает) , и не появляется никаких ошибок или предупреждений, все работает нормально.

Наконец, добавьте FPM в качестве службы для автоматического запуска при загрузке системы:

 systemctl enable php-fpm 

На этом мы завершили все шаги по установке и настройке PHP в CentOS.

6 Обновление PHP

Чтобы обновить PHP до новой версии, которая будет выпущена в будущем, вам нужно выполнить только шаги 1, 2 и 3 данного руководства. Поскольку файлы конфигурации не будут перезаписаны при новой установке, а функции, связанные с запуском FPM, также не будут затронуты, обновлять их не нужно.

7 Заключение

После всех описанных выше шагов есть файлы и информация, которые либо используются для настройки PHP или FPM, либо используются другим программным обеспечением (например, программным обеспечением веб-сервисов Nginx, Apache и т. д.). Мы перечислили их, как показано ниже для справки.

Путь к файлу конфигурации PHP:

 /usr/local/php/lib/php.ini 

Путь к файлам конфигурации FPM:

 /usr/local/php/etc/php-fpm. conf
/usr/local/php/etc/php-fpm.d/www.conf 

Путь к файлу сокета FPM:

 /tmp/php-fpm.sock 

IP-адрес и порт FPM (если включен):

 127.0.0.1:9000 

Путь к файлу конфигурации FPM как системной службы:

 /etc/systemd/system/php-fpm. service 

Если у вас возникли проблемы с выполнением этого руководства, оставьте комментарий.

Как установить PHP с помощью репозитория Remi на CentOS

PHP — это широко используемый язык сценариев с открытым исходным кодом, который в основном используется для веб-разработки на стороне сервера. По мере выпуска новых версий PHP они обеспечивают улучшенную производительность, улучшения безопасности и новые функции, которые могут принести пользу веб-приложениям. В системах CentOS, RHEL и Fedora репозитории по умолчанию обычно предлагают более старые, стабильные версии PHP. Чтобы получить доступ к последним версиям PHP и дополнительным пакетам программного обеспечения, недоступным в репозиториях по умолчанию, вы можете использовать репозиторий Remi.

Репозиторий Remi — популярный сторонний репозиторий, поддерживаемый Remi Collet. Он предоставляет актуальные версии PHP, MySQL и других программных пакетов для систем CentOS, RHEL и Fedora. Используя репозиторий Remi, вы можете убедиться, что ваша система работает с последней версией PHP, что позволяет использовать самые последние функции и оптимизации, сохраняя при этом совместимость с более новыми веб-фреймворками и библиотеками.

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

Шаг 1: Установите репозитории EPEL и Remi

Перед установкой PHP вам необходимо настроить репозитории EPEL и Remi в вашей системе CentOS. Чтобы установить репозиторий EPEL, введите:

sudo yum install -y epel-release
 

Чтобы установить репозиторий Remi, выполните следующие команды:

sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
 

Замените «7» на версию CentOS, если вы не используете CentOS 7.

Шаг 2: Включите нужный репозиторий Remi

Репозиторий Remi предоставляет несколько версий PHP, поэтому вам необходимо включить репозиторий для конкретной версии PHP, которую вы хотите установить. Чтобы получить список доступных версий PHP, используйте команду yum-config-manager:

.
sudo yum установить -y yum-utils
sudo yum-config-manager --list-enabled | грэп реми
 

Чтобы включить репозиторий, например, для PHP 7.4, выполните:

sudo yum-config-manager --enable remi-php74
 

Замените «74» на желаемую версию PHP, например «73» для PHP 7.3 или «80» для PHP 8.0.

Шаг 3: Установите PHP

Теперь, когда нужный репозиторий Remi включен, вы можете установить PHP с помощью команды yum:

sudo yum установить -y php
 

Эта команда устанавливает базовый пакет PHP вместе с некоторыми распространенными модулями PHP. Чтобы установить дополнительные модули PHP, используйте следующую команду, заменив «module_name» на нужный модуль:

sudo yum install -y php-module_name
 

Шаг 4. Проверка установки PHP

Чтобы проверить установку PHP, выполните следующую команду:

php -v
 

Эта команда отображает установленную версию PHP и некоторую дополнительную информацию.

Упомянутые программы:

  • Репозиторий EPEL — Extra Packages for Enterprise Linux (EPEL) — это специальная группа Fedora, которая предоставляет высококачественные дополнительные пакеты для дистрибутивов Linux, включая CentOS и RHEL, которые недоступны в репозиториях по умолчанию.
  • Репозиторий Remi — сторонний репозиторий для систем CentOS, RHEL и Fedora, который предлагает обновленные и дополнительные пакеты, поддерживаемые Remi Collet.
  • yum — менеджер пакетов по умолчанию для CentOS и RHEL, используемый для установки, обновления и управления пакетами программного обеспечения в системе.