Php apache centos 7: Установка LAMP (apache+php+mysql) в CentOS 7

Содержание

Как установить WordPress с Apache на CentOS 7

WordPress — самая популярная в мире платформа для ведения блогов и CMS с открытым исходным кодом, на которой сегодня работает четверть всех веб-сайтов в Интернете. Он основан на PHP и MySQL и содержит массу функций, которые можно расширить с помощью бесплатных и платных плагинов и тем. WordPress — это самый простой способ создать свой интернет-магазин, сайт или блог.

В этом руководстве мы объясним, как установить WordPress на CentOS 7. На момент написания этой статьи последней версией WordPress была версия 5.0.3.

Мы будем использовать стек LAMP с Apache в качестве веб-сервера, SSL-сертификат, последнюю версию PHP 7.2 и MySQL / MariaDB в качестве сервера базы данных.

Содержание

Подготовка

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

  • Доменное имя указывает на публичный IP-адрес вашего сервера. Мы будем использовать example. com .
  • Вы вошли в систему как пользователь с привилегиями sudo .
  • Apache устанавливается, следуя этим инструкциям .
  • PHP 7.2 устанавливается в соответствии с этими инструкциями .
  • У вас установлен сертификат SSL для вашего домена. Вы можете сгенерировать бесплатный SSL-сертификат Let’s Encrypt, следуя этим инструкциям .

Создание базы данных MySQL

WordPress хранит свои данные и конфигурацию в базе данных MySQL. Если у вас еще не установлен MySQL или MariaDB на сервере CentOS, вы можете установить его, следуя одному из следующих руководств:

  • Установите MySQL на CentOS 7 .
  • Установите MariaDB на CentOS 7 .

Войдите в оболочку MySQL, выполнив следующую команду:

mysql -u root -p

В оболочке MySQL запустите следующий оператор SQL, чтобы создать новую базу данных с именем wordpress :

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Затем создайте учетную запись пользователя MySQL с именем wordpressuser и предоставьте пользователю необходимые разрешения , выполнив следующую команду:

GRANT ALL ON wordpress. * TO 'wordpressuser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

После этого выйдите из консоли mysql, набрав:

EXIT;

Скачивание WordPress

Следующая команда загрузит последнюю версию WordPress со страницы загрузки WordPress с помощью wget и распакует архив в корневой каталог документов домена:

wget -q -O - "http://wordpress.org/latest.tar.gz" | sudo tar -xzf - -C /var/www/html --transform s/wordpress/example.com/

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

sudo chown -R apache: /var/www/html/example.com

Настройка Apache

К настоящему времени у вас уже должен быть установлен Apache с сертификатом SSL в вашей системе, если нет, проверьте предварительные требования для этого руководства.

Откройте текстовый редактор и отредактируйте конфигурацию виртуальных хостов Apache домена:

sudo nano /etc/httpd/conf. d/example.com.conf

Не забудьте заменить example.com на свой домен WordPress и указать правильный путь к файлам сертификатов SSL.

/etc/httpd/conf.d/example.com.conf

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com
  <If "%{HTTP_HOST} == 'www.example.com'">
    Redirect permanent / https://example.com/
  </If>
  DirectoryIndex index.html index.php
  DocumentRoot /var/www/html/example.com
  ErrorLog /var/log/httpd/example.com-error.log
  CustomLog /var/log/httpd/example.com-access.log combined
  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
  <Directory /var/www/html/example.com>
      Options FollowSymLinks
      AllowOverride All
      Require all granted
  </Directory>
</VirtualHost>

Конфигурация укажет Apache перенаправить HTTP на HTTPS и с www на версию вашего домена без www.

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

sudo systemctl restart httpd

Завершение установки WordPress

Теперь, когда WordPress загружен и сервер Apache настроен, вы можете завершить установку через веб-интерфейс.

Откройте браузер, введите свой домен, и появится экран, подобный следующему:

