Apache подключить php centos

Обновлено: 05.07.2024

Веб-сервер Apache использует виртуальные хосты для управления несколькими доменами в одной системе. PHP-FPM использует демона для управления несколькими версиями PHP в одной системе. Вы можете использовать Apache и PHP-FPM для одновременного хостинга на одном сервере нескольких веб-приложений PHP на основе разных версий PHP. Эта возможность полезна, поскольку разным приложениям могут требоваться разные версии PHP, но некоторые серверные комплексы, в том числе комплекс LAMP в стандартной конфигурации, могут работать только с одной версией. Сочетание Apache с PHP-FPM более экономично по сравнению с хостингом каждого приложения на отдельном экземпляре сервера.

Также PHP-FPM предлагает разные варианты конфигурации для регистрации данных stderr и stdout , аварийной перезагрузки и адаптивного создания процессов, что полезно для сайтов с высокой нагрузкой. Использование Apache с PHP-FPM — один из лучших вариантов хостинга приложений PHP, особенно с точки зрения производительности.

В этом обучающем руководстве мы настроим два сайта PHP для работы на одном экземпляре сервера. Каждый сайт будет использовать собственный домен, и на каждом домене будет использоваться собственная версия PHP. Первый с айт site1.your_domai n развернет PHP 7.0. Второй сайт site2.your_domain развернет PHP 7.2.

Предварительные требования

  • Один сервер CentOS 7 с не менее чем 1 ГБ оперативной памяти, настроенный согласно руководству Начальная настройка сервера CentOS 7, с пользователем non-root user с привилегиями sudo и брандмауэром.
  • Веб-сервер Apache, установленный и настроенный в соответствии с указаниями руководства Установка веб-сервера Apache в CentOS 7​​​.
  • Доменное имя, настроенное так, чтобы указывать на ваш сервер CentOS 7. Информацию о том, как сделать так, чтобы домены указывали на дроплеты DigitalOcean, можно найти в руководстве Создание указаний на серверы имен DigitalOcean из общих реестров доменов. Для целей настоящего обучающего модуля мы используем два субдомена, каждый из которых указан с записью A в наших настройках DNS: site1.your_domain и site2.your_domain .

Шаг 1 — Установка PHP версий 7.0 и 7.2 с помощью PHP-FPM

После выполнения предварительных требований мы установим версии PHP 7.0 и 7.2. Репозиторий SCL (Software Collections) содержит множество версий стеков PHP для систем CentOS 7. Если вам нужна абсолютно новая версия PHP, которой нет на SCL, проверьте remi PPA (персональные архивы пакетов).

Начнем с установки репозитория SCL в вашу систему:

Сначала узнаем, какие версии PHP 7 доступны в SCL:

Вывод будет выглядеть следующим образом:

Вы заметите, что доступна также новейшая версия, PHP 7.3. Но в наших примерах мы установим версии 7.0 и 7.2.

Начнем с более ранней версии. Установите rh-php70 и rh-php70-php-fpm ​​​:

  • rh-php70 — это метапакет, который запускает приложения PHP.
  • rh-php70-php-fpm ​​​ предоставляет интерпретатор Fast Process Manager, который работает как демон и принимает запросы Fast/CGI.

Повторите процедуру для PHP версии 7.2. Установите rh-php72 и rh-php72-php-fpm ​​​.

Далее запустите следующие команды для начала использования обеих коллекций Software Collections:

По умолчанию обе версии PHP прослушивают порт 9000 . Но в этом обучающем руководстве мы хотим запустить две версии одновременно. Поэтому назначим два новых порта:

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

Теперь вы готовы запустить и активировать ваши службы PHP. Начнем со службы rh-php70-php-fpm и активируем ее запуск во время загрузки:

Затем проверьте статус службы rh-php70-php-fpm :

Вывод будет выглядеть следующим образом:

Повторите эту процедуру, запустите службу rh-php72-php-fpm и активируйте ее запуск во время загрузки:

Затем проверьте статус службы rh-php72-php-fpm :

Другой вывод будет выглядеть следующим образом:

Мы установили на сервере две версии PHP. Теперь создадим структуру каталогов для каждого сайта, который будем развертывать.

Шаг 2 — Создание структур каталогов для обоих сайтов

В этом разделе мы создадим корневой каталог документов и страницу индекса для каждого из двух сайтов.

Вначале создайте корневые каталоги документов для site1.your_domain и site2.your_domain :

По умолчанию веб-сервер Apache работает как пользователь apache и группа apache . Поэтому /var/www/ и все его файлы и подкаталоги также должны принадлежать им. Запустите следующие команды для проверки правильности владения и разрешений корневых каталогов вашего веб-сайта:

