centos 8 php pear cas

Как установить PHP на CentOS 8

Из нововведений PHP 7.4 можно выделить: типизированные свойства в классах, FFI для удобного написания расширений для языка, функции-стрелки для лаконичной записи однострочных функций. В этой статье вы узнаете как выполняется установка PHP CentOS 8 самой последней версии, на данный момент это 7.4.

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

Для начала нам надо установить два репозитория: EPEL и Remi.

1. Установка EPEL

Для установки EPEL на CentOS 8, выполните:

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm


Чтобы удостовериться, что все прошло успешно и EPEL доступен, выполните:

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

Дальше устанавливаем Remi:

sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Проверяем установку Remi:

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

После удачного добавления EPEL и Remi, нужно выбрать источник, откуда мы будем устанавливать PHP. Для начала нам нужно получить список источников PHP:

dnf module list php

Из вывода видим, модуль remi-7.4 с последней доступной версией, его мы и будем подключать:

sudo dnf module enable php:remi-7.4

После подключения модуля php:remi-7.4 можно установить PHP CentOS 8 с помощью команды, которая приведена ниже, также эта команда установит еще некоторые пакеты, такие как php-fpm, аpache и nginx, а также другие зависимости php:

sudo dnf install php php-cli php-common

Если в вашей системе уже есть установленная версия php, то она будет обновлена до версии 7.4. В редких случаях придется удалить конфликтующие зависимости. Чтобы узнать версию PHP Centos 8, выполните:

Из вывода команды мы можем увидеть, что у нас установлена версия PHP 7.4! Теперь вы можете тестировать и запускать свой проект на PHP.

Как удалить php в CentOS

Давайте ещё разберем как удалить php centos 8, установленный таким образом, для этого достаточно выполнить:

sudo dnf remove php php-cli php-common

Затем можно отключить ранее подключенный модуль php:remi:

sudo dnf module remove php:remi-7.4

Затем вы можете установить php centos из официальных репозиториев или подключить другой модуль. Надеюсь, у вас не возникло сложностей и это руководство оказалось для вас полезным.

Источник

Настройка web сервера apache в CentOS 8

Сегодня займемся поднятием одной из наиболее востребованных ролей любого linux сервера, которые занимают в этом функциональном сегменте лидирующую роль. Настройка web сервера CentOS 8 на базе связки популярного http сервера apache, интерпретатора php и сервера баз данных mysql, или коротко — установка lamp. Данная связка является самой популярной конфигурацией на сегодняшний день среди веб хостинга. Хотя последнее время ей на пятки наступает та же компания, но на базе nginx, возможно уже и опередила, точных данных у меня нет на этот счет.

Цели статьи

Данная статья является частью единого цикла статьей про сервер Centos.

Введение

Работать будем на сервере под управлением CentOS 8. Если у вас его еще нет, то читайте мои статьи на тему установки и базовой настройки centos. Не забудьте уделить внимание теме настройки iptables. В данной статье я ее не буду касаться, хотя тема важная для web сервера.

В своей тестовой среде я буду использовать следующие сущности.

z.serveradmin.ru имя тестового виртуального хоста и сайта
/web/sites директория для размещения виртуальных хостов
10.20.1.23 локальный ip адрес сервера
pma.serveradmin.ru имя виртуального хоста для phpmyadmin

Web сервер на CentOS 8

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор 2 ядра
Память 3 Gb
Диск 30 Gb SSD

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

Настройка apache в CentOS 8

Теперь приступим к установке apache. В CentOS 8 это делается очень просто:

Добавляем apache в автозагрузку:

Запускаем apache в CentOS 8:

Проверяем, запустился ли сервер:

Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу http://10.20.1.23 и увидеть картинку:

Если ничего не видите, скорее всего у вас не настроен firewall. Если не занимались его настройкой, то по-умолчанию в centos установлен firewalld. На нем открыть порты для web сервера можно следующими командами.

Проверить, открылись ли порты можно командой.