Выберите язык, который вы хотите использовать, и нажмите кнопку « Continue .

Затем вы увидите следующую информационную страницу, нажмите Let's go! кнопка.

На следующем экране мастер настройки попросит вас ввести данные подключения к базе данных. Введите данные пользователя MySQL и базы данных, которые вы создали ранее.

Запустите установку WordPress, нажав кнопку « Run the Installation .

На следующем шаге вам нужно будет ввести имя для вашего сайта WordPress и выбрать имя пользователя (в целях безопасности не используйте «admin»).

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

Введите свой адрес электронной почты и выберите, хотите ли вы, чтобы поисковые системы не индексировали сайт (не рекомендуется).

Щелкните Install WordPress и после завершения установки вы попадете на страницу, информирующую вас о том, что WordPress установлен.

Чтобы получить доступ к странице входа в WordPress, нажмите кнопку « Log in .

Введите ваше имя пользователя и пароль.

Вы будете перенаправлены на панель администрирования WordPress.

Отсюда вы можете приступить к настройке вашей установки WordPress, установив новые темы и плагины.

Выводы

Поздравляем, вы успешно установили WordPress с Apache на свой сервер CentOS 7.Первые шаги с WordPress — хорошая отправная точка, чтобы узнать больше о том, как начать работу с WordPress.

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

Как установить Let’s Encrypt с Apache на CentOS 7

В этом руководстве мы покажем вам, как установить клиент Let’s Encrypt на ваш CentOS 7 VPS и выдать SSL-сертификат для вашего домена.

Улучшение безопасности вашего веб-сайта с помощью SSL-шифрования может повысить доверие посетителей к вашему веб-сайту. В прошлом настройка SSL-шифрования на веб-сайте была сложной задачей. Однако Let’s Encrypt — это бесплатный центр сертификации (ЦС) с открытым исходным кодом, который позволяет получать и устанавливать сертификаты с помощью простых автоматизированных команд. Благодаря им настроить шифрование и повысить безопасность вашего сайта стало намного проще. Let’s Encrypt бесплатно предоставляет действующий SSL-сертификат для вашего домена, а также может использоваться для производства/коммерческого использования.

Начнем с установки — это простая установка, и она не займет много времени.

Содержание

1

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

  • Для целей этого руководства мы будем использовать CentOS 7 VPS.
  • Также требуется полный доступ SSH root или пользователь с привилегиями sudo.
  • Допустимое доменное имя указывает на IP-адрес вашего сервера. В этом уроке мы будем использовать domain.com .

Шаг 1. Подключитесь через SSH и обновите ОС

Подключитесь к вашему серверу через SSH в качестве пользователя root, используя следующую команду:

 ssh root@IP_АДРЕС -p НОМЕР_ПОРТА 

Не забудьте заменить «IP_АДРЕС» и «НОМЕР_ПОРТА» на соответствующий IP-адрес вашего сервера и номер порта SSH.

Перед началом установки вам необходимо обновить пакеты ОС до последних версий. Это легко сделать, и это не займет больше нескольких минут.

Вы можете сделать это, выполнив следующую команду:

 yum update 

После завершения обновлений мы можем перейти к следующему шагу.

Шаг 2. Установите стек LAMP

Нам необходимо установить стек LAMP на сервер. Он состоит из Linux (который у нас уже есть), Apache, MySQL и PHP. Мы можем установить его, выполнив следующую команду:

 yum install httpd mariadb-server php php-cli php-common 

После установки всех пакетов запустите службы Apache и MariaDB:

 systemctl start httpd
systemctl запустить mariadb 

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

 systemctl enable httpd
systemctl enable mariadb 

Шаг 3: Настройка Apache

