Термин веб-сервер может использоваться как для обозначения аппаратного обеспечения, так и программного обеспечения, либо и того, и другого вместе. Для целей этого руководства мы сосредоточимся на программной части и посмотрим, как вы можете разместить веб-сайт на своем компьютере под управлением 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.
- Как установить минимальный сервер Debian 11 (Bullseye)
- Как установить минимальный сервер Debian 10 (Buster)
- Как установить сервер Ubuntu 20.04
- Как установить сервер Rocky Linux 9
- Как установить сервер AlmaLinux 9
- Как установить RHEL 9 бесплатно
Вам также потребуется установленный сервер LAMP, что является аббревиатурой от Linux, Apache и MySQL (это также может быть MariaDB). Вот несколько руководств о том, как установить набор LAMP в Linux.
- Как установить LAMP на сервере Debian 10
- Как установить стек LAMP в Ubuntu 20.04
- Как установить LAMP на Rocky Linux 9/8
- Как установить стек LAMP в AlmaLinux 9/8
- Как установить LAMP на RHEL 9/8
- Как разместить веб-сайт на сервере Linux
В этом разделе мы продолжим и обсудим основные компоненты веб-сервера.
Что такое Apache?
Apache – это популярный бесплатный и открытый кроссплатформенный веб-сервер, который выпускается под лицензией Apache 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?
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 установлен и работает, как и ожидалось.

Чтобы установить 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 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», чтобы завершить установку WordPress.

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

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

Шаг 5: Доступ к WordPress с помощью перенаправления портов
Поскольку вы самостоятельно размещаете свой веб-сервер с Linux-системы дома или в своей локальной сети (LAN), следующим шагом является его доступность для внешних пользователей или пользователей вне вашей локальной сети (LAN). Вот где на помощь приходит перенаправление портов.
Перенаправление портов, также называемое отображением портов, — это техника, которая позволяет внешним устройствам получать доступ к серверам или ресурсам в рамках частной сети через интернет. Вся идея заключается в доступе к частным сетям извне, без чего это было бы невозможно, так как внешние устройства не могут общаться с внутренними IP-адресами.
В вашей настройке вам необходимо перенаправить порт, на котором работает веб-сервер, (в большинстве случаев это порт 80 для HTTP-трафика или 443 для HTTPS), а также статический частный IP-адрес веб-сервера.
Итак, войдите в свой маршрутизатор и перейдите в раздел перенаправления портов. В нашем примере мы используем маршрутизатор DLink, чтобы перенаправить порты веб-сервера (80 и 443) и частный IP (192.168.0.100) на выделенный общедоступный IP-адрес, назначенный поставщиком интернет-услуг.
В вашем случае укажите порты и частный IP веб-сервера и сохраните изменения.

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