Вместо ожидаемой картинки с каким-то приветствием, мы видим просто ошибку. Я не знаю, почему в Centos 8 в стандартном пакете httpd из базового репозитория не положили в директорию web сервера по-умолчанию /var/www/html хоть какую-нибудь страничку. Там пусто, поэтому мы и видим ошибку. Давайте тогда сами что-то туда положим, чтобы просто проверить работу apache. Создаем простую страничку index.html.

Все в порядке, веб сервер работает. Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

/web/sites раздел для размещения сайтов
/web/z.serveradmin.ru/www директория для содержимого сайта
/web/z.serveradmin.ru/log директория для логов сайта

Создаем для нее директории.

Дальше редактируем файл конфигурации apache — httpd.conf по адресу /etc/httpd/conf. Первым делом проверим, раскомментирована ли строчка в самом конце:

Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. Создаем там файл z.serveradmin.ru.conf :

Перезапуск apache в centos

Проверим созданную конфигурацию и выполним перезапуск apache.

В данном случае ошибок нет, показано предупреждение. Теперь делаем restart apache:

Читайте также:  что нельзя делать после операции по удалению миомы

Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log. Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/sites/z.serveradmin.ru/www файл index.html следующего содержания:

Дальше на своем компьютере правим файл hosts, чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

где 10.20.1.23 ip адрес нашего веб сервера. Это нужно сделать только в том случае, если настраиваете web сервер где-то в локальной сети без реально существующего доменного имени.

Теперь в браузере набираем адрес http://z.serveradmin.ru. Если видим картинку:

значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd, а лог ошибок конкретного виртуального хоста по адресу /web/z.serveradmin.ru/log/error.log.

Установка php в CentOS 8

Устанавливаем php в CentOS 8, а так же некоторые популярные модули, которые могут пригодиться для того же phpmyadmin.

Выполним перезапуск apache:

Создадим файл в директории виртуального хоста и проверим работу php:

Заходим по адресу http://z.serveradmin.ru/index.php

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

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для всех виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

Добавляем в самый конец, перед

Для применения настроек нужно сделать restart apache. Если у вас полностью дефолтная установка, как у меня, то скорее всего вы увидите ошибку.

Invalid command ‘php_admin_value’, perhaps misspelled or defined by a module not included in the server configuration

Суть ошибки в том, что у нас не загружен модуль mod_php. Проверим, где он подключается. Это файл /etc/httpd/conf.modules.d/15-php.conf.

Тут стоит проверка на запуск модуля. Он загружается только, если у нас загружен модуль prefork. Давайте попробуем его загрузить принудительно. Для этого комментируем все строки, кроме основной.

Проверяем конфигурацию apache.

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.

Стандартный модуль mod_php скомпилирован с поддержкой модуля mpm_prefork. С другими он работать не будет. Таким образом, чтобы у нас нормально заработал php, нам надо вместо модуля mpm_event подключить модуль mpm_prefork. Для этого в конфиге 00-mpm.conf закомментируем подключение mpm_event_module и раскомментируем prefork.

После этого проверяйте конфигурацию и перезапускайте apache. Все должно заработать. Теперь в выводе phpinfo можно увидеть изменение настроек.

Установка MySQL в CentOS 8

Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

Устанавливаем mariadb на CentOS 8:

Запускаем mariadb и добавляем в автозагрузку.

Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.

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

Файлы настроек mysql/mariadb в Centos 8 лежат в директории /etc/my.cnf.d. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

Перезапуск mariadb/mysql в CentOS 8:

Установка phpmyadmin

Для того, чтобы установить phpmyadmin на наш web сервер, достаточно просто распаковать в директорию с виртуальным хостом исходники панели. Давайте подготовим виртуальный хост. Создаем структуру папок.

После добавления конфига, не забудьте перезапустить apache.

Идем на сайт https://www.phpmyadmin.net и копируем ссылку на последнюю версию панели. Затем загружаем ее через консоль.