Нам нужно создать новый файл конфигурации Apache. Мы можем создать его с помощью следующей команды:

 nano /etc/httpd/conf.d/domain.com.conf 

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

 
    Администратор сервера [email protected]
    DocumentRoot "/var/www/html"
    DirectoryIndex index.html
    имя_сервера domain.com
    ErrorLog "/var/log/httpd/domain.com.error_log"
    CustomLog "/var/log/httpd/domain.com.access_log" общий
 

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

Затем создайте файл index.html для тестирования с помощью следующей команды:

 nano /var/www/html/index.html 

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

 
Тест — добро пожаловать на веб-сервер Apache.
 

Сохраните файл и измените владельца файла ‘/var/www/html/index.html’ на пользователя Apache, чтобы Apache мог прочитать файл:

 chown -R apache:apache /var/www /html/index.html 

Не забудьте заменить domain.com на вашим реальным доменным именем.
Теперь, когда у нас установлен Apache, мы можем продолжить и установить certbot .

Шаг 4: Установите Certbot

Нам нужно установить Certbot и включить модуль mod_ssl Apache на сервере. Certbot — это простой и удобный инструмент, упрощающий управление сервером за счет автоматизации получения сертификатов и настройки веб-служб для их использования.

По умолчанию пакет Certbot недоступен в репозитории ОС CentOS 7 по умолчанию. Нам нужно включить репозиторий EPEL, а затем установить Certbot.

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

 yum install epel-release 

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

 yum install certbot python2-certbot-apache mod_ssl 

После установки мы можем перейти к следующему шагу.

Шаг 5: Получите и установите SSL для вашего домена

Теперь, когда Certbot установлен, вы можете использовать его для получения и установки SSL-сертификата для своего домена.

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

 certbot --apache -d domain.com 

Мы также можем установить один сертификат для нескольких доменов и поддоменов, размещенных на сервере с ‘- d’, например:

 certbot --apache -d domain.com -d www.domain.com -d domain2.com -d test.domain2.com 

Нас попросят указать адрес электронной почты и согласиться условия обслуживания.

 Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log
Выбранные плагины: Apache Authenticator, Apache Installer
Введите адрес электронной почты (используется для срочного продления и уведомлений о безопасности) (введите «c», чтобы
отменить): [email protected]
Запуск нового соединения HTTPS (1): acme-v02.api.letsencrypt.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Пожалуйста, ознакомьтесь с Условиями обслуживания на
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017. pdf. Вы должны
согласиться, чтобы зарегистрироваться на сервере ACME по адресу
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A) grey/(C) анцель: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Не могли бы вы поделиться своим адресом электронной почты с Electronic Frontier?
Foundation, партнер-основатель проекта Let's Encrypt и некоммерческая
организация, разрабатывающая Certbot? Мы хотели бы отправить вам электронное письмо о нашей работе
шифрование в Интернете, новости EFF, кампании и способы поддержки цифровой свободы.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Д)да/(Н)о: Н
Запуск нового соединения HTTPS (1): supporters.eff.org
Получение нового сертификата
Выполнение следующих задач:
вызов http-01 для домена.com
Ожидание проверки...
Устранение проблем
Создал виртуальный хост SSL в /etc/httpd/conf.d/domain.com-le-ssl.conf
Развертывание сертификата на VirtualHost /etc/httpd/conf. d/domain.com-le-ssl.conf 

Введите Y и нажмите [Enter], и вы должны увидеть следующий вывод:

 Выберите, следует ли перенаправлять HTTP-трафик на HTTPS, удаляя HTTP-доступ.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Без перенаправления — больше не вносите изменений в конфигурацию веб-сервера.
2: Перенаправление — сделать так, чтобы все запросы перенаправлялись на безопасный доступ по протоколу HTTPS. Выберите это для
новые сайты, или если вы уверены, что ваш сайт работает на HTTPS. Вы можете отменить это
изменить, отредактировав конфигурацию вашего веб-сервера.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Выберите соответствующий номер [1-2], затем [введите] (нажмите «c» для отмены): 2 

