Try   HackMD
tags: МДК02.05 Организация администрирования операционных систем Linux Linux

Лабораторная работа №11. Развертывание CMS Wordpress на базе nginx.

Тема: Развертывание CMS Wordpress на базе nginx.

Цель работы: Научиться настраивать php для web сервер Nginx на OC Linux. Развернуть CMS Wordpress на базе стека LEMP.
Необходимые материалы: Пк с доступом в интернет. Виртуальные машины с Linux Debian и Ubuntu.

Теоретическая часть

Система управления контентом (Content management system) — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом.

CMS обычно состоит из двух основных компонентов:

  • Приложение для управления контентом (CMA) в качестве внешнего пользовательского интерфейса, позволяющего пользователю добавлять, изменять и удалять контент с веб-сайта без вмешательства веб-мастера.
  • Приложение доставки контента (CDA), которое компилирует контент и обновляет веб-сайт.

Основные функции CMS:

  • Предоставление инструментов для создания содержимого, организация совместной работы над содержимым
  • Управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов
  • Публикация содержимого
  • Представление информации в виде, удобном для навигации, поиска

Преимущество CMS

Использование систем управления сайтом CMS (Content Management System) позволяет сделать изготовление сайтов максимально простым, сведя его к разработке веб-дизайна и настройке системы управления веб-контентом. Такой подход обеспечивает надежную и стабильную работу ресурса, поскольку самые популярные CMS тестировались на протяжении нескольких лет, а также в них были исправлены все ошибки. Кроме того, за изготовление сайтов на базе уже имеющихся движков говорит и то, что системы обеспечивают удобство в последующей работе с сайтом.

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

WordPress

WordPress – это одна из наиболее популярных CMS в мире. С ее помощью можно создавать сайты различного характера и управлять ими без знаний и навыков программирования. Сегодня в сети существует множество различных программ или систем управления, но WordPress является самой популярной. Более 30 % всех сайтов в интернете работают на данной платформе. А если говорить исключительно о площадках, работающих на CMS, то на WP приходится более 60 %, что делает ее однозначным лидером рынка.

Функционал WordPress:

  1. Позволяет создавать, удалять и редактировать статические страницы (например, «О компании», «Контакты», «Товар X» и т. д.).
  2. Позволяет создавать, удалять и редактировать записи (публикации).
  3. Широкие возможности по работе с комментариями (включить, отключить, древовидный формат, максимальное число на одной странице и т. д.).
  4. Поддержка ЧПУ (человеко-понятный URL), написание собственных URL, большой выбор форматов.
  5. Поддержка меток, рубрик, RSS, поиска.
  6. Отличный текстовый редактор WYSIWYG (What You See Is What You Get – что ты видишь, то и получишь), работающий в двух режимах: визуальный и html.
  7. Онлайн редактор фотографий и изображений, позволяющий обрезать, поворачивать, масштабировать и т. д.
  8. Большой выбор готовых шаблонов, что значительно упрощает процесс создания сайта.
  9. Большой набор различных плагинов и виджетов, позволяющих добавлять нестандартные функции.

Wordpress работает на базе php и использует базу данных mysql. В качестве веб сервера мы можем выбрать либо Apache либо Nginx в первом случае такой стек будет называться LAMP что в переводе Linux + Apache + Mysql + PHP. Во втором случае LEMP, где E обозначает Nginx.

Практическая часть

  1. Как уже было сказанно WordPress использует стек LEMP. Давайте установим его вместо mysql мы будет использовать mariadb это почти одно и тоже:
apt update apt upgrade apt-get install nginx mariadb-server apt-get install php-fpm php-mysql php-gd php-curl php-mbstring
  1. Отредактируйте сайт по умолчанию в nginx /etc/nginx/sites-available/default:
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

важно для параметра fastcgi_pass указать версию php-fpm ту которая у вас установлена.

  1. Создайте файл /var/www/html/index.php с следующим кодом:
<?php phpinfo();?>
  1. Перезагрузите nginx.
  2. Откройте сайт по ip_адресу сервера в браузере:
  3. Скачайте последнию версию WordPress в директорию /tmp:
cd /tmp
wget https://wordpress.org/latest.tar.gz
  1. Разархивируйте архив.
  2. Скопируйте WordPress сайт в директорию для сайтов:
cp -a /tmp/wordpress/. /var/www/html/
  1. Создадим базу данных для WordPress:
mysql -u root -p
CREATE DATABASE wordpress; CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
  1. Переименуйте файл конфигурации WP:
mv /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
  1. Отредактируйте /var/www/html/wp-config.php, нужно изменить эти параметры под параметры созданной ранее БД:
define( 'DB_NAME', 'database_name_here' ); define( 'DB_USER', 'username_here' ); define( 'DB_PASSWORD', 'password_here' ); define( 'DB_HOST', 'localhost' );
  1. Сделайте владельцем директории с сайтом WordPress пользователя веб сервера nginx а также задайте права 755 для всего содержимого директории:
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/
  1. Перезагрузите nginx и php-fpm. После перейдите по ip адресу сервера в браузере и завершите установку WordPress:

Укажите всю неоюходимую информацию и завершите установку.

В отчете опишите все шаги установки.

Контрольные вопросы

  1. Опишите из чего состоит стек LEMP?
  2. Что такое CMS система?
  3. Какой функционал дает WordPress?