Архив упакован в zip. Если у вас нет на сервере пакета unzip, установите его.

Распаковываем исходники в директорию виртуального хоста.

Можно заходить и проверять работу phpmyadmin, пройдя по адресу pma.serveradmin.ru. Ее установка закончена.

Более подробно вопрос установки и настройки phpmyadmin я рассматривал отдельно. Можете зайти в панель и создать базу mysql для тестового сайта, например, wordpress. Затем через консоль загрузить исходники cms и распаковать их.

После этого открывайте в браузере страницу z.serveradmin.ru и увидите приветствие установщика wordpress.

Настройка ssl сертификата Lets Encrypt в apache

Теперь настроим работу web сервера apache с ssl сертификатом. Хотя если быть точным, то tls сертификатом. Устанавливаем пакет certbot для получения бесплатного ssl сертификата от let’s encrypt. Для этого нам сначала надо подключить репозиторий epel.

После установки пакетов certbot, если его запустить, напишет ошибку, что не может сам настроить apache.

Настроим все сами. Для начала создадим самоподписанный дефолтный сертификат, чтобы apache не ругался на отсутствие файла и смог запуститься.

Все параметры оставляйте дефолтные, не принципиально. Мы этот сертификат использовать не будет. Перезапустите apache.

Читайте также:  There are no any existing drives что делать

Теперь выпустим сертификат для нашего домена. Имейте ввиду, чтобы получить сертификат у вас должно быть действующее доменное имя, ссылающееся на web сервер, который настраиваете. Let’s Encrypt будет по доменному имени обращаться к серверу, на котором настраиваете сертификат, чтобы проверить домен. В тестовой лаборатории с вымышленным доменным именем получить настоящий ssl сертификат не получится.

В качестве способа аутентификации выбирайте

Перезапускайте apache и проверяйте работу сайта по https, зайдя по соответствующему протоколу.

По аналогии делаете с остальными виртуальными хостами, для которых используете бесплатные сертификаты let’s encrypt. Осталось дело за малым — настроить автоматический выпуск новых ssl сертификатов, взамен просроченным. Для этого добавляем в /etc/crontab следующую строку:

Переадресация с http на https в apache

В настроенном ранее примере https отлично работает, но неудобно, что нет автоматической переадресации с http на https. Чтобы использовать безопасную версию сайта, необходимо вручную в браузере набирать https. Хотя все современные браузеры уже сами умеют проверять версии сайта и если есть защищенная, то они автоматически сами ее выбирают.

Тем не менее, лучше все же добавить редирект с http на https. Его можно сделать двумя различными способами:

Мне нравится больше второй вариант, поэтому приводим конфиг виртуального хоста к следующему виду.

Перечитывайте конфиг httpd и проверяйте. Должно работать автоматическое перенаправление на https версию.

Ротация логов веб сервера apache

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

У нас уже будет файл конфигурации logrotate для httpd, который был создан во время установки — /etc/logrotate.d/httpd. Приведем его к следующему виду:

Я предлагаю ротировать файлы логов по достижению ими размера в 10Мб, сжимать после ротации и хранить 10 архивов с логом. Обращаю внимание на важный нюанс при ротации логов по размеру. Скорее всего в общем случае она будет работать не так, как вы ожидаете. Подробности читайте по ссылке. Я привел пример простой конфигурации. Все параметры вы можете поменять по своему усмотрению. Примеров конфигурации logrotate в интернете много.

Настройка SELinux для web сервера apache

Раздел для тех, кто хочет настроить SELinux на своем web сервере. Сначала ставим пакет policycoreutils-python-utils если он еще не установлен. Он нам нужен для утилиты semanage.

Теперь автоматически сформируем модуль для selinux на основе событий аудита, которые накопились, пока мы настраивали сайт. Посмотреть их можно командой.

Создаем модуль selinux.

То же самое делаем для php.