Команда chown меняет владельца двух каталогов веб-сайта на пользователя apache и группу apache . Команда chmod меняет разрешения, связанные с этим и другими пользователями и группами.

Далее вы создадите файл info.php в корневом каталоге каждого сайта. В нем будет отображаться информация о версии PHP для каждого сайта. Начнем с site1 :

Добавьте следующую строку:

Сохраните и закройте файл. Скопируйте созданный файл info.php в site2 :

Теперь на вашем веб-сервере имеются корневые каталоги документов, которые требуются каждому сайту для предоставления данных посетителям. Далее мы настроим веб-сервер Apache для работы с двумя разными версиями PHP.

Шаг 3 — Настройка Apache для обоих сайтов

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

Вначале создайте новый файл конфигурации виртуального хоста для сайта site1.your_domain . Здесь вы предписываете Apache использовать для рендеринга содержимого PHP 7.0:

Добавьте в файл следующее: Убедитесь, что путь к каталогу сайта, имя сервера, порт и версия PHP соответствуют вашей настройке:

Для DocumentRoot вы указываете путь корневого каталога вашего веб-сайта. Для ServerAdmin вы добавляете адрес электронной почты, к которому имеет доступ администратор сайта your_domain . Для ServerName вы добавляете url для вашего первого субдомена. Для SetHandler вы указываете порт 9002 . Остальные директивы также настраивают вашу службу для развертывания PHP 7.0.

Сохраните и закройте файл.

Теперь создайте новый файл конфигурации виртуального хоста для сайта site2.your_domain . Для этого субдомена мы будем развертывать PHP 7.2:

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

Сохраните файл и закройте его после завершения. Проверьте файл конфигурации Apache на наличие синтаксических ошибок:

Вы увидите вывод с текстом Syntax OK :

Перезапустите службу Apache, чтобы применить изменения:

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

Шаг 4 — Тестирование сайтов

Мы настроили два сайта для работы с двумя разными версиями PHP. Теперь проверим результаты.

Информационная страница
PHP 7.0 Информационная страница PHP 7.2

Обратите внимание на заголовки. На первой странице указано, что на сайте site1.your_domain развернута версия PHP 7.0. На второй странице указано, что на сайте site2.your_domain развернута версия PHP 7.2.

Мы протестировали сайты и теперь можем удалить файлы info.php . Эти файлы представляют собой угрозу безопасности, поскольку они содержат важную информацию о вашем сервере и при этом доступны неуполномоченным пользователям. Удалите файлы:

Теперь у вас имеется один сервер CentOS 7, обслуживающий два сайта с двумя разными версиями PHP. Однако PHP-FPM можно применять и для других целей.

Заключение

Мы объединили виртуальные хосты и PHP-FPM для обслуживания нескольких сайтов и нескольких версий PHP на одном сервере. Количество сайтов PHP и версий PHP, которые может обслуживать ваш сервер Apache, зависит исключительно от вычислительной мощности сервера.

Теперь вы можете рассмотреть возможность изучения более расширенных функций PHP-FPM, например порождение процесса или правил регистрации sdtout и stderr ​​​​​. Или же теперь вы можете защитить свои веб-сайты. Для этого используйте наш обучающий модуль по защите сайтов с помощью бесплатных сертификатов TLS/SSL от Let’s Encrypt.

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

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

Шаг 1. Установка пакетов

Установка Apache CentOS 8 выполняется с помощью команды приведенной ниже. Она позволит установить не только сам сервер, но и дополнительные пакеты, необходимые для его работы в вашей системе:

Шаг 2. Настройка службы Apache

Управление службой Apache выполняется при помощи команды systemctl. По окончании установки используйте команду systemctl для добавления службы Apache в автозагрузку и её запуска:

Если вы хотите перезапустить apache CentOS 8, то можете использовать команду:

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

Шаг 3. Настройка фаервола

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

Шаг 4. Проверка работы Apache

Теперь вы можете получить информацию об установленной версии Apache на вашем сервере, используя следующую команду:

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

Создайте тестовую html-страницу в корневом каталоге веб-сервера по умолчанию (/var/www/html).

echo "Hello Losst.ru" > /var/www/html/index.html

Теперь откройте ваш любимый браузер и, используя IP-адрес сервера или домен, указывающий на IP-адрес вашего сервера, перейдите на только что созданную тестовую страницу:

Если вы видите текст, который ранее записали в тестовый файл, значит установка apache centos прошла успешно.

Шаг 5. Создание виртуальных хостов

