Windows 10, IIS: установка «WordPress» локально, часть 1

Oct 27, 2022 17:54

Коротко суть

В этой статье описывается установка на компьютер (для работы локально), работающий под управлением операционной системы «Windows 10», системы управления содержимым «WordPress». «WordPress» - это веб-приложение (динамический сайт), написанное на языке PHP и использующее для хранения данных СУБД (систему управления базами данных) «MySQL» (или СУБД «MariaDB»). В качестве веб-сервера я использую IIS версии 10, входящий в состав «Windows 10».

В рамках данной статьи предполагается, что веб-сервер IIS включен и настроен для работы; интерпретатор PHP установлен, настроен и связан с IIS; СУБД «MySQL» установлена, настроена и готова к работе. Как это сделать, я подробно описал в отдельной серии постов.

Что такое «WordPress»

Следует иметь в виду, что под названием «WordPress» может подразумеваться несколько разных вещей. Это и программное обеспечение, и веб-сервис, и компания, которая занимается разработкой программного обеспечения и поддержкой веб-сервиса. При этом сайт WordPress.org посвящен программному обеспечению «WordPress», а сайт WordPress.com является веб-сервисом, предоставляющим хостинг с развернутым программным обеспечением «WordPress» (этот веб-сервис предоставляет как бесплатные, так и платные услуги).

Изначально с помощью «WordPress» (программного обеспечения или веб-сервиса) можно было создать свой блог. Но сейчас «WordPress» перерос это и теперь позиционируется как система управления содержимым сайта (на английском для обозначения этого понятия часто используется аббревиатура «CMS», которая расшифровывается как «content management system»). То есть теперь с помощью «WordPress» можно создать не только свой блог, но и вообще сайт почти любого вида.

Самый простой способ попробовать «WordPress» - это завести сайт на веб-сервисе WordPress.com. Базовые возможности там предоставляются бесплатно. Дополнительно за плату доступны почти любые возможности по расширению функциональности сайта.

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

Третий способ - развернуть программное обеспечение «WordPress» на доступном компьютере самостоятельно. Я решил сделать это на своем компьютере, но локально, то есть без открытия доступа к моему сайту на движке «WordPress» из интернета. Такая локальная установка часто используется разработчиками расширений для «WordPress».

Как работает веб-приложение «WordPress»

Из вышесказанного должно быть понятно, что я не буду в данной статье рассматривать использование веб-сервиса WordPress.com, а буду пользоваться программным обеспечением с сайта WordPress.org. Следует иметь в виду, что программное обеспечение «WordPress» с сайта WordPress.org является бесплатным и имеет открытый исходный код.

При работе любого веб-приложения (динамического сайта) всегда существует две стороны: веб-сервер и веб-клиент (браузер), которые общаются по компьютерной сети (интернету) по протоколу HTTP (или HTTPS).

Изначально существовали статические сайты, на которые через свои браузеры заходили пользователи интернета. Здесь слово «заходили» подразумевает «отправляли запросы и получали ответы по протоколу HTTP или HTTPS». Браузеры отправляют по сети запросы веб-серверу, который создает ответы и отправляет их по сети обратно браузерам. Для статического сайта веб-сервер прикрепляет к ответу хранящуюся на компьютере-сервере готовую страницу сайта и возвращает браузеру, который отображает эту страницу в своем окне для своего пользователя. «Статическим» сайт называют потому, что страницы такого сайта подготовлены заранее, сайт находится в «статическом» (неизменном) состоянии (изменения на страницы такого сайта может внести его автор, но не веб-сервер при отправке ответов веб-клиентам).

Динамические сайты (веб-приложения) отличаются тем, что информация сайта хранится на компьютере-сервере не в виде готовых (статических) страниц, а формируется веб-приложением на лету (динамически), при появлении запроса от веб-клиента (браузера). В принципе, сайт может одновременно часть страниц хранить и выдавать в статическом виде, а часть страниц формировать на лету (динамически).

Хоть термины «динамический сайт» и «веб-приложение» часто используют как синонимы, это не совсем одно и то же. «Сайт» - это более общее понятие, которое может включать внутри себя «веб-приложение», если сайт является динамическим.

Веб-приложение - это программа на каком-либо языке, расположенная на веб-сервере и выполняющая, собственно, динамическое создание страницы сайта; после чего веб-сервер отправит созданную веб-приложением страницу сайта по компьютерной сети в ответе веб-клиенту (браузеру). В нашем случае используется язык программирования PHP, куски кода на котором можно прямо вставлять внутрь разметки на языке HTML; обычно полученные в результате файлы имеют расширение «.php». (Иногда «веб-приложениями» называют скрипты на языке JavaScript, придающие страницам сайта [и динамического, и статического] интерактивность со стороны браузера. Зачастую программы со стороны веб-сервера работают совместно с программами со стороны браузера, тогда всю эту систему в общем тоже могут называть «веб-приложением», хоть части этого общего веб-приложения могут быть написаны на разных языках, например на языках PHP и JavaScript.)

