Для адміністрування свого сайту на локальному сервері потрібна установка безлічі додаткових компонентів, які і організовують єдину систему, що функціонує злагоджено і без будь-яких помилок. Однією з головних складових такої структури можна вважати веб-сервер. Користувачі найчастіше воліють залучати саме Apache через його простоти і гнучкості налаштування, а також можливості підключення зовнішніх модулів. Однак інсталяція і основна конфігурація - процес не швидкий і для деяких навіть складний, тому ми б хотіли розповісти про це більш детально, взявши за приклад дистрибутив CentOS 7.
Встановлюємо Apache в CentOS 7
Структура сьогоднішньої статті буде поетапною, щоб навіть самий досвідчений користувач зрозумів, як саме здійснюється установка і підготовка розглянутого веб-сервера. Відразу уточнимо, що ми не надаємо посібників з детальної налаштування Apache, оскільки це залежить від особистих переваг користувача і наявних інших важливих компонентів. За даною інформацією завжди радимо звертатися до офіційної документації.
Крок 1: Підготовка і інсталяція
Почнемо відразу ж з установки компонентів, що відповідають за коректність роботи Apache і додавання всіх допоміжних служб. Задіяти для цього пропонуємо репозиторій дистрибутива, оскільки там завжди викладається остання стабільна версія софта, а сам процес інсталяції не займе багато часу.
- запустіть «Термінал», Наприклад, через значок в розділі «Вибране».
- Якщо раніше на комп'ютері вже був встановлений Apache або ж ви випадково видалили один з його компонентів, просто використовуйте команду
sudo yum update httpd
, Активувавши її натисканням на клавішу Enter. - Ця дія виконується від імені суперкористувача, а значить, доведеться підтвердити його, вказавши пароль від облікового запису.
- У разі установки оновлень ви будете повідомлені про це, а якщо пакет відсутній, то з'явиться ще одне повідомлення відповідного характеру.
- Тепер поговоримо про інсталяції Apache з нуля. Як ми вже сказали, використовувати для цього будемо офіційні сховища, отже, потрібно ввести команду
sudo yum install httpd
. - При появі повідомлення про інсталяції пакета підтвердіть його, вибравши варіант y.
- Чекайте завершення установки, під час цього не закривайте поточну термінальну сесію, щоб не перервати процес.
- Після закінчення відразу ж рекомендується запустити веб-сервер, що можна зробити через
sudo systemctl start httpd
. - Перевірте поточний стан через
sudo systemctl status httpd
. - сповіщення «Active: active (running)» має на увазі, що зараз 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 вам виявилося мало, радимо вивчити офіційну документацію, скориставшись посиланням нижче.