Здесь вам нужно выбрать любой вариант, чтобы продолжить. Если вы выберете вариант 1, будет загружен только SSL-сертификат, и вам нужно вручную настроить Apache для использования SSL-сертификата. Если вы выберете вариант 2, он автоматически загрузит и настроит Apache для использования SSL-сертификата. В этом случае выберите вариант 2 и нажмите [Enter]. Когда установка будет успешно завершена, вы увидите сообщение, подобное этому:

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Поздравляем! Вы успешно включили https://domain.com 
 ВАЖНЫЕ ПРИМЕЧАНИЯ:
- Поздравляю! Ваш сертификат и цепочка сохранены по адресу:
/etc/letsencrypt/live/domain.com-0001/fullchain.pem
Ваш ключевой файл был сохранен по адресу:
/etc/letsencrypt/live/domain.com-0001/privkey.pem
Срок действия вашего сертификата истекает 22 октября 2019 г. Для получения нового или измененного
версия этого сертификата в будущем, просто снова запустите certbot
с опцией "конечно". Для неинтерактивного обновления *всех*
ваши сертификаты, запустите "certbot renew"
- Если вам нравится Certbot, рассмотрите возможность поддержки нашей работы:
Пожертвование в пользу ISRG / Let's Encrypt: https://letsencrypt.org/donate
Пожертвование в пользу EFF: https://eff.org/donate-le 

Сгенерированные файлы сертификатов доступны в каталоге /etc/letsencrypt/live/domain. com . Вы можете проверить только что созданный SSL-сертификат с помощью следующей команды:

 ls /etc/letsencrypt/live/domain.com/ 

Вы должны увидеть следующий вывод:

 cert.pem chain.pem fullchain.pem privkey.pem 

Шаг 6. Проверьте свой SSL-сертификат

Откройте веб-браузер и введите URL-адрес https://domain.com . Чтобы проверить сертификат SSL в Chrome, щелкните значок замка в адресной строке для https://domain.com и во всплывающем окне нажмите «Действителен» под приглашением «Сертификат».

Шаг 7. Настройка автоматического обновления

По умолчанию сертификаты Let’s Encrypt действительны в течение 90 дней, поэтому рекомендуется обновить сертификат до истечения срока его действия. В идеале было бы лучше автоматизировать процесс обновления, чтобы периодически проверять и обновлять сертификат.

Мы можем протестировать процесс обновления вручную с помощью следующей команды.

 certbot renew --dry-run 

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

Нужно быстрое и простое решение?

✔ Неограниченная управляемая поддержка

✔ Поддержка вашего программного обеспечения

✔ 2 ядра ЦП

✔ 2 ГБ ОЗУ

✔ 50 ГБ PCIe4 NVMe Disk

9 0002 ✔ 1854 Оценка GeekBench

✔ Неограниченная передача данных

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

Для этого отредактируйте crontab с помощью следующей команды:

 crontab -e 

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

 * */12 * * * root /usr/bin/certbot renew >/dev/null 2>&1 

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

Поздравляем! Мы успешно установили и настроили Let’s Encrypt с Apache на CentOS 7 VPS.


Конечно, вам не нужно устанавливать Let’s Encrypt на CentOS 7, если вы используете один из наших планов управляемого хостинга VPS, и в этом случае вы можете просто попросить наших опытных администраторов Linux установить Let’s Encrypt на вашем CentOS 7 VPS для ты. Они доступны 24×7 и немедленно позаботятся о вашем запросе.

PS . Если вам понравился этот пост , как установить Let’s Encrypt на CentOS 7 , или если вы нашли его полезным, поделитесь им с друзьями в социальных сетях, используя кнопки «Поделиться», или просто оставьте ответ ниже. Спасибо.

Как настроить виртуальные хосты Apache на CentOS 7

В этом руководстве мы начнем с пустого VPS со свежеустановленной CentOS 7 и закончим тремя разными сайтами с одним и тем же IP-адресом, размещенным на одном компьютере. .