Схема работы программы «WordPress» в случае, если веб-сервер и браузер находятся на разных компьютерах в компьютерной сети (например, в интернете):



Так как я устанавливаю систему управления содержимым «WordPress» для работы локально, то у меня будет та же схема работы, что приведена выше, но только веб-сервер и браузер у меня установлены на одном и том же компьютере. Общение по протоколу HTTP или HTTPS происходит без выхода в интернет, но веб-сервер и браузер работают так же, как если бы они общались через компьютерную сеть, находясь на разных компьютерах.

Приступим к установке «WordPress»

При установке я следую инструкциям из статьи «How to install WordPress» на сайте WordPress.org.

Итак, у меня компьютер под управлением операционной системы «Windows 10». Включен и настроен веб-сервер IIS версии 10, входящий в состав операционной системы «Windows 10». Установлен и настроен для работы с веб-сервером IIS интерпретатор PHP версии 8.1.10. Установлена и настроена для работы СУБД «MySQL» версии 8.0.30. Следует убедиться, что исполняемый файл СУБД «mysqld.exe» запущен (если СУБД установлена в качестве службы операционной системы с автоматическим запуском, то беспокоиться не о чем; у меня СУБД установлена в качестве службы с запуском вручную, поэтому для меня такая проверка актуальна). Я проверяю, что «mysqld.exe» запущен, в диспетчере задач (вызывается, к примеру, сочетанием клавиш «Ctrl+Shift+Esc»).

При установке и работе после установки веб-приложения «WordPress» кроме доступности самого интерпретатора PHP понадобится включение расширений интерпретатора PHP для работы с СУБД «MySQL» ( тут подробнее) и для работы с библиотекой «OpenSSL» ( тут подробнее), это можно сделать в файле настроек «php.ini» интерпретатора PHP.

Шаг 1. Загрузка на компьютер архива с файлами и распаковка этого архива.

Ссылку для загрузки самой свежей версии «WordPress» всегда можно найти по следующему адресу:
https://wordpress.org/download/

На вышеуказанной странице я нашел кнопку «Download WordPress 6.0.3», нажал на нее и загрузил на свой компьютер файл-архив «wordpress-6.0.3.zip» размером 21,7 МБ. Внутри этого файла-архива содержится папка «wordpress» с файлами этого веб-приложения. Я развернул архив и получил папку с названием «wordpress» с нужными файлами общим размером 58,9 МБ. Эту папку я переименовал в «wp» и переместил в папку своего сайта (после перемещения папки следует правильно настроить доступ к ней, см. у меня про это отдельный пост):

C:\inetpub\wwwroot\
То есть получился следующий путь к папке с файлами веб-приложения «WordPress»:

C:\inetpub\wwwroot\wp\

При доступе к этой папке из браузера URL-адрес выглядит так:

http://localhost/wp/
или (если одновременно настроена работа и по протоколу HTTPS)

https://localhost/wp/

Информацию о релизах веб-приложения «WordPress» удобно узнавать по следующей ссылке:
https://wordpress.org/download/releases/

Например, оттуда я узнал, что веб-приложение «WordPress» версии 6.0.3 вышло 17 октября, то есть 10 дней назад.

Шаг 2. Создание базы данных и пользователя для веб-приложения «WordPress» в СУБД «MySQL».

Веб-приложение «WordPress» написано на языке PHP. В дистрибутив интерпретатора PHP включены расширения для работы с СУБД «MySQL». При правильной настройке этих расширений и интерпретатора PHP из программ на языке PHP можно работать с СУБД «MySQL», что и делает веб-приложение «WordPress». Веб-приложение «WordPress» хранит данные динамического сайта в базе данных под управлением СУБД «MySQL». Как видно на схеме работы, приведенной выше, все операции с данными выполняет СУБД «MySQL», а веб-приложение «WordPress» обращается с запросами на сохранение и получение данных к СУБД «MySQL».

Таким образом, для начала работы веб-приложения «WordPress» требуется создать базу данных. База данных создается средствами СУБД «MySQL». В данном случае веб-приложение «WordPress» при общении с СУБД «MySQL» является пользователем (клиентом), а СУБД является сервером (то есть выполняет запросы клиента). Любой пользователь баз данных должен быть зарегистрирован через СУБД «MySQL», то есть в служебной базе данных СУБД должна появиться запись с информацией об имени пользователя, привилегиях, которыми этот пользователь обладает по отношению к определенной базе данных и с паролем пользователя.