Далее создайте файл конфигурации виртуального хоста и отредактируйте его, добавив следующее содержимое: можно изменить доменное имя в соответствии с вашим доменом:

  • FollowSymLinks -при использовании этой директивы сервер будет следовать символическим ссылкам в указанном каталоге. Настройка директивы всегда остаётся заданной по умолчанию. Параметр FollowSymLinks работает только в разделах <Directory> или файлах .htaccess.
  • AllowOverride - найдя файл .htaccess, сервер должен знать, какие директивы, объявленные в этом файле, могут переопределить более ранние директивы конфигурации. Директива AllowOverride допустима к использованию только в разделах <Directory>, указанных без регулярных выражений, но не в разделах <Location>, <DirectoryMatch> или <Files>. Если директива AllowOverride принимает значение None, то файлы .htaccess полностью игнорируются. В этом случае сервер даже не будет пытаться читать файл .htaccess в файловой системе. Если эта директива принимает значение Allow, то любая директива, имеющая свои htaccess-разрешения может переопределить более ранние директивы конфигурации.
  • Order - наряду с директивами Allow (разрешено) и Deny (запрещено), управляет трёхпроходной системой контроля доступа. Первый проход обрабатывает либо все разрешающие, либо все запрещающие директивы, как указано в директиве Order. Второй проход анализирует остальные директивы (запретить или разрешить). Третий проход применяется ко всем запросам, не соответствующим ни одному из первых двух. Обратите внимание, что все директивы Allow и Deny обрабатываются иначе, чем обычный брандмауэр, использующий только первое значение правила. Кроме того, порядок, в котором строки появляются в файлах конфигурации, не имеет значения — все разрешающие строки обрабатываются как одна группа, все запрещающие строки рассматриваются как другая группа, а состояние по умолчанию рассматривается само по себе. Директива Order всегда принимает одно из двух значений: Allow или Deny.
  • ДирективыAllowиDeny. Вариант Allow, Deny подразумевает, что сперва оцениваются все директивы Allow. По крайней мере одна из них должна совпадать, иначе запрос отклоняется. Затем оцениваются все директивы Deny. В случае совпадения запрос отклоняется. Наконец, любые запросы, не соответствующие директиве Allow или Deny, по умолчанию отклоняются. В случае использования Deny, Allow оцениваются все директивы Deny. Если они совпадают, запрос отклоняется. Любые запросы, не соответствующие директивам Allow или Deny, разрешены.

Чтобы изменения вступили в силу надо перезапустить службу. Перезагрузка Apache выполняется командой:

Настройка виртуальных хостов Apache CentOS завершена.

Шаг 4. Настройка SSL

Если вы не собираетесь использовать SSL в работе вашего сайта, то можете смело пропускать этот шаг. Однако, безопасность всегда является главной задачей для любого веб-сайта. Для того, чтобы использовать SSL в связке с Apache, требуется установить пакет mod_ssl в вашей системе. Для этого выполните команду:

dnf install mod_ssl

По окончании установки пакета создайте директорию, в которой будет хранится наш
SSL-сертификат:

mkdir -p /etc/pki/tls/certs

Перейдите в него, выполнив команду:

Теперь создайте SSL-сертификат, который будет использоваться при настройке виртуального хоста. Для этого выполните команду:

Эта команда создаст закрытый ключ и сертификат в необходимой директории.

  • SSLEngine - эта директива переключает использование механизма протокола SSL/TLS. Это обычно используется внутри <VirtualHost> для включения поддержки SSL /TLS конкретным виртуальным хостом. По умолчанию механизм протокола SSL/TLS отключён как для основного сервера, так и для всех настроенных виртуальных хостов. В Apache 2.1 и более поздних версиях SSLEngine устанавливается опционально. Эта директива может принимать два значения: on или off, что означает включено либо выключено.
  • SSLCertifacateFile - эта директива создаёт файл типа "всё в одном", в котором можно собрать сертификаты центров сертификации (ЦС), с клиентами которых вы имеете дело. Они используются для аутентификации клиента. Такой файл — просто объединение различных файлов сертификатов, закодированных в PEM, в порядке предпочтения. Это может быть использовано в качестве альтернативы или дополнительно к SSLCACertificatePath.
  • SSLCertificateKeyFile - указывает на PEM-кодированный файл закрытого ключа для сервера. Если содержащийся закрытый ключ зашифрован, диалог парольной фразы принудительно запускается во время запуска. Директиву можно использовать несколько раз (ссылаясь на разные имена файлов) для поддержки нескольких алгоритмов аутентификации сервера. Для каждой директивы SSLCertificateKeyFile должна быть соответствующая директива SSLCertificateFile.