Веб-сервер Apache анализирует заголовки HTTP-запросов и соответствующим образом подключает их к структуре каталогов внутри VPS. Технический термин для «сайтов» внутри коробок VPS — «виртуальный хост» — сервер является «хостом» для многих доменов одновременно, следовательно, они не настоящие, а только «виртуальные».

Посмотрим, как это делается.

Что мы рассмотрим

  • Создание пользователя без полномочий root
  • Установка Apache
  • Установка и настройка брандмауэра
  • Определение расположения файлов для страницы Apache по умолчанию
  • Создание файловой структуры для наших демонстрационных виртуальных хостов
  • Предоставление разрешений
  • Создание страниц index. html для наших демонстрационных сайтов
  • Создание файлов виртуальных хостов
  • Включение нового файла виртуального хоста с
  • Тестирование виртуальных хостов
  • Защита ваших доменов с помощью сертификатов Let’s Encrypt TLS

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

Мы будем использовать CentOS 7:

  • Начиная с чистого VPS с
  • Не менее 512 МБ ОЗУ и
  • 15 ГБ свободного места на диске
  • Вам потребуется доступ пользователя root через SSH
  • Два доменных имени указывают на IP-адрес вашего сервера с использованием записей A в службе DNS провайдер.
  • Мы используем nano в качестве предпочтительного редактора, и вы можете установить его с помощью этой команды:
 sudo yum install nano -y
 

Шаг 1. Обновите систему

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

 обновление sudo yum -y
судо перезагрузка
 

Завершение транзакции может занять несколько минут. Вы всегда можете остановить его, нажав Ctrl-C, но Centos позже, выполняя другую транзакцию, попросит вас сначала завершить эту транзакцию. Потерпи.

Шаг 2: Создайте пользователя с правами, отличными от root

Sudo уже установлен на Centos. Добавьте пользователя simpleuser и предоставьте ему доступ к команде sudo :

 adduser простой пользователь
 

Debian и Ubuntu автоматически запросят у вас пароль нового пользователя, но в Centos вы должны сделать это самостоятельно:

 passwd simpleuser
 

Добавить simpleuser в группу wheel :

 usermod -aG wheel simpleuser
 

Шаг 3: Очистка yum Cache

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

 sudo yum очистить все
 

Это также освободит место на диске или устранит ошибки из-за поврежденных файлов метаданных.

Типичный результат:

Шаг 4: Установка Apache

Установочные файлы Apache находятся в репозитории yum , поэтому для его установки более чем достаточно одной команды:

 sudo yum -y install httpd
 

Шаг 5: Установите firewalld в качестве нашего брандмауэра

Apache использует стандартные порты 80 и 443 для трафика HTTP и HTTPS соответственно.

Теперь давайте установим firewall-cmd , интерфейс командной строки для firewalld (демон firewalld) для CentOS. Он поддерживает как IPv4, так и IPv6, зоны брандмауэра, мосты и ipsets, позволяет использовать временные правила брандмауэра в зонах, регистрирует отклоненные пакеты, автоматически загружает модули ядра и так далее.

Установите его обычным способом, используя yum:

 yum install firewalld
 

Теперь запустим его, включим автозапуск при загрузке системы и посмотрим его статус:

 systemctl запустить firewalld
systemctl включить firewalld
systemctl статус firewalld
 

Брандмауэр сейчас работает:

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

 firewall-cmd --permanent --zone=public - -добавить-сервис=SSH
брандмауэр-cmd --zone=public --add-port=3000/tcp --постоянный
брандмауэр-cmd --zone=public --add-port=8080/tcp --постоянный
брандмауэр-cmd --permanent --zone=public --add-service=http
брандмауэр-cmd --permanent --zone=public --add-service=https
брандмауэр-cmd --перезагрузить
 