Добавим нашу директорию /web/sites в соответствующие таблицы selinux для контента и логов.

И отдельно добавим каталог, куда web сервер сможет писать данные. Я покажу на примере правила для сайтов wordpress, где web сервер должен уметь писать в директорию wp-content для загрузки медиафайлов, установки тем и плагинов, а так же изменять файл wp-config.php.

Обновляем атрибуты файлов новым контекстом SELinux.

В завершении настройки selinux для apache, добавим еще один параметр, без которого httpd не сможет писать файлы в указанные каталоги.

Теперь активируем защиту selinux и проверяем, что она работает.

Режим работы Enforcing означает, что selinux работает. Убедиться, что модули загружены, можно командой.

В целом, по selinux все. Мы просто разрешили все, что веб сервер просил. По идее, надо вдумчиво во всех правилах разбираться и разрешать только то, что считаешь нужным. Я честно скажу, что selinux знаю не очень хорошо. Дальше загрузки готовых модулей и автоматического создания модулей с помощью audit2allow я не двигался. Руками модули никогда не писал. Если есть какой-то более осмысленный и правильный способ настройки selinux на кастомной конфигурации веб сервера, буду рад полезной информации.

Хорошая практическая статья по ручной настройке selinux для web сервера — https://habr.com/ru/post/322904/. Там же есть ссылки на другие статьи автора на тему selinux. Написано содержательно и наглядно, рекомендую для тех, кто будет знакомиться с технологией.

Видео

В завершении полное видео настройки web сервера apache на основе приведенной статьи. Если у кого-то что-то не получается, посмотрите, как это сделал я.

Источник

Как установить PHP на CentOS 8

В этой статье мы обсудим, как установить PHP 7.2, 7.3 или 7.4 в CentOS 8. Прежде чем выбирать, какую версию PHP устанавливать, убедитесь, что ваши приложения ее поддерживают.

Мы также покажем вам, как интегрировать PHP с Nginx и Apache.

Установка PHP на CentOS 8

CentOS 8 распространяется с PHP 7.2. Эта версия поддерживает большинство современных приложений PHP, но больше не будет активно поддерживаться с ноября 2019 года. Более новые версии PHP доступны в репозитории Remi.

Включить репозиторий Remi

Если вы собираетесь установить стабильный дистрибутив PHP версии 7.2, пропустите этот шаг. В противном случае, если вы хотите установить PHP 7.3 или 7.4, включите репозиторий Remi, выполнив следующую команду от имени пользователя root или пользователя с привилегиями sudo:

Приведенная выше команда также активирует репозиторий EPEL.

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

Читайте также:  прохоровка мифы и реальность

Вывод покажет список всех доступных модулей, включая связанный поток, версию и профили установки.

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

Теперь вы готовы установить PHP на свой сервер CentOS.

Установить PHP

Следующая команда установит PHP и некоторые из наиболее распространенных модулей PHP:

PHP использует FPM устанавливается как зависимость и используется как сервер FastCGI. Запустите службу FPM и включите ее автоматический запуск при загрузке:

Настройка PHP для работы с Apache

Если вы используете Apache в качестве веб-сервера, перезапустите службу httpd, используя следующую команду, и все готово:

Настройка PHP для работы с Nginx

По умолчанию PHP FPM запускается как пользователь apache. Чтобы избежать проблем с разрешениями, мы изменим пользователя на nginx. Для этого отредактируйте строки, выделенные желтым цветом:

Убедитесь, что /var/lib/phpкаталог имеет правильное владение:

После этого перезапустите службу PHP FPM:

Затем отредактируйте директиву виртуального хоста Nginx и добавьте следующий блок местоположения, чтобы Nginx мог обрабатывать файлы PHP:

Чтобы новая конфигурация вступила в силу, перезапустите службу Nginx:

Заключение

PHP 7.2 доступен для установки из репозиториев CentOS 8 по умолчанию. Если вы хотите установить более свежую версию, вам нужно включить репозиторий Remi.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как установить PHP на CentOS 8

