Установка (не обновление) PHP 7.2 на CentOS 7. Установка php 7 на centos 7
Установка (не обновление) PHP 7.2 на CentOS 7
Для того чтоб на сервере было несколько версий PHP необходимо его не обновлять, а именно установить.
Устанавливаем репозитории федоры (epel-release) и Remi:
yum install -y epel-release yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpmПросмотр установленных пакетов другой версии php. Для этого посмотрим какая версия PHP стоит на сервере:
php -vЕсли на сервера несколько версий PHP, то можно их посмотреть командой:
yum list installed php*Если у нас стоит и пятая и седьмая версия PHP, но мы хотим обновить именно седьмую версию, например, с PHP 7.0 до PHP 7.2, то самым оптимальным будет установка всех аналогичных пакетов PHP 7.0 для PHP 7.2, а после настройки и проверки работоспособности PHP 7.2 удаление PHP 7.0:
yum list installed php70* yum install -y --enablerepo=php-remi72 php72 php72-php php72-php-cli php72-php-common php72-php-devel php72-php-fpm php72-php-gd php72-php-intl php72-php-json php72-php-mbstring php72-php-mcrypt php72-php-mysqlnd php72-php-opcache php72-php-pdo php72-php-pear php72-php-pecl-geoip php72-php-pecl-solr2 php72-php-pecl-zip php72-php-process php72-php-soap php72-php-xml php72-php-xmlrpc php72-runtimeПри необходимости включаем службу в атозагрузку (если она отключена) и проверяем её состояние:
systemctl enable php72-php-fpm systemctl is-enabled php72-php-fpmЗапускаем службу (1) и проверяем её состояние (2):
service php72-php-fpm start service php72-php-fpm statusЕсли служба не запустилась выдав ошибку, то смотрим причину ошибки набрав команду:
systemctl status php72-php-fpmERROR: unable to bind listening socket for address ‘127.0.0.1:9000’: Address already in use
Так как порт занят, то мы скопируем конфигурационный файл (2) из папки /etc/opt/remi/php72/php-fpm.d/ в папку /etc/opt/remi/php7о/php-fpm.d/, предварительно сохраним версию конфигурационного файла для PHP 7.2 (1), а после копирования отключим конфиг файл для PHP 7.0 (3):
Перезапускаем старую службу (чтоб освободить порт или сокет) и запускаем новую службу (обязательно нужно использовать restart, так как reload сокет или порт не освободит):
service php70-php-fpm restart && service php72-php-fpm startАналогично копируем все остальные конфигурационные файлы, но лучше по одному копировать и каждый раз перезапускать службы:
service php70-php-fpm restart && service php72-php-fpm restartДля правки конфигурационного файла набираем:
yum install -y nano nano /etc/opt/remi/php72/php-fpm.d/название_файла.confПример:
nano /etc/opt/remi/php72/php-fpm.d/www.confПосле правки всегда нужно перезапускать службу:
service php72-php-fpm reloadили
systemctl reload php72-php-fpmЕсли хотим включить репозиторий remi-php72, то в файле /etc/yum.repos.d/remi-php72.repo в строке 9 ‘enabled=0‘ заменяем на ‘enabled=1‘. Но нужно помнить, что стоящий php по умолчанию будет обновлён до версии php 7.2 в CentOS 7. Поэтому лучше не включать, а обновление php72 проводить следующим способом:
Публикации, которые могут заинтересовать вас
www.dr.arut.ru
Web-сервер на CentOS 7: Nginx, PHP 7.x, PerconaDB
У меня уже были ранее записи, про установку PHP 7 на CentOS. В этот раз у меня появилась задача поднять сразу веб-сервер с нуля на базе операционной системы CentOS 7. Пользуясь случаем, решил записать последовательность действий для экономии времени в будущем. Возможно, вы тоже решили установить веб-сервер под CentOS 7 с последней версией PHP 7, тогда этот материал вам тоже будет полезен.
Список актуальных версий пакетов на момент установки:
- Веб-сервер Nginx 1.13.4
- Менеджер процессов FastCGI PHP 7.1.7
- MySQL сервер Percona 5.7
Предварительная настройка
Настройку сервера начнем с предварительной настройки сервера. Для начала я отключу firewalld, в дальнейшем доступ к серверу будет ограничен через iptables. Для отключения firewalld в CentOS 7 выполните следующие команды:
Создаем файл с правилами iptables:
mkdir -p /etc/iptables vi /etc/iptables/rules.v4Добавляем в содержимое файла следующие строки:
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # DROP INVALID PACKETS -A INPUT -m conntrack --ctstate INVALID -j DROP # ICMP -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # SSH -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # Если у вас статический ip, ограничьте доступ к SSH по ip-адресу. # Меняем адрес 1.2.3.4 на свое значение и меняем строку выше на следующую: #-A INPUT -s 1.2.3.4/32 -p tcp -m tcp --dport 22 -j ACCEPT # NGINX -A INPUT -i -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -i -p tcp -m tcp --dport 443 -j ACCEPT COMMITВ дальнейшем, если вы решите настроить тот или иной сервис, для открытия порта извне необходимо добавить соответствующее правило в iptables. Дополнительно в целях защиты доступа к серверу по SSH настройте fail2ban и авторизацию по ключу.
Применяем правила:
iptables-restore < /etc/iptables/rules.v4Добавляем выполнение правил при старте системы:
chmod +x /etc/rc.local vi /etc/rc.localДобавляем содержимое файла:
#!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot. iptables-restore < /etc/iptables/rules.v4 touch /var/lock/subsys/localУстановка Nginx в CentOS
Установку Nginx в CentOS будем из официального репозитория, я рекомендую использовать более свежую mainline-версию. Для настройки репозитория yum для CentOS необходимо создать файл:
/etc/yum.repos.d/nginx.repoC таким содержимым:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1Запускаем и добавляем nginx в атозапуск при старте системы:
systemctl start nginx systemctl enable nginxОткройте файл:
vi /etc/nginx/nginx.confПриведите значение параметров к следующему виду:
worker_processes auto; access_log off; server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 0;Применяем значения параметров:
service nginx restartУстановка PHP 7 в CentOS
На данный момент PHP 7 нет в официальных репозиториях. Для установки PHP 7.1 в CentOS 7 нам понадобится добавить в систему репозиторий Webtatic. Для установки модулей есть PEAR, но его поддерживают не все модуля. Связи с чем установки неподдерживаемых PHP PEAR модулей нужно выполнять из репозитория Webtatic.
Добавим в систему EPEL и Webtatic репозитории:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmУстанавливаем PHP 7.1 и наиболее часто используемые расширения:
Расширение OPcache, но я рекомендую его использовать для более быстрой работы ваших сайтов. OPcache теперь официально включен в исходный дистрибутив и поддерживается командой PHP. Это дает ему преимущество по сравнению с другим кэшем Opcode.
Список доступных для установки расширений PHP 7.1 есть на официальной странице репозитория Webtatic, в разделе Packages.
Запускаем и добавляем php-fpm в атозапуск при старте системы:
systemctl start php-fpm systemctl enable php-fpmТеперь переходим к настройке PHP-FPM, откройте следующий файл:
vi /etc/php-fpm.d/www.confРаскомментируйте и приведите значение параметров к следующему виду:
user = apache group = apache listen = /var/run/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660Перезапустим php-fpm:
service php-fpm restartДля взаимодействия Nginx с php-fpm создайте следующую конфигурацию:
vi /etc/nginx/conf.d/default.confЗамените содержимое файла на:
server { listen 80; server_name test.net; root /usr/share/nginx/html; index index.php index.html; location ~ .php$ { try_files $uri = 404; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }Установка Percona в CentOS
Устанавливать PerconaDB, MySQL или MariaDB — дело личного предпочтения. В данной статье речь пойдет о установке PerconaDB на CentOS, для этого добавим в систему официальный репозиторий пакетов:
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpmУстанавливаем Percona Server:
yum install Percona-Server-server-57Запускаем и добавляем Percona в атозапуск при старте системы:
systemctl start mysqlНаверно, у вас возникнет вопрос: где взять пароль root для доступа к Percona Server? В этом плане Percona проявит самостоятельность, вместо нас придумает пароль и запишет его в лог.Что бы узнать пароль root в Percona выполните команду:
cat /var/log/mysqld.log |grep generated 2017-08-13T15:25:44.331443Z 1 [Note] A temporary password is generated for root@localhost: ************По поводу начальной настройки Percona. Нужно отметить, что по умолчанию Percona уже пригодна для использования. Нам остается только внести финальные штрихи.
Открываем следующий файл:
vi /etc/percona-server.conf.d/mysqld.cnfВ секцию [mysqld] добавляем следующие параметры:
bind-address=127.0.0.1 # Вредный параметр, но иногда необходимо отключить проверку пароля условиям безопасности # validate-password=off innodb_buffer_pool_size=24G innodb_log_file_size=256M innodb_flush_log_at_trx_commit = 2 innodb_flush_method=O_DIRECT max_connections=300Что означают и для чего используются некоторые из этих параметров вы можете прочитать в статье MySQL 5.7 Performance Tuning Immediately After Installation на официальном сайте.
Самый важный параметр — innodb_buffer_pool_size. Устанавливаем равным 50%-80% от оперативной памяти, но не более размера вашей базы. Если у вас база на 100Mb устанавливаем значение параметра 200M с запасом. Для базы на 100Gb, при условии недостатка нужного количества оперативной памяти на сервере, значение параметра устанавливаем в пределах 50%-80% от оперативной памяти.
codebeer.ru
поднимаем PHP до версии 7.2 на CentOS
Попробуем заменить установленный по умолчанию PHP 5.6.xx в Vesta CP на актуальную весрию PHP 7.2.xx. Устанавливать будем аккуратно, используя remi repository.
Версия PHP 7 значительно превосходит 5.х по быстродействию и безопасности.
Этап 1
Установим Remi Repository / EPEL Repository:
RHEL 7
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm subscription-manager repos --enable=rhel-7-server-optional-rpmsRHEL 6
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpm rhn-channel --add --channel=rhel-$(uname -i)-server-optional-6CentOS 7
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpmCentOS 6
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpmЭтап 2
Выполнение кофигурации.
Выполним две команды для RHEL или CentOS
yum -y install yum-utils yum-config-manager --enable remi-php72Этап 3
Стандартное обновление пакетов
yum update -yУдивительно, но теперь yum попытается скачать и установить РНР версии 7. После установки требуется перезапуск Apache/php-fpm-(nginx).
Например, в Centos 7.5 для связки nginx+apache выполним service httpd restart
Версию PHP теперь можно проверить:
php -v # PHP 7.2.12 (cli) (built: Nov 6 2018 16:40:25) ( NTS )Если же обновления не произошло (или вообще ничего не произошло) или, например, раньше вы уже проводили апгрейд с 5.6 до 7.0/7.1, тогда нужно запустить команду для запрета php 5.6/7.0/7.1:
yum-config-manager --disable remi-php56 yum-config-manager --disable remi-php70 yum-config-manager --disable remi-php71А уже после этого вернуться к Этапу 2 снова.
drach.pro