Мы добавили адреса 3000 и 8080 только в качестве примера и не будем использовать их в остальной части этого текста. Однако вам следует выяснить список портов, которые потребуются приложениям на вашем VPS, и поместить их в это точное место на потом.

ПРЕДУПРЕЖДЕНИЕ
Всегда включайте ssh , http , https и другие важные порты в ufw , иначе вы НЕ сможете Войдите обратно на свой сервер VPS и не увидите свой сайт!

Теперь мы можем запустить Apache:

 sudo systemctl start httpd
 

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

 sudo systemctl enable httpd
 

Мы можем проверить статус Apache:

 sudo systemctl status httpd
 

Это будет типичный вывод для состояния Apache:

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

 sudo systemctl остановить httpd
 

Настоящим испытанием успешной установки является возможность доступа к файлам с сервера через локальный браузер. Перейдите по этому адресу:

 http://ВАШ_ДОМЕН/
 

Вы должны увидеть страницу приветствия для Apache в CentOS, что означает, что теперь Apache работает на вашем VPS.

Шаг 6: Настройте SELinux

Вам также потребуется настроить SELinux (система безопасности в Centos), чтобы обеспечить нормальную работу Apache:

 sudo setsebool -P httpd_unified 1
 

Шаг 7: расположение файлов для страницы Apache по умолчанию . Новая установка Centos НЕ содержит ни одного такого файла в этом каталоге и настроена так, что в этом случае будет отображаться содержимое файла

 /usr/share/httpd/noindex/index.html.
 

Это страница с серым фоном и заголовком Testing 1 2 3, которую мы уже видели.

Давайте теперь установим страницу index.html в соответствующий корень документа, то есть /var/www/html . Создайте этот файл, открыв его в nano :

 sudo nano /var/www/html/index.html.
 

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

  01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<голова>
Документ без названия

<тип стиля="текст/CSS">



<тело>

Файл index.html корневого документа Centos 7

Введите адрес сайта в адресную строку браузера и получите это:

Каталоги и файлы index.html принадлежат пользователю root .

В CentOS 7 все файлы Apache хранятся в папке /etc/httpd :

 ls -la /etc/httpd
 

Теперь мы создадим каталоги Sites-Available и Sites-enabled , в которых будет храниться информация о существующих сайтах и ​​о сайтах, которым разрешено обслуживаться в Интернете, соответственно:

 sudo mkdir /etc/ httpd/доступные сайты /etc/httpd/sites-enabled
 

Вам также необходимо настроить Apache для их поиска, добавив строку конфигурации. Откройте основной файл конфигурации:

 судо нано /etc/httpd/conf/httpd.conf
 

