8. Учимся оперировать сайтами (виртуальными хостами) Apache
Ну что, к счастью для многих, мы закончили относительно нудную процедуру установки операционного окружения WordPress и сейчас уже перейдём к более интересной практической части — его настройке.
В статье под номером 6 данной темы мы установили www-сервер Apache версии 2.4.54 (увидеть, какая версия установлена можно всегда при помощи команды: apache2 -v), проверили, что он отзывается на запрос от www-клиента (браузера) по ip-адресу, но остался открытым вопрос, а как собственно говоря, создавать, запускать, останавливать, удалять, одним словом — оперировать, сайтами, которые мы планируем размещать на этом сервере. Именно этому вопросу и будет посвящена данная статья.
Прежде чем перейти к собственно данному вопросу, отметим, что Linux (как и любая Unix-подобная ОС), не имеет некоего единого файла (или базы данных), в котором задаются все или почти все настройки системы, как это делается в реестре (registry) Windows. Единственное, что объединяет разные настройки Linux, так это то, что они все находятся в разных файлах внутри одной директории /etc системного раздела. Это и преимущество Linux (если полетит какой-то файл настроек, то максимум, что произойдёт, так это отказ сервиса, настройки которого полетели, а сама система и все остальные сервисы будут работоспособны), и его недостаток, так как нужно копаться в огромном количестве файлов и знать их структуру. Что тут, скажешь, c’est la vie — такова жизнь!
Кстати, здесь будет уместным отметить, что начало бурного развития Интернет-технологий, приходящееся на конец 80-х, начало 90-х годов прошлого века и происходящего благодаря усилиям компаний, продвигающих различные варианты OC UNIX и её стек интернет-протоколов TCP/IP, компания Microsoft как бы прозевала, продолжая развивать свой сетевой протокол IPX. Когда же она поняла, что недооценила TCP/IP (а произошло это только в версии Windows 95), то настолько быстро его внедрила, что использовала для локальной настройки доменных имён не какой-нибудь параметр реестра, а точно такой же файл, как и в Unix-подобных системах /etc/hosts, который в Windows располагается по следующему пути: «%SYSTEMDRIVE%:\Windows\system32\drivers\etc\hosts».
Этот файл в обычной работе применяется крайне редко или даже вообще не применяется и является пустым. Однако он имеет очень важное значение и позволяет заменять для вашей конкретной машины основную работу dns-сервера, заключающуюся в подмене исмволического имени соответствующим ip-адресом. Скажем больше, даже если dns-сервер доступен и работает, но у вас для данного доменного имени есть запись в файле hosts, то она будет иметь приоритет и разрешение доменного имени будет происходить не на основе ответа dns-сервера, а на основе этой записи.
Нужно понимать, что к ресурсам в интернете обращаются не только и не столько по ip-адресам, сколько по символическим названиям и не только потому, что человеку сложнее запомнить последовательность из 12 цифр (если мы ведём речь о протоколе IP версии 4), чем некое алфавитно-цифровое название, которое, кстати может состоять всего из трёх букв (например адрес поисковой системы Google в Китае таков: g.cn), но и потому, что цифровых адресов не хватает, и на одном цифровом адресе могут в реальности находится тысячи символических. Это на первый взгляд не очень понятно, так как исторически первая и самая главная задача символических имён заключалась в необходимости избавить человечество от требования запоминать цифровые ip-адреса (интересно, что сегодняшнее поколение молодых людей уже настолько обленилось, что благодаря многочисленных мощным поисковым сервисам уже даже и символические имена сайтов не запоминает). Дело в том, что с некоторых пор на первый план вышло второе практическое значение символических имён, позволяющее как бы использовать разные названия одного и того же физического или псевдо-физического ресурса (ip-адреса), что в свою очередь позволило на одном web-сервере с одним ip-адресом держать тысячи разных сайтов. Делается это благодаря тому, что web-сервер тесно взаимодействует с dns-сервером, используя так называемые привязки ( bindings) доменных имён, а не только ip-адрес.
Таким образом, исходя из вышеизложенного материала, мы можем уже попробовать создать на некотором тестовом домене простенький одностраничный статический сайт, выдающий сакральную фразу «Привет, Мир», впервые использованную в книге-учебнике Брайана Кернигана «Введение в язык B» («A Tutorial Introduction to the Language B, Brian Kernighan, 1972«). Займёмся этим. В принципе, создать такой сайт мы могли бы сразу после установки Apache, а установка MySQL и PHP нам была нужна для создания сложных динамических сайтов, использующих базу данных и (или) серверное программирование.
Выберем произвольное доменное имя, скажем site-1.sysadmin.bz и пропишем его в файле C:\Windows\System32\drivers\etc\hosts на машине, с которой будет осуществляться запуск браузера (в нашем случае — машине с ОС Windows) для чего запустим простейший редактор файлов, например Notepad (Блокнот) от имени администратора, выберем файл и добавим в его конец строку:
По умолчанию сайты в Debian Linux размещаются в каталоге (папке, директории) /var/www. Сразу после установки web-сервера Apache там появился подкаталог html, в котором, в свою очередь один файл index.hml. Именно он открывался когда мы обращались из web-браузера по адресу: http://192.168.1.11 и выдавал приветствие от web-сервера Apache (смотрите в статье под номером 5 этой же рубрики).
Теперь создадим в каталоге /var/www (например, при помощи клавиши F7 в Midnigt Commander) подкаталог site-1.sysadmin.bz, а в нём файл index.html со следующим содержимым:
Казалось бы всё, теперь при обращении из браузера на хост-машине по адресу http://site-1.sysadmin.bz мы увидим приветствие в стиле, общепринятом с легкой руки Кернигана для первой программы, написанной на любым язвке программирования. Однако это не так, и мы снова видим ту же страницу «Apache2 Debian Default Page», что и при обращении по ip-адресу. Дело в том, что для получения нашего приветствия ещё нужно создавать виртуальный хост Apache, который будет привязан к нужному нам доменному имени. Вот создание виртуального хоста и будет равносильно созданию сайта. Приступим к этому.
Когда речь идёт о Debian Linux или любом другом варианте, основанном на Debian (например Ubuntu), то нужно будет проделать некоторые манипуляции в каталоге /etc/apache2:
Сначала нужно создать в подкаталоге sites-available новый файл с именем, которое позволит вам в дальнейшем не запутаться, а потому лучше один в один как имя домена, но обязательно с расширением .conf, содержимое которого базируется на шаблоне 000-default.conf:
а потом символическую ссылку на только что созданный файл из каталога sites-enabled:
Можно воспользоваться для этого Midnight Commander, а можно и командой ln. Главное, чтобы на вышеприведённом экране справа в окне рядом со ссылкой @000-default.conf появилась новая @site-1.sysadmin.bz.conf, при попытке просмотра которой открывался соответствующий файл с левого окна.
Вот теперь, как бы всё, осуществляем перезапуск сервера Apache одной из предназначенных для этого команд, например /etc/init.d/apache2 restart, пробуем снова зайти на сайт по адресу http:///site-1.sysadmin.bz и вуаля, видим необходимое сакральное приветствие.
Отметим ещё, что Apache содержит несколько полезных команд, которые иногда удобнее использовать, чем заниматься файлами. Например, создать или удалить символическую ссылку (фактически как бы создать условия для запуска или остановки сайта после перезагрузки Apache) можно при помощи команд:
a2ensite site-1.sysadmin.bz
a2dissite site-1.syadmin.bz
Соответственно команды a2enmod и a2dismod позволяют подключать или отключать внешние модули Apache2. Например, для WordPress будет нужен внешний модуль rewrite, который позволяет использовать семантические URL и подключается он командой a2enmod rewrite.
Вопросом, связанным с сопоставлением ip-адресу некоего символического имени, занимаются специальные серверы (сервисы) доменных имён DNS, которые осуществляют анализ имени справа налево и обращаются к ответственным за зону 1-ого уровня корневым DNS-серверам, которые, в свою очередь потом переправляют запрос к ответственным за зону 2-ого уровня и т.д. до тех пор, пока один из серверов в цепочке чётко и ясно не укажет, какой именно ip-адрес соответствует данному символическому имени благодаря тому, что именно на нём будет указана соответствующая запись.
Если вы хотя бы вкратце знаете теорию ip-сетей версии 4, то понимаете, что ip-адреса могут быть так называемыми белыми. то есть такими, которые могут проходить через маршрутизаторы по всему миру, и серыми, которым дорога в белую зону закрыта. Используемая обычно большинством домашних компьютеров сеть класса С 192.168.1/24 относится к классу серых ip-сетей и доступ из неё в Интернет и к ней из Интернета не возможен без специальных ухищрений, широко применяемых сегодня.
Что касается, того, как же тогда работает у вас на компьютере Интернет, ответим, что с большой вероятностью при помощью маскарада благодаря протоколу NAT, либо при помощи прокси-сервера, суть которых с точки зрения маршрутизации заключается в том, что вместо вашего реального ip-адреса (у нас 192.168.1.11 на виртуальной машине) в интернет подсовывается адрес вашего маршрутизатора, который уже имеет белый ip-адрес (динамический или статический) .
А что до доступа извне к вашему компьютеру, то тут нужен будет, во-первых только статический ip-адрес на вашем маршрутизаторе (отдельная услуга у провайдера), и во-вторых настройка проброса портов (организация обратного прокси-сервера) на нём.
Если вы не собираетесь предоставлять интернет-сервисы наружу (в интернет), а вам достаточно того, чтобы скажем ваш WordPress-сайт был доступен вашим домочадцам из домашней локальной сети или сослуживцам из корпоративной локальной сети, то вам вообще говоря нет необходимости покупать домен и вы можете использовать любой, какой вам заблагорассудится.
apt install gnupg2
Далее нам нужно скачать файл ключа https://packages.sury.org/php/apt.gpg:
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
sh -c 'echo "deb [signed-by=/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
7. Завершаем установку LAMP
Итак, как было сказано ранее, для того, чтобы завершить подготовку необходимого для WordPress операционного окружения, нам осталось установить серверный язык PHP. Давайте приступим к этой задаче.
Вообще говоря, PHP можно установить одной командой: apt install php
, но тогда поиск пакетов будет осуществляться в основном репозитории Debian GNU/Linux 11, а там самой последней версией будет 7.4.
Пакеты же реально последней существующей на данный момент версии PHP размещаются в отдельном репозитории, который ведёт Ondřej Surý, по адресу: https://packages.sury.org/php/dists/bullseye/main/debian-installer/binary-amd64/ и они подписаны цифровой подписью GnuPG (GNU Privacy Guard) версии 2, поддержку которой мы в нашей системе ещё не ставили, поэтому, первым делом запускаем команду установки соответствующего модуля (пакета):
apt install gnupg2
Далее нам нужно скачать файл ключа https://packages.sury.org/php/apt.gpg:после чего переходим с помощью {Ctrl, O} в наш менеджер файлов, переименовываем файл на deb.sury.org-php.gpg, так чтобы было понятно, к какому пакету он относится и перекидываем в каталог /etc/apt/trusted.gpg.d, предназначенный специально для доверенных gpg-ключей:
Далее нам потребуется в локальный репозиторий нашей системы Debian GNU/Linux 11 вписать ссылку на репозиторий Surý, то есть как бы интегрировать его, но для того, чтобы сделать это автоматически и безошибочно, нужно будет запустить скрипт, определяющий код реальной версии Debian GNU/Linux, работающей у вас на машине с помощью модуля «lsb-release», поэтому сначала нужно будет установить его и некоторые другие разрешающие зависимости пакеты командой:
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
Теперь можно запустить и сам shell-скрипт:
sh -c 'echo "deb [signed-by=/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
выглядящий несколько замысловато, но проделывающий очень простую работу по добавлению нового файла php.list с одной строкой в каталог /etc/apt/sources.list.d:
В принципе, если вы уверены, что у вас именно bullseye, то проще создать такой файл вручную с помощью того же Midnigh Commander.
Как бы всё, подготовка к установке закончена, запускаем теперь обязательно команду: apt update
, а затем apt upgrade
(если предыдущая команда указала на возможность что-то реально обновить), после чего apt install php8.1
, и если вы всё до этого делали правильно, то пакет установится без ошибок и предупреждений.
Установка поддержки самого PHP очень важна, но недостаточна. Для подавляющего большинства приложений нужны будут модули расширений. Мы продемонстрируем здесь установку некоторых наиболее важных из них, так чтобы было понятно, как, в случае необходимости, устанавливать другие.
Вопрос расширений php, которые могут потребоваться для WordPress, обсуждается на следующей странице официальной документации CMS https://make.wordpress.org/hosting/handbook/server-environment/, где рекомендуется установить как минимум 23 расширения. Мы считаем, что некоторые из них вам могут никогда не понадобиться, однако помните, что если WordPress ведёт себя неадекватно, то первое, что должно мелькнуть в ваших мыслях, а не нуждается ли он в каком-либо расширении php, которое ещё не установлено.
Давайте, для примера, сначала установим одно расширение, позволяющее работать с zip-архивами. Делается это простой командой: apt install php8.1-zip
. На следующем снимке с экрана мы проверяем на всякий случай, всё ли хорошо у нас было с установкой сервера PHP 8.1 командой: php -v
, убеждаемся что всё нормально, после чего запускаем установку расширения:
Далее установим ещё одно расширение mbstring, от которого зависит ряд других, с использованием ключа «-y», позволяющего избавиться от назойливого вопроса: «Хотите продолжить? [д/н]»:
Как видите, всё прошло гладко. Теперь научимся устанавливать целый ряд крайне важных расширений одной командой: apt install php8.1-xml php8.1-intl php8.1-imagick
Здесь мы, что естественно, привели на снимке с экрана не всю выдаваемую информацию, однако главное в том, что расширения установились без единой ошибки, о чём свидетельствует отсутствие красных строк.
На этом статью об установке и настройке PHP, как о компоненте LAMP, можно закончить.
6. Устанавливаем и настраиваем СУБД MySQL
Настал черёд установки MySQL, предпоследнего элемента нашей LAMPы. Дело это непростое и кропотливое, так что налейте себе чашку ароматного кофе и приготовьтесь к длинной беседе.
В дальнейшем мы теперь всегда будем считать, что установленная нами в предыдущих статьях виртуальная машина с гостевой ОС Debian Linux 11 (bullseye) запущена и у вас открыт сеанс работы с ней по протоколу ssh, в котором запущен менеджер файлов Midnight Cоmmander (помним, что в любой момент можно с помощью комбинации клавиш {Ctrl, O} переключаться в режим командной строки и обратно).
Первое, что нам нужно будет сделать, это скачать последний стабильный дистрибутив (apt-репозиторий) СУБД MySQL с официального сайта проекта, зайдя на него по адресу: https://dev.mysql.com/downloads/repo/apt:
Обращаем внимание на то, что указано на этой странице касательно проверки целостности пакета и понимаем, что нам нужно установить пакет GnuPG, что и делаем в первую очередь с помощью команды: apt install gnupg
Скачать дистрибутив можно при помощи веб-браузера в Windows, но тогда он попадёт к вам на хост-машину, а потом его придётся перекидывать по протоколу SFTP на гостевую (например, при помощи очень полезной утилиты WinSCP), поэтому здесь мы применим более правильный в данной ситуации подход и скачаем файл прямо из командной строки Linux командой: wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb
Теперь полученный файл нужно будет распаковать при помощи команды: dpkg -i mysql-apt-config_0.8.23-1_all.deb
, запуск которой приводит к появлению следующего экрана:
где можно выбрать другой (кластерный) вариант установки сервера, но мы оставляем всё как есть, выбираем «ОК» и нажимаем «Enter»:
Результатом работы команды dpkg является появление нового файла mysql.list в локальном репозитории apt, расположееном в каталоге /etc/apt/sources.list
:
Всё, теперь можно устанавливать СУБД MySQL при помощи команды: apt install mysql-server
, предварительно запустив на всякий случай сначала: apt update
и apt upgrade
, если это окажется необходимым:
Заметим здесь, что мощнейшая современная утилита APT (Advanced Packaging Tool). пришедшая на смену apt-get, на самом деле как бы сама может скачивать и распаковывать пакеты Debian при помощи специальных ключей, и многие даже не знают, что делает она это обращаясь к тем же wget и dpkg. Наша цель показать вам как можно глубже анатомию процессов и думается, что на примере устанвоки MySQL нам это удастся.
Итак, запускаем установку и на предупреждение о том, готовы ли вы к тому, что этот процесс отнимет у вас 290 мегабайт на жёстком диске, конечно же отвечаем согласием «д»:
На вопрос о пароле для пользователя root придумываете и вводите сложный пароль и подтвержаете его, а на вопрос о методе аутентификации по умолчанию соглашаетесь с использованием плагина, работающего на основе более безопасного алгоритма хеширования, версии 2 (SHA-256), хотя WordPress и не поддерживает его. Позже мы объясним, как решать это вопрос.
Всё, если в процессе установки на чёрном экране не появилось никаких строк другого цвета, кроме белого, то на этом установка MySQL завершается и всё выгдядит относительно просто, однако дьявол, как говорится, в деталях, а именно в настройке MySQL, к которой и приступим.
Для начала проверим, всё ли действительно хорошо с нашей установкой:
Если у вас также, как и у нас, значит всё отлично, если нет, то смотрим журнал ошибок, находящийся в файле /var/log/mysql/error.log. Если там указана проблема, то ищем её решение в интернет.
Заметим, что при нормальном завершении установки журнал должен выглядеть следующим образом:
Итак, мы установили MySQL и убедились, что установилось всё корректно. Теперь нам будет нужен удобный инструмент, заменяющий (а точнее дополняющий) возможности стандартного клиента mysql, работающего из командной строки. В последних версиях СУБД в состав дистрибутива входит MySQL Workbench — мощная программа с графическим интерфейсом, пользоваться которой можно с любой машины, откуда доступен установленный нами сервер по нужному порту (по умолчанию 3306).
Давайте скачаем MySQL Workbench, скопируем скачанный файл mysql-workbench-community-8.0.30-winx64.msi
в наш каталог дистрибутивов D:\Distrib.dsk
после чего запустим и проведём установку по умолчанию в режиме complete (полная установка) на нашей host-машине. Результатом будет следующее окно, где будет сказано, что MySQL Workbench не смог найти ни одного запущенного MySQL-сервера и это правильно, так как по умолчанию к серверу есть доступ только с той машины, на которой он установлен и, кроме того, к нему нельзя соединяться удалённо при помощи логина root:
Первое, что нам нужно будет сделать для того, чтобы преодолеть данные препятствия (а они необходимы для улучшения безопасности), так это открыть доступ к серверу с хост-машины, а можно и вообще с вашей внутренней сети 192.168.1/24, если вы уверены в том, что в ней не будут работать злоумышленники (в случае домашней сети речь о ваших домочадцах, а в случае рабочей — о ваших сотрудниках). Для этого с помощью Midnight Commander находим на сервере файл /etc/mysql/mysql.conf.d/mysqld.cnf, нажимаем F4 для вызова редактора, добавляем в конец файла строку: bind-address=0.0.0.0
и сохраняем изменения:
Второе, что нужно будет сделать — это завести с помощью утилиты командной строки другой логин, который не такой очевидный, как root, и дать ему все права на управление СУБД. Делается это следующей последовательностью действий:
1) запускаем команду linux shell: mysql --user=root --password
, что позволяет зайти нам на сервер под логином root и получить доступ к выполнению команд MySQL;
2) запускаем уже sql-команду : create user 'ваш-логин'@'%' identified by 'ваш-пароль';
3) проверяем, появился ли пользователь sql-командой: SELECT User, Host FROM mysql.user;
4) даём все права на все базы sql-командой: grant all privileges on *.* to 'ваш-логин'@'%';
5) инициируем права sql-командой: FLUSH PRIVILEGES;
6) возвращаемся в linux-shell командой exit
;
Отметим, что излагаемый здесь материал подразумевает, что вы находитесь в DMZ (то есть к вам с внешней сети невозможно зайти по любому порту, кроме 80) и вам нет смысла устанавливать и настраивать Firewall (Брэндмауэр), однако, если он у вас всё же стоит, то нужно будет обязательно открыть порт 3306.
Теперь перезапускаем MySQL-сервер командой: service mysql restart
и возвращаемся к окну MySQL Workbench, где нужно будет выбрать меню Database-Connect to Database или сразу нажать комбинацию клавиш {Ctrl,U}:
В открывшемся окне нужно ввести правильно логин, который вы создавали вышеприведённой sql-командой create user и адрес виртуальной машины (у нас 192.168.1.11), а далее в следующем окне пароль пользователя, и если всё, что описано выше, было сделано верно, то вы успешно соединитесь с СУБД и получите основное рабочее окно MySQL Workbench:
Здесь можно видеть, что у нас ещё нет созданных баз данных (схем), но если нажать на кнопку «Users and Privileges», то появится список пользователей, среди которых будут созданные нами и автоматически созданные системой. Для нас тут будет представлять интерес разница между пользователем root и пользователем, под именем которого мы соединились с MySQL:
Как видите, у пользователя root разрешение только на вход с localhost, а у созданного вами пользователя %, что означает отовсюду.
Кроме того, когда мы будем создавать пользователей для конкретных баз данных, то будем выбирать Authentification Type: «Standard», поскольку, как уже говорилось, WordPress не поддерживает SHA 2.
Обратим ещё ваше внимание но то, что если нажать на кнопку «Server Status», то можно увидеть подробную информацию о состоянии сервера MySQL, что бывает очень полезным.
Также заметим, что MySQL Workbench — достаточно новая программа-клиент MySQL и пока ещё сыровата, что проявляется в разного рода «странностях» при работе с ней. Если у вас такое произошло, произведите обновление вида или пересоединитесь. Коме того, рекомендуется постоянно обновлять это приложение. В любом случае, не забывайте, что у вас всегда есть в распоряжении инструменты командной строки.
На этом мы заканчиваем статью об установке и настройке СУБД MySQL, но к материалу, изложенному здесь будем ещё не раз возвращаьться, когда речь пойдёт об установке конкретных сайтов, построенных на CMS WordPress.
5. Очередь дошла до установки www-сервера
Итак, после того, как мы установили Linux, следующей нашей целью является web-сервер Apache.
Однако, прежде чем его устанавливать, нам нужно будет потрудиться установить и настроить себе простейшее окружение для работы с Linux. В предыдущей статье мы показали, что к командной строке Linux shell можно получить доступ с помощью Менеджера Hyper-V, однако делать это мы будем только тогда. когда по той или иной причине не будут доступны другие средства. Если вы были внимательны, то заметили, что наряду с ядром Linux и основными утилитами, мы установили ещё и ssh-сервер. Пришло время этим воспользоваться. Вы можете установить любой ssh-клиент, который вам по душе и к которому вы привыкли, например, мы предпочитаем обычно старый добрый PuTTY, однако здесь мы покажем, как использовать родные средства Windows:
Если наша виртуальная машина выключена, то запускаем её как показывалось в предыдущей статье (Кнопкой «Пуск» во вкладке «Действия»), при этом кнопку «Подключить» нажимать не нужно;
-
- Нажимаем на комбинацию клавиш {Windows,R}, набираем cmd, нажимаем на Enter (или мышью на кнопку «ОК»), после чего проверяем связь с виртуальной машиной, набрав и выполнив в появившемся окне на чёрном экране команду
ping ip-адрес-виртуальной-машины
- Если команда ping отработала (то есть от гостевой ОС Linux есть ответ), то набираем следующую команду:
ssh ваш-логин-в-Linux@ip-адрес-виртуальной-машины
: - На появившийся вопрос отвечаем утвердительно, то есть набираем yes и жмём Enter;
- Теперь достаточно ввести верно ваш пароль и вы в командной строке Debian/GNU Linux 11:
- Операционная система Debian GNU/Linux постоянно развивается, поэтому, даже если вы ещё вчера установили её, то уже сегодня имеет смысл получить информацию о доступных обновлениях пакетов программ, и делается это при помощи команды:
sudo apt update
,а результатом её работы может быть совет по запуску обновления того или иного пакета или нескольких пакетов, что можно сделать посредством команды:sudo apt upgrade
- В принципе, уже после этого можно приступить к установке сервера Apache, однако потом нам придётся много работать с файлами и чтобы не делать это каждый раз с командной строки, имеет смысл поставить файловый менеджер, а поскольку мы не будем ставить никаких систем поддержки графических интерфейсов (они попросту не нужны для наших целей), то выбор невелик и ставить нужно Midnight Commander, который распространяется по той же лицензии GNU GPL и позволяет нам сильно упростить многие операции с файлами, в том числе их просмотр и редактирование, при всём при этом, что самое замечательное, не отвергая возможности использования командной строки, так как всегда можно перейти к ней при помощи комбинации клавиш {Ctrl, O}, не запуская отдельного процесса и тем самым выполняя команды в привилегированном режиме не вводя их каждый раз в виде параметра команды «sudo»
- Итак, запускаем установленный Midnight Commander командой:
sudo mc
, вводим последний раз (по крайней мере до его закрытия) пароль и любуемся стандартным синим двухоконным менеджером файлов с интерфейсом, известным нам ещё с 1986 года благодаря Norton Commander. Далее, поскольку менеджер файлов сейчас нам не нужен, нажимаем {Ctrl, O} и попадаем снова в командную строку Unix shell (стоит заметить, что нажав в любой момент на эту же комбинацию клавиш, мы снова можем быстро вернуться к Midnight Commander, что крайне удобно) - Теперь мы готовы к установке web-сервера, но прежде чем его установить, для того, чтобы был очевидней результат попробуйте в любом интернет-браузере вашей локальной сети ввести адрес: «http://192.168.1.11» и убедитесь, что будет выдана диагностика «Попытка соединения не удалась», что естественно, так как нет сервера, который должен отвечать на http-запросы.
- Всё, набираем в командной строке:
apt install apache2
- На вопрос отвечаем утвердительно, набрав букву «д» и нажав на Ввод (Enter), что приведёт к тому, что необходимые пакеты установятся в вашу систему и Linux shell будет готов принимать очередные команды.
- Если вы всё сделали правильно, то на этом процесс установки web-сервера Apache заканчивается, а для проверки нужно найти страницу браузера. где вам выдавалась ошибка соединения, нажать {Ctrl, F5} и увидеть такую картинку:
- Обратите внимание на то, что к серверу пока можно обращаться только по протоколу http: и только по ip-адресу, а о том, как настроить сервер для работы с https, а также так, чтобы он откликался на имена доменов поговорим в одной из следующих статей, где будет обсуждаться тема создания и настройки сайтов на web-сервере Apache установленной нами ветки 2.4.x
- У нас всё прошло гладко, сервер установился и запустился без единого сообщения, однако на практике, в зависимости от тех или иных обстоятельств, установленный вами сервер может выдать предупреждение или даже сообщение об ошибке запуска, и тут нужно будет изучать журнал ошибок, для чего нажимаем на комбинацию клавиш {Ctrl, O), заходим в каталог \var\log\apache2\, находим в нём файл error.log, жмём F3, изучаем ошибку по её номеру, ищем варианты решения проблемы в Интернет (или на сленге «гуглим проблему»), решаем её, а затем проверяем решение при помощи следующей команды:
systemctl status apache2.service -l --no-pager
и только если она не выдаёт никаких красных строк, можно считать, что вы завершили установку web-сервера.
- Нажимаем на комбинацию клавиш {Windows,R}, набираем cmd, нажимаем на Enter (или мышью на кнопку «ОК»), после чего проверяем связь с виртуальной машиной, набрав и выполнив в появившемся окне на чёрном экране команду
4. Ставим гостевую ОС, первый шаг к цели
Итак, настала пора перейти к нашей практической цели: установке WordPress, а, как мы писали в первой статье, первым шагом к достижению этой цели является установка Linux.
Мы будем устанавливать Debian Linux 11 с кодовым именем bull’s-eye (яблочко). Почему именно эту версию?
Во-первых это самый последний на момент написания статьи устойчивый (стабильный, проверенный) свободно-распространяемый официальный дистрибутив Debian Linux.
Во-вторых Debian Linux — операционная система, проверенная временем, обладающая самым мощным набором пакетов программ и, в силу всего этого, наиболее подходящая для нашей цели, однако это не значит, что вы обязательно должны ставить именно её — если у вас есть опыт и уверенность, то можете ставить любую Unix-подобную ОС, главное чтобы вы смогли поднять на ней web-сервер, php и MySQL. Можно даже установить Windows, поднять MySQL на нём и заставить работать PHP c Internet Information Services, причём автор имеет опыт в этом направлении и именно поэтому предлагает не искать приключений, а пойти по первому пути.
Таким образом, начинаем действовать:
- заходим по ссылке;
- находим кнопку скачивания нужного нам дистрибутива для архитектуры AMD64:
- нажатие на неё приведёт к скачиванию необходимого iso-образа дистрибутива:
- находим этот файл в каталоге «Загрузки» и переносим его в ваш каталог дистрибутивов, например, как мы в каталог (директорию, папку) «D:\Distrib.dsk»;
- запускаем Диспетчер Hyper-V описанным в предыдущей статье способом: нажатием комбинации клавиш {Windows, R}, набором virtmgmt.msc и нажатием Enter;
- в появившемся окне Диспетчер Hyper-V (Hyper-V Manager в английском варианте) видим установленную нами в предыдущей статье виртуальную машину с именем WordPress-01 и любым способом выбираем пункт меню «Параметры» этой виртуальной машины (например, через контекстное меню, как на снимке ниже, или через меню «Действия» или правую вкладку «Действия»:
- здесь нам нужно будет установить DVD-привод, в который мы будем «вставлять» скачанный образ дистрибутивного DVD-диска, для чего нажимаем кнопку «Добавить»:
- выбираем DVD-дисковод и снова жмём на «Добавить»
- далее указываем полный путь к скачанному нами файлу образа устанавливаемой операционной системы Debian 11 либо найдя и выбрав его с помощью кнопки «Обзор», либо просто набрав D:\Distrib.dsk\debian-11.4.0-amd64-netinst.iso
- теперь определяем порядок просмотра устройств для загрузки — нам нужно, чтобы DVD-дисковод был первым:
- следующим крайне важным моментом является отключение режима безопасной загрузки, ибо иначе у вас не получится установить Linux, так как он её не поддерживает (снимаем птичку):
- всё, подготовительный этап на этом завершён, теперь возвращаемся в меню Диспетчер Hyper-V, выбираем нашу виртуальную машину и сначала запускаем её кнопкой «Пуск»,
а затем подключаемся к ней кнопкой «Подключить», в результате чего у вас должно появиться новое окно с запущенной установкой ОС Debian 11: - если оно не появилось, то проверьте, выбрали ли вы верный порядок просмотра устройств при загрузке виртуальной машины, первым должен быть DVD-привод со смонтированным iso-образом дистрибутива Debian GNU/Linux 11, после чего инициируйте перезагрузку симулируя нажатие комбинации (Ctrl, Alt, Del} с помощью меню «Действие»:
- Итак, уже можно установить ОС, выбрав пункт меню «Install», однако если вы хотите иметь возможность выбрать именно такую конфигурацию, которая вам нужна, то всегда выбирайте «Advanced options …», а затем «… Expert install», что приведёт вас к большому числу промежуточных меню, большая часть из которых интуитивно понятна и позволяет вам специфицировать многие параметры системы, но некоторые меню требуют пояснения, чем мы сейчас и займёмся, предварительно обратив ваше внимание на то, что для перехода от поля к полю здесь нужно будет использовать клавишу табуляции, а для подтверждения выбора клавишу «Enter»:
- пункт «Загрузка компонентов с установочного носителя» вызовет следующее новое окно:
где нам не нужно ничего выбирать, а просто нажать на Enter, перейдя на кнопку «Продолжить» при помощи клавиши табуляции; - пункт «Настройка сети»
предполагает запрос на разрешение автоматически назначить ip-адрес через dhcp, на что нужно ответить отказом, после чего последуют обычные вопросы об ip-адресе, маске сети, шлюзе и dns-сервере, на которые мы в нашем случае внешнего виртуального коммутатора должны отвечать таким образом, как если бы к тому же коммутатору, к которому подключена ваша физическая машина с основной операционной системой, была бы подключена ещё одна машина, например стандартным ответом будет следующий:- ip-адрес: 192.168.1.11
- маска подсети: 255.255.255.0
- шлюз: 192.168.1.1
- dns-серверы: 192.168.1.1
- настройка сети заканчивается просьбой ввести имя компьютера (у нас WordPress-1):
и имя домена (имеется ввиду dns-имя), в который вы хотите включить эту машину - далее последует группа вопросов, связанных с пунктом меню «Настройка учётных записей пользователей и паролей», где мы подтверждаем использование теневых паролей, запрещаем вход в систему под логином «root», придумываем и вводим логин и пароль;
- настройку времени делаем так, как предлагает система, то есть подтверждаем использование NTP и выбираем ваш часовой пояс;
- далее остановимся на разметке дисков, где выбираем второй вариант (шифрование нам ни к чему, так как мы не собираемся хранить файлы с документами в системе)
а, в новом окне выбираем для простоты «Все файлы в одном разделе» - теперь нужно будет задать имя (например WordPress-1-Volumes) и размер (max) группы томов:
- на следующий важный вопрос отвечаем утвердительно, несмотря на предупреждение:
подтверждаем запись изменений на диск и переходим к этапу установки базовой системы и пакетов программ, где соглашаемся со всеми предложениями системы, то есть по сути всё время жмём на Enter, кроме экрана выбора ПО, где проставляем птички следующим образом:
-
остался последний шаг, установка загрузчика, на что мы соглашаемся:
после чего может последовать вопрос, на который важно ответить утвердительно, иначе система может не загрузиться; - всё, после этого будет ещё всего два экрана, один информационный:
и один, требующий действия, суть которого ясна из контекста: - Если всё, что написано выше было сделано верно, то переходим в окно «Параметры» Диспетчера Hyper-V и вновь смотрим на верный порядок загрузки, где микропрограмма загрузки EFI находится в отдельном файле и он указан первым для просмотра (если у вас не так, то система может не загрузиться),
после чего инициируем запуск гостевой операционной системы кнопкой «Пуск» и соединяемся с ней кнопкой «Подключить» из вкладки «Действия» Диспетчера Hyper-V, и если всё было сделано верно, то должно появиться новое окно со следующим содержимым:
которое означает не что иное, как успешное завершение процесса установки Debian GNU/Linux в минимально необходимой нам конфигурации.
- пункт «Загрузка компонентов с установочного носителя» вызовет следующее новое окно:
3. Основы CMS WordPress, выбираем и ставим VMM (гипервизор)
В предыдущей статье было обосновано, что LAMPу лучше всего ставить на виртуальную машину. А для этого нужно сначала установить на ваше оборудование один из вариантов гипервизора или, что то же, монитора виртуальных машин VMM (Virtual Machine Monitor).
Для тех, кто не знаком с соответствующей теорией, мы рекомендуем почитать главу 7 книги-учебника Таненбаума и Боса «Современные операционные системы».
Нам здесь достаточно будет привести несколько определений.
Основной или базовой (Host OS) операционной системой называется операционная система, общающаяся непосредственно с аппаратурой компьютера.
Гостевой (Guest OS) называется операционная система, установленная на виртуальной машине.
Как видно из приведённой выше схемы, существует три типа виртуализации:
- Случай, когда гипервизор работает непосредственно на аппаратуре, фактически выполняя ряд функций обычной операционной системы.
- Случай, когда гипервизор работает как приложение в основной операционной системе и не является её частью
- Гибридный вариант, когда гипервизор работает как отдельный сервис в рамках основной операционной системы и является её частью.
Поскольку мы действуем в предположении, что и рабочая станция и сервер у нас должны располагаться на одном и том же компьютере, то гипервизор первого типа для нас не подходит. Отметим только, что если всё же вы готовы выделить отдельный компьютер под сервер, то непременно ставьте VMM первого типа, так как он зарекомендовал себя как очень надёжный и быстрый механизм поддержки работы виртуальных машин. Особо выделим, что даже у коммерческих продуктов типа Windows, гипервизор первого типа Hyper-V Server 2019, который, в частности, используем и мы в своей работе, является бесплатным свободно распространяемым продуктом высокого класса для серьёзных предприятий, при применении которого лицензионные требования возникают только по отношению к гостевым операционным системам.
Так уж исторически произошло, что большинство персональных компьютеров в России (да и в мире вообще) работает на одной из версий ОС Windows. Причин тому можно назвать много. Приведём лишь три из них. Первая и самая главная, это гениальный коммерческий талант Билла Гейтса, основателя компании Микрософт. Вы только почитайте вот эту статью, где очень хорошо описан этот момент. Вторая, не менее важная, очень высокое качество набора инструментов Microsoft Office. Именно благодаря второму моменту более безопасное и мощное семейство ОС Linux никак не может похвастаться таким количеством клиентов. Ну и третий момент — это количество и разнообразие разработанного программного обеспечения для ПК с архитектурой Intel x86 (IA-32) или AMD64 и OC Windows намного больше, чем для других архитектур и операционных систем. В частности, если драйвер рассматривать тоже как программное обеспечение, то вероятность того, что ваша видеокарта, любая другая плата расширения или периферийное оборудование, будут иметь адекватно работающий драйвер под Windows намного выше, чем вероятность наличия такового под другую ОС.
Исходя из этого, мы сейчас научимся ставить гипервизор третьего типа на ПК с OC Windows версии 8.0 или старше. Но это не значит, что вы тоже обязательно должны ставить именно Windows Hyper-V VMM. Если у вас установлен Linux, то мы можем посоветовать очень хорошо себя зарекомендовавшую систему виртуализации Proxmox Virtual Environment. В общем-то, можете использовать любой гипервизор, к которому лежит у вас душа и который работает на вашей ОС, как основной (Host OS).
Итак, мы действуем в предположении, что у вас на компьютере есть установленная версия Windows не младше Windows 8 Professional (Windows Server 2008 для серверной линейки), процессор имеет хотя бы 2 ядра и поддерживает виртуализацию, а оперативной памяти достаточно, чтобы можно было что-то выделить под гостевую операционную систему (по хорошему, ПК должен иметь не менее 8 Gbyte RAM для этого). Кроме этого, понятное дело, нужно чтобы на винчестере было достаточно места для установки гостевой операционной системы и самого гипервизора, так что нам будет нужен ПК с объёмом винчестера минимум 512 GB. Все эти требования с лихвой удовлетворяются средним современным ПК, так что фактически всё это не является проблемой.
Порядок действий таков:
- нажимаем комбинацию клавиш: {Windows, R}, набираем appwiz.cpl, жмём «ОК»;
- в появившемся окне:
выбираем «Включение или отключение компонентов Windows» из меню слева;
- в появившемся новом небольшом окне ставим птичку в квадрате (checkbox) напротив Hyper-V и нажимаем «ОК»;
- дожидаемся установки компоненты и при появлении нижеследующего окна жмём на кнопку «Перезагрузить сейчас»:
- после того, как система полностью перезагрузится, в меню средств администрирования системы появятся два новых пункта «Диспетчер Hyper-V» и «Быстрое создание Hyper-V», и вы можете ими воспользоваться, однако поскольку в разных версиях Windows меню выглядят по-разному, то я предпочитаю, и вам советую всегда пользоваться комбинацией клавиш: {Windows, R}, после чего набирать virtmgmt.msc и жать на «ОК», ибо это всегда работает во всех версиях одинаково и, самое главное, вам не придётся терять время на поиски нужных пунктов меню;
- в появившемся окне Диспетчер Hyper-V (Hyper-V Manager в английском варианте):
- вы уже можете увидеть возможность создать виртуальную машину, однако перед тем, как её реализовать, важно проделать подготовительную работу, а именно: создать виртуальный коммутатор, для чего нажимаем на кнопку «Диспетчер виртуальных коммутаторов» в секции или меню «Действия»:
- выбираем тип из появившегося меню, для чего крайне важно понимать различие типов виртуальных коммутаторов:
- первый вариант, внешняя сеть, говорит о том, что виртуальные машины будут в той же сети, что и физическая машина с основной ОС, то есть фактически мы будем иметь как бы ещё один или несколько ip-адресов (по количеству создаваемых виртуальных машин), привязанных к тому же физическому адаптеру, что и хост-машина — наиболее часто используемый вариант и он подходит для наших целей;
- второй вариант, внутренняя сеть, подразумевает создание некоей сети, которая предназначена только для взаимодействия виртуальных машин друг с другом, а также с хост-машиной, но другие компьютеры в физической сети не будут иметь к ней доступа — не так часто используемый вариант, подходит для нас только в том варианте, когда сайт с WordPress установлен на физической машине с основной ОС (Host OS), а база данных на виртуальной машине с гостевой ОС;
- ну и третий, самый редкий вариант, когда сеть организуется только между виртуальными машинами, а доступа даже к хосту основной ОС нет — используется в основном для целей тестирования и отладки тех или иных сервисов, которые в случае использования в коммутаторах первых двух типов могут навредить вовлечённым в повседневную работу процессам, доступ к виртуальной машине в такой сети возможен только средствами Диспетчера Hyper-V, так что этот вариант сети напоминает VPN
- итак, мы выбираем первый вариант и нажимаем на кнопку «Создать виртуальный коммутатор», что приводит к появлению следующего окна:
- здесь мы введём имя нашего виртуального коммутатора (например «Hyper-V Virtual Switch #1»), напишем примечание (например, «Виртуальный коммутатор для доступа к виртуальной машине WordPress») и нажмём на клавишу «ОК» (если для ваших целей нужно определить номер VLAN, то это можно сделать с помощью соответствующего флажка, но мы не будем это делать, так как это выходит за рамки излагаемого материала и только отметим, что данная возможность, позволяет изолировать создаваемую виртуальную локальную сеть от остальных сетей, предоставив ей отдельный номер, причём так, что все сетевые устройства и, в частности, виртуальные машины с одним номером VLAN, будут работать в некой единой воображаемой виртуальной локальной сети, независимо от того, где они находятся)
- в результате появится следующее промежуточное предупреждающее окно:
- здесь очень важно, чтобы вы знали текущую конфигурацию вашей сети, для чего как обычно запустите соответствующую оснастку (snap-in) Windows комбинацией клавиш {Windows, R} и вводом ncpa.cpl, после чего просмотрите конфигурацию (особенно DNS) и запомните на случай, если её нужно будет восстанавливать;
- если вы готовы, то нажмите на кнопку «Да» и у вас через секунд 5-10, появится ещё одно сетевое устройство vEthernet (Hyper-V Virtual Switch #1) в выводе результата работы оснастки «ncpa.cpl», которое перенесёт на себя ip-настройки вашего физического сетевого адаптера:
- если не учесть этого момента, то легко можно запутаться — ещё раз, теперь ваш физический сетевой адаптер, к которому вы привязывали виртуальный коммутатор, будет использовать только компоненту связи с расширяемым управляемым виртуальным коммутатором 2-ого уровня Hyper-V и драйвер протокола LLDP, а все его бывшие сетевые настройки автоматически перекочуют на новое виртуальное сетевое подключение, имеющее указанное вами при создании виртуального сетевого коммутатора имя (на практике статические настройки dns не переносятся и их приходится вносить вручную, ибо без правильной настройки dns, как вы понимаете, у вас мало что будет работать):
- помимо этого, как вы можете видеть на приведённом чуть выше снимке с экрана, если у вас Windows 10 или старше, в списке сетевых устройств сразу после установки компоненты (роли) Hyper-V, появился ещё и новый виртуальный сетевой адаптер vEthernet (Default Switch), который не имеет прямого отношения к обсуждаемой нами теме создания внешнего виртуального коммутатора, а используется по умолчанию для внутренних виртуальных коммутаторов и обеспечивает функционирование механизма NAT, позволяющего даже в этом случае организовать функционирование интернет на гостевой операционной системе.
- всё, теперь мы будучи готовы к установке виртуальной машины, возвращаемся к окну Диспетчера Hyper-V (Hyper-V Manager) и выбираем из меню (или секции) «Действия» (Actions) подменю «Создать-Виртуальная машина» (New-Virtual Machine):
- в очередном окне читаем информацию, ставим птичку в квадратике (checkbox),
чтобы в следующий раз она не выдавалась и жмём на клавишу «Далее» (Next), а не «Готово» (Finish) — привыкните не искать быстрых и лёгких путей там, где это не стоит делать, чтобы потом долго не разгребать то, что сделает система автоматом по умолчанию;
- в следующем окне нужно будет ввести имя вашей виртуальной машины (у нас WordPress-01)
- а также определить место в файловой системе основной операционной системы (Host OS), где будут размещаться виртуальные машины — можно оставить путь по умолчанию (как на снимке с экрана), а можно ввести свой путь, например D:\Hyper-V или вообще выделить отдельный логический диск под виртуальные машины, критически важным здесь является скорость и надёжность соответствующего раздела файловой системы основной операционной системы;
- после нажатия на кнопку «Далее» (Next) система предложит нам выбрать поколение создаваемой виртуальной машины — выбирайте поколение 2 для современных операционных систем (мы будем ставить в качестве гостевой ОС Debian Linux 11, bullseye, и Hyper-V поддерживает виртуальные машины 2-ого поколения для этой ОС (смотрите эту статью);
- следующее окно процесса установки предложит вам определить количество оперативной памяти (RAM), которое вы готовы выделить для запуска виртуальной машины (естественно, что отобрав её у хост-машины) — для наших целей желательно 4096, а лучше, выделите 8192, если вам позволяет конфигурация хоста, и оставьте включённым флаг «Использовать для этой виртуальной машины динамическую память»;
- после нажатия на кнопку «Далее» (Next) следующее, что нам нужно будет сделать, так это выбрать сетевой адаптер, через который будет работать новая виртуальная машина — благо мы его предварительно создали и остаётся только выбрать его из списка:
- на предпоследнем шаге определяем местонахождение файла, содержащего виртуальный жёсткий диск виртуальной машины — здесь опять-таки можно оставить всё по умолчанию, а можно указать и свой путь, например «D:\Hyper-V\Virtual Hard Disks», делая упор на скорость и надёжность устройства (мы тоже предпочитаем хранить саму виртуальную машину и её диск в одной отдельной быстрой и надёжной каталожной структуре, но здесь как на снимке с экрана демонстрируем вариант по умолчанию);
- что касается размера виртуального жёсткого диска то всё зависит от того, что за операционная среда будет стоять на виртуальной машине, для наших целей будет достаточно и значения по умолчанию, но всё же лучше указать 256 ГБ, особенно, если учитывать то, что на нашей виртуальной машине будет размещаться не только собственно LAMPa, но и несколько сайтов со своими базами данных;
- ну и в последнем, завершающем окне мы ничего не меняем, так как учиться устанавливать гостевую ОС будем в следующей статье, а просто нажимаем «Далее»
- получаем совсем уже последнее информационное окно:
- обращаем внимание на то, где по умолчанию располагается файл, содержащий наш виртуальный жёсткий диск, нажимаем кнопку «Готово» (Finish) и на этом завершаем процесс создания новой виртуальной машины Hyper-V.
2. Основы CMS WordPress, выбираем HSP
Перечисленное в первой статье операционное окружение «LAMP» предъявляет некоторые требования к железу (hardware), на котором оно будет стоять. Обсудим здесь этот вопрос.
Вопрос этот довольно серьёзный, так как от подхода к его решению во многом зависит успех вашего предприятия (имеется ввиду ваше намерение создать и непрерывно поддерживать в работоспособном состоянии один или несколько сайтов на WordPress).
Всё во-многом, конечно же зависит от того, что за сайты вы будете разрабатывать. Если речь идёт о сайтах-визитках, состоящих из одной страницы (landing page), то это одно дело, а если речь идёт об интернет-магазинах, а тем паче целых интернет-порталах, то другое. Однако, в любом случае нужно понимать, что есть некие минимальные требования. В принципе LAMP можно поставить на самую обычную современную (и даже не очень) рабочую станцию (персональный компьютер). Важно понимать, что нам совсем не нужны графические возможности от операционной системы Linux и ставить мы будем только ядро и несколько важных дополнительных утилит с интерфейсом в виде командной строки.
Все элементы LAMP изначально имели довольно скромные требования к аппаратному обеспечению. Исходя из этого вам может показаться, что для WordPress вполне подойдёт некий виртуальный хостинг. Поверьте нашему опыту — не подойдёт, по очень многим причинам, самая главная из которых заключается в том, что вам предоставляется виртуальная машина с конкретным операционным окружением (в смысле версий тех же Linux, Apache, MySQL и PHP). А WordPress — это живая постоянно развивающаяся система, которая точно так же как и, скажем, Windows, постоянно обновляется, а для того, чтобы перейти на новую версию WordPress вам зачастую нужно будет обновить php, а для того, чтобы обновить php, иногда нужно обновить ядро Linux, а сделать это на виртуальном хостинге вы сами не сможете. Можно попросить сделать это техподдержку, но она делает это планово, только тогда, когда это нужно многим, и вообще очень неохотно.
Можно возразить и сказать, а зачем было обновлять WordPress, меня и так всё устраивало. Что ж, да — именно такого же мнения придерживался и автор этих строк, пока его сайт в один прекрасный момент не сломали. Нужно отдавать себе отчёт в том, что WordPress — это ПО со свободно распространяемым исходным кодом и поэтому оно очень уязвимо. Скажу больше, есть некая статистика, которая говорит о том, что как только происходит обновление той или иной системы, улучшающее её безопасность, через неделю старая версия системы уже подвергается мощным атакам. Так студенты отделений безопасности учатся находить уязвимости и хорошо, если среди них не будет злоумышленников. И не нужно думать, что простенький сайт из одной страницы не будет взломан — для роботов всё равно. Уж по крайней мере спам будет приходить регулярно, и весь этот мусор будет писаться в базу данных вашего сайта.
Таким образом, понятно, что лучшим вариантом для WordPress является аренда выделенного лично вам виртуального сервера, что у HSP (Hosting Service Provider) называется VDS (Virtual Dedicated Server) или VPS (Virtual Private Server). Стоит это относительно не дорого, если учитывать, что ЦОД (Центры Обработки Данных, Data Center) снабжаются дублирующими резервными источниками электропитания, мощнейшими системами охлаждения, системами резервного копирования и т. д.
Вместе с тем, стоит заметить, что когда мы рекомендуем выбрать VDS/VPS-хостинг, то имеем ввиду, что на WordPress обычно не реализуют высоконагруженные (HighLoad) решения. Если, всё же вы создали такое, например, при помощи мощнейшего плагина Advanced Classifieds & Directory Pro, позволяющего делать аналоги aliexpress, то вам придётся улучшить конфигурацию хостинга и арендовать наряду с виртуальным выделенным сервером, ещё и физический выделенный сервер (Dedicated Server), на котором разместить СУБД MariaDB. Понятно что для порталов (тесно связанных между собой нескольких сайтов и web-приложений) вам нужно будет иметь несколько VDS и несколько Dedicated Server.
Что касается виртуальных хостингов (shared hostings), то они вполне подходят для статических сайтов, которые никто никогда не ломает. Единственное, не нагружайте их тяжёлым контентом, типа видео.
Обратим ваше внимание ещё и на то, что при желании можно организовать мини-хостинг у себя дома или на работе. У этого варианта есть и недостатки (вышеописанные элементы резервирования на ваших плечах), и преимущества, связанные с тем, что абсолютно всё под вашим контролем и не нужно ни с кем общаться для решения тех или иных проблем (а они, поверьте, бывают всегда).
Что для этого нужно, так это наличие надёжного оптоволоконного провайдера-интернет и как минимум одного выделенного ip-адреса. Будет совсем хорошо, если будет два разных провайдера и два выделенных ip-адреса из разных ip-подсетей. Благо в России в настоящее время цены вполне адекватны и частному лицу можно за 1000 рублей в месяц получить надёжный оптоволоконный канал со скоростью Гбит в секунду и за 500 рублей в месяц выделенный ip-адрес.
Если вы выберите виртуальный выделенный сервер на каком-либо хостинге, то можно сразу приступать к установке Linux, о которой мы поговорим в четвёртой статье.
Если же захотите организовать всё у себя, то самым разумным будет развернуть систему виртуальных машин. В том случае, если вы готовы выделить отдельный ПК под LAMPу, то тоже можно сразу читать четвёртую статью, но если у вас есть только один мощный ПК, который вы готовы держать постоянно включённым, и который вы хотите использовать для разных целей, то вам нужно сначала прочесть третью статью.
1. Основы CMS WordPress — теория
Системы Управления Контентом (CMS) WordPress — это свободно распространяемое на условиях лицензии GPL2 программное обеспечение (ПО), написанное на серверном скриптовом языке программирования общего назначения php.
Логично что для того, чтобы такое ПО работало, нужна операционная среда, в которой может выполняться php-код.
Изначально язык php был интерпретируемым, а не компилируемым, поэтому он всегда работал в связке с www-сервером, который либо запускал новый процесс с интерпретатором php каждый раз, когда появлялся запрос от пользователя (cgi), либо содержал в себе интерпретатор php в качестве резидентного модуля (apache mod_php).
Поскольку язык постоянно развивается (номер текущей стабильной версии 8.1.8), а первая версия 1.0 вышла в далёком 1995 году, то постепенно грань между интерпретируемостью и компилируемостью кода на php начала несколько размываться и сегодня среду выполнения php-кода (Zend Engine) можно рассматривать как некий аналог виртуальной машины java. Существуют даже проекты, которые позволяют как бы компилировать php-код и получать исполняемые на рабочей станции программы с графическим пользовательским интерфейсом (GUI). Но даже в этом случае невозможно обойтись без www-сервера, а так называемые компиляторы есть не что иное, как упаковщики в единый исполняемый файл (например, с расширением .exe, для Windows) как минимум четырёх необходимых компонент, www-сервера, php-интерпретатора, кода самой программы и www-браузера.
Итак, уже понятно, что для того, чтобы установить WordPress, нам нужно иметь по крайней такую операционную среду, в которой присутствуют www-сервер и php-интерпретатор.
Поскольку WordPress представляет из себя вместе с дополнительными внешними модулями (plug-in modules) довольно мощный инструмент, то для его работы обязательно нужна ещё и система управления базой данных (СУБД). Родной для WordPress СУБД является MySQL, изначально разработанная одноимённой шведской компанией. СУБД распространялась как свободное ПО на основе лицензии GNU GPL.
Сегодня MySQL принадлежит корпорации Oracle и распространяется в трёх вариантах дистрибутива: двух коммерческих и одной свободной на основе той же GNU GPL.
Помимо MySQL официальный дистрибутив WordPress поддерживает работу с более новой СУБД MariaDB.
Если же есть желание использовать другие СУБД с WordPress то нужно будет потрудиться дополнительно. Например, установить WordPress с СУБД PostgreSQL можно попытаться при помощи специальных плагинов, однако мы не будем рекомендовать это делать, так как WordPress довольно хорошо работает и с «родными» для него СУБД.
Nullus est locus domestica sede jucundior (Нет лучшего места на земле, чем родной дом).
Marcus Tullius Cicero (Марк Тулий Цицерон)
Классическое операционное окружение для WordPress — это так называемая LAMPа (LinuxApacheMySQLPHP). Именно это окружение мы и научимся устанавливать в следующих статьях.