Як безкоштовно розмістити веб-сайт на домашній системі Debian

Термін веб-сервер може використовуватися для позначення як апаратного, так і програмного забезпечення, або того й іншого разом. У межах цього посібника ми зосередимося на програмній частині та розглянемо, як можна розмістити веб-сайт на вашому 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-адресу.

Поділіться своєю любов'ю

Залишити відповідь

1 Комментарий
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
VINRARUS

Я в себе на телефоні веб-сервер запускаю такою командою:

httpd -p 80 -h “/root/WWW”
й використовую його в основному як веб-галерею для фоток по wi-fi.

Движок сайту на shell у мене працює, генерує html відповідь браузеру клієнта.
А адресу в браузері ввожу просто через ір телефона в мережі.

Останнє редагування 1 рік тому від VINRARUS
1
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x