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