Закрытый ключ также может быть объединён с сертификатом в файле, предоставленном SSLCertificateFile, но эта практика крайне нежелательна. Если он используется, то файлы сертификатов, использующие такой встроенный ключ, должны быть настроены после сертификатов, использующих отдельный файл ключей.

Теперь, создав и настроив конфигурационный файл, сохраните изменения в файле виртуального хоста и перезагрузите службу Apache, используя следующую команду:

Выводы

В этой статье мы разобрали как выполняется установка Apache в CentOS 8. Выполнив указанные в нашей статье действия, вы сможете установить и настроить веб сервер Apache на вашем сервере CentOS 8.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

И так, к нам в руки попал новый сервер с только что установленной CentOS.

Задача — сделать из него полноценный веб сервер.

Все действия мы выполняем из под пользователя root.

1. Обновляем систему.

2. Устанавливаем любимые редакторы.

Лично я люблю пользоваться mcedit, который встроен в Midnight Commander, по этому его и ставлю:

3. Настройка брэндмауера (iptables).

4. Устаналвиваем Apache, SSL.

В ServerName пишем ip адрес или имя сервера.

Строчку IncludeOptional conf.d/*.conf переносим в самый конец файла.
А перед ней добавляем главный виртуалхост:

Создаем тестовую страницу:

Проверяем результат, открыв в браузере с другой машины IP-адрес сервера:

Если надпись It Works! появилась, продолжаем дальше

5. Устанавливаем PHP с некоторыми его доп. компонентами

Проверяем PHP:
Создадим php скрипт выводящий информацию о php:

6. Устанавливаем MySQL или MariaDB.

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

Ставим MySQL

Или ставим MariaDB

Подключаем и проверяем

ini_set ( 'display_errors' , 1 ) ; //включаем вывод ошибок на страницу $dbname = "mysql" ; //база данных, которая создается по умолчанию при установке $dbcnx = @ mysql_connect ( $dblocation , $dbuser , $dbpasswd ) ;

7. Настраиваем хосты в Apache.

И так, создаем в /home/ директории сайтов и в каждом из них папки www, logs, tmp.

php_admin_value upload_tmp_dir / home / site1 . ru / tmp php_admin_value session . save_path / home / site1 . ru / tmp

Проверяем:
Для проверки совершенно не обязательно менять NS записи домена, достаточно отредактировать файл hosts на компьютере, с которого вы производите настройку. В windows он обычно лежит в C:\Windows\System32\drivers\etc\, в nix системах в /etc/

8. Установка и настройка PhpMyAdmin (PMA)

9. Установка и настройка FTP клиента

Лично мне нравится использовать ProFTPD.
Как его установить и настроить на CentOS читаем тут — Установка и настройка ProFTPD на CentOS.

В данной статье мы рассмотрим как установить и настроить Linux, Apache, MariaDB, PHP на Centos7 /RHEL 7. В новой версии Centos7 /RHEL 7 много изменений.

Что такое LAMP?

  • Устанавливаем RHEL 7 или CentOS 7 сервер. Открываем терминал к серверу по ssh, у Вас должны быть права суперпользователя root.
  • Вам также понадобятся знания команд yum
  • Вам понадобится IP адрес вашего сервера, используйте следующую комманду, что бы определить IP адрес для интерфейса eth0
ifconfig eth0 | awk '/inet /'
  • Полученный IP 10.180.10.10 адрес будем использовать для тестирования установки

Установка Apache on a CentOS 7 /RHEL 7 сервер

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

Чтобы отключить, автоматическую загрузку

Тестовая страница apache

Просмотр статуса apache службы на CentOS 7 / RHEL 7

Убедитесь что веб сервер запущен

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

Установка MariaDB на сервере CentOS 7 / RHEL

Для запуска MariaDB, используйте команду:

Чтобы убедиться, что сервис MariaDB запускается автоматически во время загрузки, введите:

ln - s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'

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

Первый запуск MariaDB

Введите следующую команду:

Отвечая на вопросы Вы сможете настроить первоначальную безопасность БД

Безопасность сервера БД mysql

Проверка установки MariaDB

Введите следующую команду

mariadb-test

Установка PHP на CentOS 7 / RHEL 7

Для установки PHP и модулей, такие как GD / mysql введите следующую комманду

Для поиска всех других PHP модулей:

php-modules

Чтобы получить более подробную информацию о модуле:

Проверка PHP на сервере

Создайте файл с именем /var/www/html/test.php следующим образом:

Добавьте следующий код:

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

Читайте также: