Как разместить веб-сайт бесплатно на вашей домашней системе Linux

Термин веб-сервер может использоваться как для обозначения аппаратного обеспечения, так и программного обеспечения, либо и того, и другого вместе. Для целей этого руководства мы сосредоточимся на программной части и посмотрим, как вы можете разместить веб-сайт на своем компьютере под управлением Linux.

A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.

A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.

Динамическим содержанием является содержание, которое часто изменяется или постоянно обновляется. Чтобы обслуживать динамическое содержимое, веб-сервер также должен работать с сервером баз данных и языками сценариев на стороне сервера.

Это руководство продемонстрирует, как настроить веб-сервер Apache для размещения веб-сайта на вашей системе Linux бесплатно.

Требования

Чтобы следовать этому руководству, убедитесь, что у вас есть следующее.

  • A dedicated Public IP address can be obtained from your ISP.
  • A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.

Посмотрите несколько руководств, которые могут дать вам представление о установке сервера Linux.

Вам также потребуется установленный сервер LAMP, что является аббревиатурой от Linux, Apache и MySQL (это также может быть MariaDB). Вот несколько руководств о том, как установить набор LAMP в Linux.Как установить LAMP на сервер Debian 11

В этом разделе мы продолжим и обсудим основные компоненты веб-сервера.

Что такое Apache?

Apache – это популярный бесплатный и открытый кроссплатформенный веб-сервер, который выпускается под лицензией Apache 2.0. Он является одним из самых широко используемых веб-серверов, занимая почти 32,2% рыночной доли веб-серверов.

Чтобы проверить последнюю версию Apache и установлен ли он на вашем сервере, выполните команду:

# apt-cache policy apache2 (On Debian-based OS)

Из вывода вы можете видеть параметр Installed: (none), что означает, что он еще не установлен. Вы также получаете информацию о последней версии, предлагаемой репозиторием Debian / Ubuntu, которая в данном случае составляет 2.4.52.

Check Apache Package Availability

На современных дистрибутивах Red Hat можно проверить наличие Apache с помощью следующей команды dnf.

# dnf search httpd
Search Apache Package Availability

Из вывода выше вы видите, что пакет Apache httpd доступен для загрузки. Если Apache не установлен в вашей системе, используйте менеджеры пакетов ‘apt‘ или ‘dnf‘ для установки Apache, как показано ниже. На системах, основанных на Debian: На системах, основанных на Red Hat:

На системах на базе Debian:

$ sudo apt install apache2 -y 	 
$ sudo systemctl start apache2	 
$ sudo systemctl enable apache2	 
$ sudo systemctl status apache2
Check Apache2 Status

На системах на базе Red-Hat:

# dnf install httpd -y 	 
# systemctl start httpd	 
# systemctl enable httpd	 
# systemctl status httpd
Check httpd Status

Что такое MariaDB?

A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.

Чтобы установить MariaDB, на системах на базе Debian:

	 
$ sudo apt install mariadb-server mariadb-client -y	 
$ sudo systemctl start mariadb	 
$ sudo systemctl enable mariadb	 
$ sudo systemctl status mariadb	 

Следующий вывод показывает, что MariaDB установлен и работает, как и ожидалось.

Check MariaDB Status

Чтобы установить MariaDB, на системах на базе RHEL:

	 
# dnf install mariadb-server -y	 
# systemctl start mariadb	 
# systemctl enable mariadb	 
# systemctl status mariadb	 
Verify MariaDB Status

Что такое 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 tarball с помощью команды wget.

$ wget https://wordpress.org/latest.tar.gz

После загрузки, извлеките сжатый файл с помощью команды tar.

$ tar -xvzf latest.tar.gz

Команда извлекает содержимое файла в папку с названием wordpress. Переместите или скопируйте папку в Document Root для веб-сервера 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

Затем обновите директивы имени базы данных, имени пользователя и пароля с подробностями базы данных.

Затем активируйте новый сайт 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]

Шаг 4: Завершение установки WordPress в браузере

Чтобы завершить установку, перейдите по IP-адресу вашего веб-сервера, как показано:

http://server-ip

Вы должны увидеть приветственную страницу WordPress, как показано. Выберите предпочитаемый язык и нажмите «Продолжить».

WordPress Installation Setup

Затем заполните данные сайта.

WordPress Site Details

Затем нажмите «Установить WordPress», чтобы завершить установку WordPress.

Install WordPress

Если все прошло правильно, вы получите подтверждение успешной установки. Чтобы войти, нажмите кнопку «Войти».

WordPress Admin Login

Это переносит вас на панель управления WordPress, как вы можете видеть. На этом этапе вы можете экспериментировать с различными темами, чтобы улучшить внешний вид вашего образца веб-сайта.

WordPress Admin Dashboard

Шаг 5: Доступ к WordPress с помощью перенаправления портов

Поскольку вы самостоятельно размещаете свой веб-сервер с Linux-системы дома или в своей локальной сети (LAN), следующим шагом является его доступность для внешних пользователей или пользователей вне вашей локальной сети (LAN). Вот где на помощь приходит перенаправление портов.

Перенаправление портов, также называемое отображением портов, — это техника, которая позволяет внешним устройствам получать доступ к серверам или ресурсам в рамках частной сети через интернет. Вся идея заключается в доступе к частным сетям извне, без чего это было бы невозможно, так как внешние устройства не могут общаться с внутренними IP-адресами.

В вашей настройке вам необходимо перенаправить порт, на котором работает веб-сервер, (в большинстве случаев это порт 80 для HTTP-трафика или 443 для HTTPS), а также статический частный IP-адрес веб-сервера.

Итак, войдите в свой маршрутизатор и перейдите в раздел перенаправления портов. В нашем примере мы используем маршрутизатор DLink, чтобы перенаправить порты веб-сервера (80 и 443) и частный IP (192.168.0.100) на выделенный общедоступный IP-адрес, назначенный поставщиком интернет-услуг.

В вашем случае укажите порты и частный IP веб-сервера и сохраните изменения.

Port Forwarding for WordPress

Для сохранения изменений может потребоваться перезагрузка маршрутизатора. Так что сделайте это.

Как только переадресация портов будет правильно настроена, теперь вы сможете достигать своего веб-сервера за пределами вашей сети с помощью публичного IP-адреса.

Вывод

В этом руководстве мы продемонстрировали, как вы можете самостоятельно разместить свой веб-сервер, используя Apache на компьютере под управлением Linux. Ваши отзывы по этому руководству приветствуются.

Source:
https://www.tecmint.com/host-website-locally/