How to Install PHP on CentOS 8

В этом руководстве мы обсудим, как установить PHP 7.2, 7.3 или 7.4 в CentOS 8. Прежде чем выбирать, какую версию PHP устанавливать, убедитесь, что ваши приложения ее поддерживают.

PHP является одним из наиболее часто используемых языков программирования на стороне сервера. Многие популярные CMS и фреймворки, такие как WordPress, Magento и Laravel, построены на PHP.

Мы также покажем вам, как интегрировать PHP с Nginx и Apache.

Установка PHP на CentOS 8

Включить хранилище Remi

Если вы собираетесь установить стабильный дистрибутив PHP версии 7.2, пропустите этот шаг. В противном случае, если вы хотите установить PHP 7.3 или 7.4, включите репозиторий Remi, выполнив следующую команду от имени пользователя root или пользователя с привилегиями sudo :

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

Вывод покажет список всех доступных модулей, включая связанный поток, версию и профили установки.

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

PHP 7.3

PHP 7.4

Теперь вы готовы установить PHP на свой сервер CentOS.

Установить PHP

Следующая команда установит PHP и некоторые из наиболее распространенных модулей PHP:

PHP использует FPM устанавливается как зависимость и используется как сервер FastCGI. Запустите службу FPM и включите ее автоматический запуск при загрузке:

Настройка PHP для работы с Apache

Если вы используете Apache в качестве веб-сервера, перезапустите httpd службу, используя следующую команду, и все готово:

Настройка PHP для работы с Nginx

Убедитесь, что /var/lib/php каталог имеет правильное владение :

После этого перезапустите службу PHP FPM:

Затем отредактируйте директиву виртуального хоста Nginx и добавьте следующий блок местоположения, чтобы Nginx мог обрабатывать файлы PHP:

Чтобы новая конфигурация вступила в силу, перезапустите службу Nginx :

Вывод

PHP 7.2 доступен для установки из репозиториев CentOS 8 по умолчанию. Если вы хотите установить более свежую версию, вам нужно включить репозиторий Remi.

Источник

Как установить PHP 7.2 на RHEL 8 / CentOS 8

Как установить PHP 7.2 на RHEL 8 / CentOS 8

Расширения удалены на PHP 7.2

Ниже приведены расширения, которые устарели в PHP 7.2.

Как PHP 7.2, так и PHP 7.1 должны быть доступны в репозитории AppStream:

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

Для установки PHP 7.3 на RHEL 8, проверьте: Как установить PHP 7.3, PHP 7.3-FPM на RHEL 8

Установите PHP 7.2 на RHEL 8 / CentOS 8

Установите PHP 7.2 на RHEL 8 / CentOS 8, выполнив следующую команду

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

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

Как видно из вышеприведенного вывода, у нас есть PHP 7.2.11 в нашей системе RHEL 8.

Запустите и настройте службу php-fpm

Теперь активируйте php-fpm услугу

Подтвердите статус сервиса

Обратите внимание, что по умолчанию служба PHP FPM прослушивает сокет Unix — /run/php-fpm/www.sock

Установка расширений PHP 7.2

Пример ниже для установки стандартных расширений PHP.

Как установить PHP 7.1 на RHEL 8

Если вы хотите установить PHP 7.1, он также доступен в репозитории AppStream. Установите PHP 7.1, используя команду ниже:

Проверьте версию PHP, используя:

Вы можете легко переключиться обратно на PHP 7.2, используя:

Тестирование вашей установки PHP

Наконец, давайте проверим, чтобы убедиться, что наш PHP работает как положено. Установите Apache HTTP Server, используя:

Тогда Актив Сервис

Создать тестовую страницу PHP

Откройте URL сервера:

Включить http-порт на брандмауэре

В наших следующих статьях мы расскажем об установке веб-сервера Nginx и настройке его для обслуживания веб-страниц PHP.

Источник

Образовательный портал