Устанавливать WordPress будем на Devuan 3 beowulf, а в качестве web-сервера используем nginx. Про Devuan я уже писал, если вкратце это урезанный Debian без systemd, с низким потреблением ресурсов.

Подготовка веб сервера

Все действия я буду выполнять от имени root, а утилиту sudo использовать не буду.

Я покажу как установить WordPress на свой сервер, чтобы потренироваться в создании сайтов на этом движке. Я создам 2 экземпляра WordPress. На одном сервере, например можно изучать создание Интернет Магазина, а на втором создание Личного Блога. По аналогии вы можете создать третий и четвертый экземпляр.

WordPress для своей работы требует:

  • веб сервер (apache или nginx) в этой статье использую nginx;
  • php;
  • сервер баз данных (mariadb).

Устанавливаю веб сервер nginx и подготавливаю две папочки в которые положим два экземпляра WordPress:

# apt install nginx
# mkdir /var/www/wp1
# mkdir /var/www/wp2

Устанавливаю php. Для nginx потребуется php-fpm, для базы данных php-mysql, также потребуются дополнительные модули для работы WordPress:

# apt install php-fpm php-mysql php-curl \
php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

Перезапустим процесс php-fpm:

# service php7.3-fpm restart

Подготавливаю конфигурацию для веб сервера. Нужно создать два конфига на каждый сайт. Первый конфиг:

# nano /etc/nginx/sites-available/wp1
server {
    listen 80;
    listen [::]:80;

    root /var/www/wp1;
    index index.php index.html index.htm;

    server_name wp1.ru;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

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

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
}

Второй конфиг:

# nano /etc/nginx/sites-available/wp2
server {
    listen 80;
    listen [::]:80;

    root /var/www/wp2;
    index index.php index.html index.htm;

    server_name wp2.ru;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

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

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
}

Выше в конфигах я указываю что оба сайта работают на 80 порте, указываю корень для каждого сайта (/var/www/wp1 и /var/www/wp2), название каждого сайта (wp1.ru и wp2.ru), первая индексная страница это index.php.

Включаю данные конфигурации и выключаю дефолтную конфигурацию, проверяю все ли я сделал правильно и перезапускаю веб-сервер:

# ln -s /etc/nginx/sites-available/wp1 /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/wp2 /etc/nginx/sites-enabled/
# rm /etc/nginx/sites-enabled/default
# nginx -t
# service nginx reload

Устанавливаю сервер баз данных mariadb,повышаю его безопасность и создаю две базы, для первого и второго экземпляра WordPress:

# apt install mariadb-server
# mysql_secure_installation
# mariadb
> CREATE DATABASE wp1 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> GRANT ALL ON wp1.* TO 'wp_user1'@'localhost' IDENTIFIED BY 'pass1';
> FLUSH PRIVILEGES;
> CREATE DATABASE wp2 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> GRANT ALL ON wp2.* TO 'wp_user2'@'localhost' IDENTIFIED BY 'pass2';
> FLUSH PRIVILEGES;
> exit

Скачивание и установка WordPress

Устанавливаю утилиту curl и с её помощью скачиваю последнюю версию WordPress. Далее распаковываю скачанный архив:

# apt install curl
# cd /tmp
# curl -LO https://wordpress.org/latest.tar.gz
# tar xzvf latest.tar.gz

Из файла образца настроек WordPress (wp-config-sample.php) с помощью копирования делаю файл настроек WordPress (wp-config.php):

# cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Кидаю подготовленный экземпляр WordPress в подготовленные для сайтов каталоги и указываю в качестве владельцев папочек пользователя www-data:

# cp -a /tmp/wordpress/. /var/www/wp1/
# cp -a /tmp/wordpress/. /var/www/wp2/
# chown -R www-data:www-data /var/www/wp1/
# chown -R www-data:www-data /var/www/wp2/

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

# curl -s https://api.wordpress.org/secret-key/1.1/salt/

Настраиваю первый экземпляр WordPress:

