Термін веб-сервер може використовуватися для позначення як апаратного, так і програмного забезпечення, або того й іншого разом. У межах цього посібника ми зосередимося на програмній частині та розглянемо, як можна розмістити веб-сайт на вашому Linux-комплекті.
Веб-сервер – це програма, яка отримує і відповідає на запити клієнтів за протоколами HTTP/HTTPS. Його основне завдання – відображати вміст сайту, який часто представлено у вигляді тексту, зображень і відео.
Веб-сервер може обслуговувати як статичний, так і динамічний вміст. Статичний контент, як випливає з назви, належить до контенту, який практично не змінюється і залишається незмінним. Сервер відправляє контент у браузер користувача в незмінному вигляді.
Динамічний контент – це контент, який часто змінюється або постійно оновлюється. Щоб обслуговувати динамічний вміст, веб-сервер повинен працювати разом із сервером баз даних і серверними мовами сценаріїв.
Ми вже розповідали Вам як налаштувати веб-сервер на вашому власному комп’ютері Linux у 2х частинах, ви їх можете подивитися нижче:
Як налаштувати веб-сервер на вашому власному комп’ютері Linux (частина 1)
Як налаштувати веб-сервер на вашому власному комп’ютері Linux (частина 2)
Вимоги
- Виділену публічну IP-адресу можна отримати у провайдера.
- Linux box, який може бути серверною установкою Linux з переважним варіантом ОС. У цьому посібнику ми будемо використовувати Debian 11.
Як розмістити веб-сайт на сервері Linux
Що таке Apache?
Apache – це популярний безкоштовний кросплатформений веб-сервер із відкритим вихідним кодом, що випускається під ліцензією Apache License 2.0. Це один з найбільш широко використовуваних веб-серверів, що займає майже 32,2% частки ринку веб-серверів.
Щоб перевірити, яка остання версія Apache доступна і чи встановлена вона на вашому сервері, виконайте команду:
# apt-cache policy apache2 (On Debian-based OS)
З висновку видно, що параметр Installed: (none) означає, що він ще не встановлений. Ви також отримуєте інформацію про останню версію, запропоновану сховищем Debian / Ubuntu, яка в даному випадку дорівнює 2.4.52.
У сучасних дистрибутивах Red Hat ви можете перевірити наявність Apache за допомогою такої команди dnf.
# dnf search httpd
З наведеного вище результату видно, що пакет Apache httpd доступний для завантаження. Якщо Apache не встановлено у вашій системі, використовуйте менеджери пакетів ‘apt’ або ‘dnf’ для встановлення Apache, як показано на малюнку.
На системах на базі Debian:
$ sudo apt install apache2 -y $ sudo systemctl start apache2 $ sudo systemctl enable apache2 $ sudo systemctl status apache2
На системах на базі Red-Hat:
# dnf install httpd -y # systemctl start httpd # systemctl enable httpd # systemctl status httpd
Що таке MariaDB?
Будучи розгалуженням MySQL, MariaDB – одна з найпопулярніших систем управління реляційними базами даних з відкритим вихідним кодом. Наразі їй віддають перевагу перед MySQL завдяки вищій швидкості реплікації та виконання запитів, а також безпеці та широкому набору движків для зберігання даних.
Щоб встановити MariaDB, у системах на базі Debian:
$ sudo apt install mariadb-server mariadb-client -y $ sudo systemctl start mariadb $ sudo systemctl enable mariadb $ sudo systemctl status mariadb
Наступний висновок показує, що MariaDB встановлена і працює, як очікувалося.
Щоб встановити MariaDB, У системах на базі RHEL:
# dnf install mariadb-server -y # systemctl start mariadb # systemctl enable mariadb # systemctl status mariadb
Що таке PHP?
PHP – це рекурсивна абревіатура від PHP Hypertext Preprocessor, що є популярною мовою сценаріїв загального призначення, яка використовується переважно у веб-розробці.
Щоб встановити PHP, у системах на базі Debian:
$ sudo apt update $ sudo apt upgrade $ sudo apt install ca-certificates apt-transport-https software-properties-common $ sudo add-apt-repository ppa:ondrej/php $ sudo apt update $ sudo apt install php8.0 libapache2-mod-php8.0
Щоб встановити PHP, у системах на базі RHEL необхідно спочатку ввімкнути репозиторій EPEL.
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9] $ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
Потім увімкніть репозиторій Remi, який пропонує останню версію PHP для систем на базі RHEL.
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [RHEL 8] $ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [RHEL 8]
Після того як репозиторії EPEL і Remi включені в систему, ви можете встановити PHP, як показано на малюнку.
# dnf module list php # dnf module enable php:remi-8.0 -y # dnf install php php-cli php-common
Встановивши всі компоненти, ви можете створити свій сайт за допомогою WordPress CMS, яка є програмним забезпеченням, що дає змогу користувачам легко розробляти й керувати сайтом без необхідності знання мов веб-дизайну, таких як HTML, CSS, PHP і Javascript.
Створення простого веб-сайту за допомогою WordPress у Linux
Для демонстрації ми встановимо WordPress на системи Debian 11 і RHEL 9, що забезпечить зразок веб-сайту, який надалі можна буде налаштувати на свій смак.
У цьому розділі передбачається, що у вас уже встановлено стек LAMP.
Крок 1: Встановлення додаткових модулів PHP
Щоб продовжити, встановіть додаткові модулі PHP, які потрібні WordPress, як показано на малюнку.
Щоб встановити модулі PHP, на системах на базі Debian:
$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath
Щоб встановити модулі PHP, У системах на базі RHEL:
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
Крок 2: Створіть базу даних для WordPress
Написаний на PHP, WordPress – це безкоштовна система управління контентом з відкритим вихідним кодом, керована даними. База даних є найважливішим компонентом WordPress.
База даних використовується для зберігання всіх записів блогу, сторінок, категорій, коментарів, тем, плагінів, а також файлів конфігурації WordPress.
Щоб створити базу даних для WordPress, увійдіть на сервер бази даних MariaDB:
$ sudo mysql -u root -p
Потім створіть базу даних, як показано на малюнку
CREATE DATABASE wordpress_db;
Потім створіть користувача бази даних і призначте йому всі привілеї на базі даних.
GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';
Потім перезавантажте таблиці грантів, щоб зберегти зроблені зміни, і вийдіть із бази даних.
FLUSH PRIVILEGES; QUIT;
Крок 3: Завантажити WordPress
Коли базу даних створено, завантажте останню версію файлу WordPress за допомогою команди wget.
$ wget https://wordpress.org/latest.tar.gz
Після завантаження розпакуйте стиснутий файл за допомогою команди tar.
$ tar -xvzf latest.tar.gz
Команда витягує вміст файлу в папку wordpress. Перемістіть або скопіюйте цю папку в корінь документа для веб-сервера Apache.
$ sudo mv wordpress/ /var/www/html/
Потім призначте наступні дозволи та права власності.
$ sudo chmod 755 -R /var/www/html/wordpress/ $ sudo chown -R www-data:www-data /var/www/html/wordpress/
Крок 4: Створення віртуального хоста Apache для WordPress
Термінологія віртуального хоста відноситься до практики розміщення декількох веб-сайтів на одному сервері. Якщо ви збираєтеся розмістити кілька сайтів на одному сервері, вам необхідно створити віртуальний хост для кожного сайту.
У цьому випадку вам потрібно створити віртуальний хост для сайту WordPress у такий спосіб.
$ sudo nano /etc/apache2/sites-available/wordpress.conf [On Debian] # vi /etc/httpd/conf/httpd.conf [On RHEL]
Вставте такі рядки коду для визначення віртуального хоста. Для директиви ServerName вкажіть IP-адресу сервера або повне доменне ім’я, яке має вказувати на виділену публічну IP-адресу.
<VirtualHost *:80> ServerAdmin admin@your_domain.com DocumentRoot /var/www/html/wordpress ServerName 192.168.0.100 <Directory /var/www/html/wordpress> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined </VirtualHost>
Збережіть зміни та вийдіть із файлу.
Щоб підключитися до бази даних, необхідно виконати деякі додаткові зміни. Отже, перейдіть у папку wordpress.
$ cd /var/www/html/wordpress/
Потім поновіть файл wp-config.php із вмістом файлу wp-config-sample.php.
$ cp wp-config-sample.php wp-config.php $ sudo nano wp-config.php
Потім поновіть директиви database name, db username і password, вказавши дані бази даних.
Потім увімкніть новий сайт WordPress наступним чином на системах на базі Debian.
$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf $ sudo a2ensite wordpress $ sudo a2enmod rewrite $ sudo a2dissite 000-default
Щоб зміни набули чинності, перезапустіть Apache.
$ sudo systemctl restart apache2 [On Debian] # systemctl restart httpd [On RHEL]
Крок 5: Завершіть налаштування WordPress у браузері
Щоб завершити налаштування, перегляньте IP-адресу вашого веб-сервера, як показано на малюнку:
http://server-ip
У вас має з’явитися сторінка привітання WordPress, як показано на малюнку. Виберіть бажану мову і натисніть ‘Continue’.
Потім заповніть дані про сайт.
Потім натисніть “Встановити WordPress”, щоб завершити встановлення WordPress.
Якщо все пройшло правильно, ви отримаєте підтвердження, що встановлення пройшло успішно. Щоб увійти в систему, натисніть кнопку “Увійти”.
У результаті ви потрапляєте на приладову панель WordPress, як ви бачите. На цьому етапі ви можете експериментувати з різними темами, щоб поліпшити зовнішній вигляд вашого зразка сайту.
Крок 6: Доступ до WordPress за допомогою переадресації портів
Оскільки ви самостійно розміщуєте свій веб-сервер на Linux-системі вдома або в локальній мережі (LAN), наступний крок – зробити його доступним для зовнішніх користувачів або користувачів за межами вашої локальної мережі (LAN). Тут на допомогу приходить перенаправлення портів.
Перенаправлення портів, також зване зіставленням портів, – це метод, що дає змогу зовнішнім пристроям отримувати доступ до серверів або ресурсів приватної мережі через Інтернет. Вся ідея полягає в тому, щоб отримати доступ до приватних мереж ззовні, без чого це було б неможливо, оскільки зовнішні пристрої не можуть взаємодіяти з внутрішніми IP-адресами.
У вашому налаштуванні вам необхідно вказати порт, який прослуховує веб-сервер (у більшості випадків це порт 80 для HTTP-трафіку або 443 для HTTPS), а також статичну приватну IP-адресу веб-сервера.
Отже, увійдіть у свій маршрутизатор і перейдіть у розділ Port forwarding. У нашому прикладі ми використовуємо маршрутизатор DLink для перенаправлення портів веб-сервера (80 і 443) і приватної IP-адреси (192.168.0.100) на виділену публічну IP-адресу, призначену провайдером.
У вашому випадку вкажіть порти і приватний IP веб-сервера і збережіть зміни.
Щоб зберегти зміни, може знадобитися перезавантаження маршрутизатора. Тому зробіть це.
Після того як перекидання портів буде виконано належним чином, ви зможете отримати доступ до вашого веб-сервера за межами вашої мережі через публічну IP-адресу.
Я в себе на телефоні веб-сервер запускаю такою командою:
httpd -p 80 -h “/root/WWW”
й використовую його в основному як веб-галерею для фоток по wi-fi.
Движок сайту на shell у мене працює, генерує html відповідь браузеру клієнта.
А адресу в браузері ввожу просто через ір телефона в мережі.