Для работы с СУБД «MySQL» (исполняемый файл сервера «mysqld.exe») существует множество разнообразных инструментов. Лично я предпочитаю как можно меньше пользоваться всякими сторонними инструментами и как можно больше пользоваться инструментами, «родными» для определенной системы программ. В данном случае это означает, что я воспользовался для создания базы данных и нового пользователя программой-клиентом «mysql.exe» (работает через интерфейс командной строки), которая входит в состав дистрибутива СУБД «MySQL».

На сайте WordPress.org есть статья «Creating Database for WordPress» о том, как создать базу данных для веб-приложения «WordPress» с помощью 6 разных инструментов, в том числе там описан способ создания базы данных через программу-клиент «mysql.exe».

Если исполняемый файл «mysqld.exe» (сервер) СУБД «MySQL» запущен, то запустим программу-клиент «mysql.exe» из какой-нибудь программы-оболочки (я использую в качестве таковой «PowerShell» версии 7):

PS C:\Program Files\MySQL\MySQL Server 8.0\bin> .\mysql -u root -p
Enter password: **********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.30 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

При получении соединения с сервером СУБД я использую имя root и пароль (в иллюстративном коде выше он закрыт звездочками) администратора баз данных (DBA). Эти имя и пароль создаются при установке на компьютер и настройке СУБД «MySQL». Администратор баз данных - это человек, который занимается администрированием баз данных: создает новые базы данных, регистрирует новых пользователей, регулирует привилегии новых и старых пользователей. В больших организациях в роли администратора баз данных и администратора локальной компьютерной сети выступают разные люди, у них разные должности и разные обязанности. В маленьких и средних организациях эти роли может совмещать один человек.

Как видно из блока кода выше, программа-клиент «mysql.exe» вывела строку-приглашение mysql> для ввода запросов (на языке запросов SQL) к серверу СУБД. Это означает, что соединение между сервером СУБД «mysqld.exe» и программой-клиентом «mysql.exe» установлено успешно, можно начинать работу.

Создадим новую базу данных с названием wordpressdb (я выбрал такое название, но оно может быть любым другим):

mysql> CREATE DATABASE wordpressdb;

Создадим нового пользователя с именем wordpressuser (я выбрал такое имя, но можно выбрать и любое другое), дадим ему все возможные привилегии для работы с созданной ранее базой данных wordpressdb и назначим ему пароль.

В этом месте я попытался использовать инструкцию из вышеупомянутой статьи «Creating Database for WordPress» с сайта WordPress.org:

mysql> GRANT ALL PRIVILEGES ON wordpressdb.* TO "wordpressuser"@"localhost"
-> IDENTIFIED BY "password";
но получил сообщение об ошибке:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY "password"' at line 2

Причина этой ошибки в данном случае в том, что для версии 8 СУБД «MySQL» этот синтаксис устарел (он был правилен для предыдущих версий этой СУБД). Как видно из кода выше, мы одной командой пытаемся выполнить две задачи: создать нового пользователя и настроить его привилегии (права) по отношению к указанной базе данных. С версии 8 СУБД «MySQL» эти две задачи рекомендуют выполнять двумя отдельными командами (запросами). Подробнее об этом можно почитать тут:

https://stackoverflow.com/questions/31111847/identified-by-password-in-mysql
https://dev.mysql.com/doc/refman/8.0/en/grant.html

Итак, создадим нового пользователя и назначим ему пароль:

mysql> CREATE USER "wordpressuser"@"localhost" IDENTIFIED BY "password";

В коде выше localhost - это имя хоста (название домена). Понятно, что его нужно будет заменить соответствующим именем, если речь идет о работе веб-приложения «WordPress» на рабочем сервере в интернете.

В коде выше password - это просто пример-заглушка. Вы должны придумать свой пароль и вставить его в это место.

Назначим только что созданному пользователю все привилегии (права) по отношению к только что созданной базе данных:

mysql> GRANT ALL PRIVILEGES ON wordpressdb.* TO "wordpressuser"@"localhost";

Введем только что назначенные права (привилегии) только что созданного пользователя в действие (тут подробнее):

mysql> FLUSH PRIVILEGES;

На этом работа с программой-клиентом «mysql.exe» закончена, выполним выход из нее:

mysql> EXIT

Думаю, должно быть очевидно, что название созданной выше базы данных, имя пользователя, созданного выше, а также его пароль следует запомнить (записать), так как они понадобятся на следующем шаге установки «WordPress».

Шаг 3. Запуск установочных программ (скриптов) на языке PHP, входящих в дистрибутив веб-приложения «WordPress».

Продолжение следует.

Инструмент, Образование, Сайтостроение, Программирование

Previous post Next post
Up