Прокрутите файл до самого конца и добавьте следующую строку:

 IncludeOptional sites-enabled/*.conf
 

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

Вот что вы должны увидеть:

Добавив дополнительные файлы конфигурации в /etc/httpd/sites-available и создав соответствующие символические ссылки в /etc/httpd/sites-enabled , мы можем обслуживать разные страницы на разные домены. Вот как мы можем разместить несколько независимых сайтов с одного и того же IP-адреса.

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

  • созданию файловой структуры для каждого сайта,
  • заполнению HTML и других файлов на сайте,
  • созданию нового файла .conf в /etc/httpd/sites-available , и
  • создание новой символической ссылки в /etc/httpd/sites-enabled .

Apache сделает все остальное автоматически.

Шаг 8: Создание файловой структуры для наших демонстрационных виртуальных хостов

Мы создадим два виртуальных хоста с именами centos1.com и centos2.com . Они будут соответствовать записям DNS centos1.duskosavic.com и centos2.duskosavic.com , которые мы ранее сделали с помощью записей A у нашего поставщика услуг DNS. (Вместо этого вы должны ввести свои собственные домены сайтов.) Если мы сейчас перейдем на http://centos1.duskosavic.com/_ в браузере, по умолчанию index.html страница с базовой информацией об Apache будет снова обслуживаться.

Теперь давайте создадим каталог для нашего сайта centos1.com . Apache в Ubuntu хранит свои HTML-файлы по адресу /var/www/html , поэтому мы также можем использовать его для создания наших демонстрационных сайтов. Одна из возможностей — сделать эту папку верхней и поместить в нее демонстрационные сайты. С такими командами, как

 cd /var/www/html
sudo mkdir centos1.com
sudo mkdir centos2.com
лс -ла
 

у нас будет следующая структура каталогов:

Здесь мы выбираем другую возможность, а именно подняться на один уровень вверх по дереву каталогов и создать демонстрационные сайты в /var/www . Внутри папок centos1.com и centos2.com мы можем создать любую нужную нам структуру каталогов, например:

 cd /var/www
sudo mkdir -p /var/www/centos1.com/{public_html,private,log,cgi-bin,backup}
sudo mkdir -p /var/www/centos2.com/{public_html,private,log,cgi-bin,backup}
ЛС /var/www/centos1.com-ла
 

Шаг 9: Предоставление разрешений

На изображении выше мы видим, что пользователь root по-прежнему владеет папкой public_html , из которой наши общедоступные файлы будут передаваться в Интернет. Теперь мы изменим владельца, чтобы наш простой пользователь мог получить доступ к файлам public_html . Команды:

 sudo chown -vR apache:apache /var/www/centos1.com/public_html
sudo chown -vR apache:apache /var/www/centos2.com/public_html
 

Также убедитесь, что файлы в /var/www и его подпапках читаются правильно:

 sudo chmod -R 755 /var/www
 

Шаг 10: Создайте страницы index.html для наших демонстрационных сайтов

Наши общедоступные файлы будут расположены по адресу /var/www/centos1.com/public_html и /var/www/centos2.com/public_html . Теперь мы создадим index.html в каждой из этих двух папок, чтобы нам было что видеть во время просмотра. Используя nano , мы создадим index.html для centos1.com :

 sudo nano /var/www/centos1.com/public_html/index.html
 

Нам нужна только одна строка текста, желательно в формате h2 для лучшей читабельности. Вставьте следующий текст в nano , затем сохраните и закройте файл:

  01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<голова>
Название centos1.com

<тип стиля="текст/CSS">
тело, тд, й {
    цвет: #FF3333;
}

<тело>

Это сайт centos1.com

Создать index.html для centos2.com :

 sudo nano /var/www/centos2.com/public_html/index.html
 

и вставьте это в:

 

<голова>
Название centos2.com

<тип стиля="текст/CSS">
.style1 {цвет: #3333FF}

<тело>

Это сайт centos2.com

Шаг 11: Создание файлов виртуальных хостов

Теперь мы сообщим Apache, что есть два новых сайта, которые нужно обслуживать, создав два новых виртуальных хоста.

Шаг 11A: Создайте первый файл виртуальных хостов

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

 sudo nano /etc/httpd/sites-available/centos1.com.conf
 

Вставьте следующее (и измените доменные имена на свои):

 
    Администратор сервера [email protected]
    имя сервера centos1.com
    Псевдоним сервера centos1.duskosavic.com
    Псевдоним сервера www.centos1.com
    DocumentRoot /var/www/centos1.com/public_html
    #ErrorLog ${APACHE_LOG_DIR}/error.log
    #CustomLog ${APACHE_LOG_DIR}/access.log объединены

 

Вот подробное объяснение вышеуказанного виртуального хоста:

  • 80 : этот виртуальный хост будет прослушивать порт 80. Вы можете изменить номер порта через файл httpd.conf с помощью этой команды:
 sudo nano /etc/httpd/conf/httpd.conf
 

Вы найдете директиву Listen с указанным портом 80, и именно здесь вы можете настроить ее. Не забудьте после этого перезапустить Apache, запустив:

 sudo systemctl restart httpd
 
  • ServerAdmin : Это адрес электронной почты, на который Apache будет отправлять сообщения для администратора в случае ошибки в системе. Может быть опущен.
  • ServerName : Имя сервера, очевидно, оно должно совпадать с именем домена.
  • ServerAlias ​​ : Другое имя того же сервера, что и выше. Вы можете иметь столько псевдонимов, сколько захотите.
  • DocumentRoot : Указывает на абсолютный адрес сайта на диске.

Шаг 11B: Создайте второй файл виртуальных хостов

Сделайте то же самое для другого сайта/домена. Вот команды:

 sudo nano /etc/httpd/sites-available/centos2.com.conf
 

Это то, что вы должны вернуть вставить в nano :

 
    Администратор сервера [email protected]
    Имя сервера centos2.duskosavic. com
    Псевдоним сервера www.centos2.com
    DocumentRoot /var/www/centos2.com/public_html
# Журнал ошибок ${APACHE_LOG_DIR}/error.log
# CustomLog ${APACHE_LOG_DIR}/access.log объединены

 

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

Шаг 12. Включите новые файлы виртуального хоста

Вам нужно будет создать символические ссылки из site-enabled directory to site-available , поэтому Apache начнет обслуживать виртуальные хосты. Команды:

 sudo ln -s /etc/httpd/sites-available/centos1.com.conf /etc/httpd/sites-enabled/centos1.com.conf
sudo ln -s /etc/httpd/sites-available/centos2.com.conf /etc/httpd/sites-enabled/centos2.com.conf
 

Если вы хотите отключить сайт по умолчанию, введите следующую команду:

 sudo mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
 

Затем перезапустите Apache:

 sudo systemctl перезапустить httpd
 

Обязательно очистите кеш в вашем браузере, иначе он может начать обманывать вас старыми значениями вместо должным образом обновленных.

Шаг 13. Тестирование виртуальных хостов

Если вы оставили активным IP-адрес по умолчанию, в настоящее время будет отображаться экран «Добро пожаловать в Apache». Если вы введете адрес centos1.duskosavic.com , вы увидите это:

И введя centos2.duskosavic.com в браузере меняет изображение на:

Шаг 14: Защита ваших доменов с помощью Let’s Encrypt SSL

Мы можем использовать бесплатные сертификаты TLS от Let’s Encrypt для преобразования нашего HTTP-трафика в HTTPS-трафик, который сделает подключение к вашему сайту безопасным.

Certbot для CentOS 7 поступает из репозитория EPEL, который вам необходимо сначала установить:

 sudo yum install epel-release -y
 

Установить Certbot:

 sudo yum установить certbot python2-certbot-apache -y
 

Затем запустите Certbot:

 sudo certbot --apache
 

Он запросит ваш адрес электронной почты на случай чрезвычайной ситуации, затем еще два вопроса, на которые вы можете ответить по своему усмотрению, а затем самый важный вопрос — для каких имен вы хотите активировать HTTPS?

Выберите свой домен из списка.

Последний вопрос будет заключаться в том, хотите ли вы доступ по HTTPS или нет. Вы делаете, поэтому выберите 2.

Перезапустите Apache:

 sudo systemctl перезапустить httpd
 

В браузере перейдите по адресу

 http://centos1.duskosavic.com/
 

Мы ввели HTTP-адрес, и Apache автоматически перенаправляет на HTTPS, как и должно быть:

Вы заметите, что фактический адрес сайта начинается с HTTPS и что в адресной строке есть зеленый замок, означающий безопасное соединение.

Срок действия сертификатов Let’s Encrypt истекает через 90 дней. Certbot может автоматически продлевать их для вас, но для этого ему необходимо указать:

 echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null
 

Что вы можете сделать дальше

Мы показали, как разделить один IP-адрес на один, два, три или десятки или сотни независимых сайтов.