Зміст
Для адміністрування свого сайту на локальному сервері потрібна установка безлічі додаткових компонентів, які і організовують єдину систему, що функціонує злагоджено і без будь-яких помилок. Однією з головних складових такої структури можна вважати веб-сервер. Користувачі найчастіше вважають за краще задіяти саме Apache через його простоти і гнучкості настройки, а також можливості підключення зовнішніх модулів. Однак інсталяція та основна конфігурація &8212; процес не швидкий і для деяких навіть складний, тому ми б хотіли розповісти про це більш детально, взявши за приклад дистрибутив CentOS 7.
Встановлення Apache на CentOS 7
Структура сьогоднішньої статті буде поетапної, щоб навіть самий початківець юзер зрозумів, як саме здійснюється установка і підготовка розглянутого веб-сервера. Відразу уточнимо, що ми не надаємо посібників з детальної налаштування Apache, оскільки це залежить від особистих переваг користувача і наявних інших важливих компонентів. За цією інформацією завжди радимо звертатися до офіційної документації.
Крок 1: Підготовка та інсталяція
Почнемо відразу ж з установки компонентів, що відповідають за коректність роботи Apache і додавання всіх допоміжних служб. Задіяти для цього пропонуємо репозиторій дистрибутива, оскільки там завжди викладається остання стабільна версія софта, а сам процес інсталяції не займе багато часу.
- Запустіть &171;Термінал&187; , наприклад, через значок у розділі &171; Вибране & 187; .
- Якщо раніше на комп'ютері вже був встановлений Apache або ж ви випадково видалили один з його компонентів, просто використовуйте команду
sudo yum update httpd
, активувавши її натисканням на клавішу Enter . - Ця дія виконується від імені суперкористувача, а значить, доведеться підтвердити його, вказавши пароль від даного облікового запису.
- У разі установки оновлень ви будете повідомлені про це, а якщо пакет відсутній, то з'явиться інше повідомлення відповідного характеру.
- Тепер поговоримо про інсталяцію Apache з нуля. Як ми вже сказали, використовувати для цього будемо офіційні сховища, отже, потрібно ввести команду
sudo yum install httpd
. - При появі повідомлення про інсталяцію пакета підтвердіть його, вибравши варіант y .
- Очікуйте завершення встановлення, під час цього не закривайте поточну термінальну сесію, щоб не перервати процес.
- Після закінчення відразу ж рекомендується запустити веб-сервер, що можна зробити через
sudo systemctl start httpd
. - Перевірте поточний стан через
sudo systemctl status httpd
. - Повідомлення &171;Active: active (running)&187; має на увазі, що зараз Apache коректно функціонує і можна переходити до його подальшої Налаштування.
Це було все, що потрібно знати про основну процедуру встановлення веб-сервера. Як бачите, нічого складного в ній немає. Далі ми хочемо розповісти про взаємодію з головними службами і установці основної конфігурації, а вам залишається вирішити, чи варто вивчити дані інструкції або знання з налаштування та управління вже є.
Крок 2: управління службою Apache
Веб-сервер на CentOS, як і в інших дистрибутивах, функціонує у фоновому режимі як послуга. За замовчуванням вона додається в автозавантаження, а про активацію і перевірці стану ми вже розповіли раніше. Якщо у вас виникло бажання управляти даним інструментом, то здійснюється це так:
- Введіть
sudo systemctl stop httpd
для повної зупинки Apache. - Ця і всі наступні команди будуть виконуватися від імені суперкористувача, тому знадобиться підтвердити її, ввівши відповідний пароль.
- Перезапуск відбувається через команду
sudo systemctl restart httpd
. Актуальна ця команда в тих ситуаціях, коли сервер дає збої або потрібно перезапустити його через особливості взаємодії з іншими компонентами. - Використовуйте
sudo systemctl reload httpd
, якщо необхідно, щоб всі зміни після настройки вступили в силу, але при цьому жодне із з'єднань не було розірвано. - Команда
sudo systemctl disable httpd
прибирає Apache з автозавантаження, аsudo systemctl enable httpd
повертає стандартний стан. Додатково при включенні цієї опції ви будете повідомлені про створення нової символічної посилання, що відповідає за даний параметр.
Як видно, керують станом служби самі стандартні команди. Їх буде неважко запам'ятати, якщо ви часто змушені вдаватися до подібних заходів під час Адміністрування мережі, окремого сайту або будь-яких додатків.
Крок 3: Основна конфігурація
До базової конфігурації відноситься настройка віртуального хоста, який стане в нагоді для ізоляції налаштувань і розміщення різних доменів на одному сервері. Одного стандартного віртуального хоста цілком достатньо, якщо ви маєте справу тільки з одним сайтом, однак при реєстрації інших доменів доведеться вдатися до створення додаткових параметрів. Зараз за приклад ми візьмемо стандартний віртуальний хост, а ви зміните його адресу, якщо це потрібно.
- Почнемо зі створення каталогу, де будуть зберігатися всі дочірні файли віртуального хоста. Робиться це через команду
sudo mkdir -p /var/www/example.com/html
. - Необхідна і додаткова папка, куди будуть автоматично зберігатися журнали подій. Для її додавання введіть
sudo mkdir -p /var/www/example.com/log
. - Задайте стандартні права на директорію через
sudo chown -R $USER:$USER /var/www/example.com/html
. - Додатково встановіть і привілеї для кожного користувача, вставивши
sudo chmod -R 755 /var/www
. - Приступимо до створення зразка головної сторінки, яка буде виводитися на екран при перевірці працездатності хоста. Створіть новий текстовий файл через зручний редактор, наприклад, використовуючи nano, слід ввести
sudo nano /var/www/example.com/html/index.html
. - При відкритті текстового редактора з'явиться повідомлення про те, що це новий файл. Не переживайте, адже так і повинно бути. Ми спеціально створюємо його, виставляючи відповідну конфігурацію.
- Вставте туди наведений нижче код, замінивши стандартне привітання на довільний текст. Якщо хочете, можете повністю переробити структуру, створивши відповідну для себе сторінку.
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html></code>
- Збережіть зміни, натиснувши на Ctrl + O , а потім залиште текстовий редактор через Ctrl + X .
- Це були лише попередні налаштування. Тепер приступимо до самого віртуального хосту: спочатку потрібно вказати папки його зберігання. Для цього введіть
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
. - Після цього вкажіть веб-серверу, що зараз йому потрібно взаємодіяти і з іншими компонентами. Здійснюється це завдання через редагування головного конфігураційного файлу. Запустіть його через текстовий редактор, вказавши
sudo nano /etc/httpd/conf/httpd.conf
. - Опустіться в самий низ за списком і вставте рядок
IncludeOptional sites-enabled/*.conf
. - Перед виходом з текстового редактора не забудьте зберегти всі зміни.
- Для створення самого віртуального хоста знадобиться ще один конфігураційний файл. Створіть його через
sudo nano /etc/httpd/sites-available/example.com.conf
. - Вставте туди зазначене далі вміст, замінивши необхідні рядки на свої.
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com/html
ErrorLog /var/www/example.com/log/error.log
CustomLog /var/www/example.com/log/requests.log combined
- Залишається лише активувати файл, створивши символічне посилання через
sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
.
Крок 4: Налаштування контролю доступу
Якщо мова зайшла про налаштування глобальних параметрів, то необхідно забезпечити і контроль доступу, вказавши ряд користувачів, які зможуть вносити зміни в розглянуті раніше каталоги. Здійснюється ця процедура за допомогою стандартного інструменту SELinux, що відповідає за управління рівнями доступу.
- Встановіть глобальний параметр безпеки через
sudo setsebool -P httpd_unified 1
. Він забезпечить обробку всіх типів процесів як один. - Далі рекомендується перевірити поточні параметри SELinux, які були надані автоматично. Для цього напишіть
sudo ls -dZ /var/www/example.com/log/
. - В результаті ви побачите вміст drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/ . Воно означає, що зараз Apache може тільки читати ті файли, які були створені у встановленій папці, відповідно, доведеться міняти конфігурацію.
- Виконується це завдання через
sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"
. - Збережіть зміни та активуйте їх після перезавантаження сервера, ввівши
sudo restorecon -R -v /var/www/example.com/log
. - Тепер ще раз перевірте внесені зміни через
sudo ls -dZ /var/www/example.com/log/
. - Як бачите, результат має форму drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log , отже, все виконано вірно.
- Залишилося тільки протестувати всі зміни. Для цього введіть
sudo systemctl restart httpd
і натисніть на Enter . - Підтвердьте дію, вказавши пароль суперкористувача.
- Знову створіть запит для каталогу, ввівши
ls -lZ /var/www/example.com/log
. Якщо з'явилося вміст має формат-rw-r--r--. 1 root root error.log -rw-r--r--. 1 root root 0 requests.log
, отже, всі попередні налаштування були виконані правильно.
Ви були ознайомлені з процедурою інсталяції та загальної настройки веб-сервера Apache в CentOS 7. Як бачите, сама установка не займе багато часу, а всі складнощі пов'язані тільки з конфігурацією. Якщо представленого керівництва по зміні параметрів і управління Apache вам виявилося мало, радимо вивчити офіційну документацію, скориставшись посиланням нижче.