# nano /var/www/wp1/wp-config.php
define( 'DB_NAME', 'wp1' );
define( 'DB_USER', 'wp_user1' );
define( 'DB_PASSWORD', 'pass1' );
***
define('FS_METHOD', 'direct');
***
define('AUTH_KEY', 'Xb%XpBID` .^j 21gCx`;7h^WOZvC<ftSfwz+J0b4)AO`iXlvJc i-F=+#VU+WG');
define('SECURE_AUTH_KEY', 'QapDioP!~,9+jXLVAb6U4bh}-yl,_9e0oGsN78x#e}EEN[OWqP[u+_gTp bc{2T2');
define('LOGGED_IN_KEY', 'LGD@uBu| ix^M99$Xk8IS{V$F^F=>UcYuD6XLRCc^o}_KDw+AAo}FH<vJ,{srY*:');
define('NONCE_KEY', 'Z)NS+OGT*pvOCiO@hNu1;Ek4&_S`=;pu|Ib=(A!Ile&@J~8NT7#B<Qi!=:G!ZKG<');
define('AUTH_SALT', 'FFK3,&Y<<x $8ezvw1W=s<JEb7VZLNYP$8jq}(aGN;N5&)IN1+$@1`+xr|p<+XEC');
define('SECURE_AUTH_SALT', ' VfhKo(Jc3a@+=JT,?MX56-$7C+Nw|Or*SZFP--Mu`6(-Dr0%PNcsS+DsZNBU,K_');
define('LOGGED_IN_SALT', '1-?IEmYy6EmS<s|rf`M(`Q42g7-bFNB&|^$ ?nFXt`C,NFi9.(S5-{w@c9;1]vJK');
define('NONCE_SALT', '-E[D1.4hGU5a}xqAHA]OH!Z-o@eJ_3.g%6XbAFv^TjbteS-`Yide,+(~?otZ`,GW');

Выше, в конфиге, я указал имя базы данных, логин и пароль для подключения к ней, а также дополнительную опцию «define(‘FS_METHOD’, ‘direct’);» для доступа к файловой системе (это необходимо для закачки обновлений WordPress). Чуть ниже нужно заменить блок ключей полученных ранее.

Получаю ключи для второго WordPress:

# curl -s https://api.wordpress.org/secret-key/1.1/salt/

Настраиваю второй экземпляр WordPress:

# nano /var/www/wp2/wp-config.php
define( 'DB_NAME', 'wp2' );
define( 'DB_USER', 'wp_user2' );
define( 'DB_PASSWORD', 'pass2' );
***
define('FS_METHOD', 'direct');
***
define('AUTH_KEY',         'Xb%XpBID` .^j 21gCx`;7h^WOZvC<ftSfwz+J0b4)AO`iXlvJc  i-F=+#VU+WG');
define('SECURE_AUTH_KEY',  'QapDioP!~,9+jXLVAb6U4bh}-yl,_9e0oGsN78x#e}EEN[OWqP[u+_gTp bc{2T2');
define('LOGGED_IN_KEY',    'LGD@uBu| ix^M99$Xk8IS{V$F^F=>UcYuD6XLRCc^o}_KDw+AAo}FH<vJ,{srY*:');
define('NONCE_KEY',        'Z)NS+OGT*pvOCiO@hNu1;Ek4&_S`=;pu|Ib=(A!Ile&@J~8NT7#B<Qi!=:G!ZKG<');
define('AUTH_SALT',        'FFK3,&Y<<x $8ezvw1W=s<JEb7VZLNYP$8jq}(aGN;N5&)IN1+$@1`+xr|p<+XEC');
define('SECURE_AUTH_SALT', ' VfhKo(Jc3a@+=JT,?MX56-$7C+Nw|Or*SZFP--Mu`6(-Dr0%PNcsS+DsZNBU,K_');
define('LOGGED_IN_SALT',   '1-?IEmYy6EmS<s|rf`M(`Q42g7-bFNB&|^$ ?nFXt`C,NFi9.(S5-{w@c9;1]vJK');
define('NONCE_SALT',       '-E[D1.4hGU5a}xqAHA]OH!Z-o@eJ_3.g%6XbAFv^TjbteS-`Yide,+(~?otZ`,GW');

Перезагружаю последний раз веб сервер:

# service nginx restart

Добавляю на свой компьютер в файл hosts две записи, которые будут указывать на один сервер:

# nano /etc/hosts
192.168.10.92 wp1.ru
192.168.10.92 wp2.ru

Таким образом мой компьютер будет искать сайты wp1.ru и wp2.ru на моем сервер, а не в интернете. 192.168.10.92 это ip-адрес моего сервера.

Дальше открываю сайт wp1.ru в браузере и донастраиваю WordPress из веб-интерфейса. И тоже самое проделываю с сайтом wp2.ru.

В веб интерфейсе вам нужно будет указать язык сайта, имя сайта, логин/пароль админки, ваш email, после чего можно будет зайти в админку и начать настраивать сайт.

Сводка
Установка WordPress (nginx)
Имя статьи
Установка WordPress (nginx)
Описание
Устанавливать WordPress будем на Devuan 3 beowulf, а в качестве web-сервера используем nginx. Devuan - это урезанный Debian без systemd

Добавить комментарий

Ваш адрес email не будет опубликован.