summaryrefslogtreecommitdiff
path: root/LINUX/WORDPRESS.md
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
committervlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
commite5abc1fe99340b979b18864d978179f71fe8f5c5 (patch)
tree98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /LINUX/WORDPRESS.md
First
Diffstat (limited to 'LINUX/WORDPRESS.md')
-rw-r--r--LINUX/WORDPRESS.md471
1 files changed, 471 insertions, 0 deletions
diff --git a/LINUX/WORDPRESS.md b/LINUX/WORDPRESS.md
new file mode 100644
index 0000000..68cfc81
--- /dev/null
+++ b/LINUX/WORDPRESS.md
@@ -0,0 +1,471 @@
+## Установка WordPress: техническая часть
+
+### Проверим пользователя
+
+Убедимся, что мы находимся в нужной папке (директории) и не под пользователем root:
+
+```
+serveruser@ИМЯСЕРВЕРА:/root$
+```
+
+Если у Вас как на примере выше (вместо serveruser может быть другой пользователь, главное, чтобы не root), то все хорошо. А если у Вас так:
+
+```
+root@ИМЯСЕРВЕРА:~#
+```
+
+То выполите инструкции по созданию нового пользователя из этой статьи: [Установка Nginx, MySQL 8, PHP8.1-FPM на Ubuntu 22.04 LTS с нуля](https://dnevnik.dev/2022/07/11/ustanovka-nginx-mysql-8-php8-1-fpm-na-ubuntu-22-04-lts-s-nulya/).
+
+### Скачаем WordPress
+
+Перейдем в нужный каталог, введем:
+
+```
+cd /var/www/
+```
+
+Затем, нужно создать каталог для нашего будущего сайта (у меня НАЗВАНИЕ_САЙТА это dnevnik):
+
+```
+sudo mkdir НАЗВАНИЕ_САЙТА
+sudo chown -R www-data:www-data НАЗВАНИЕ_САЙТА
+sudo find /var/www/НАЗВАНИЕ_САЙТА/ -type d -exec chmod 750 {} \;
+sudo find /var/www/НАЗВАНИЕ_САЙТА/ -type f -exec chmod 640 {} \;
+```
+
+Если нужно проверить, свободно ли выбранное Вами название сайта, то сделать это можно здесь: [https://reg.ru](https://www.reg.ru/domain/new/?rlink=reflink-10793423).
+
+Переместимся в созданный каталог, и скачаем WordPress:
+
+```
+cd НАЗВАНИЕ_САЙТА
+sudo -u www-data wget https://wordpress.org/latest.tar.gz
+```
+
+Распакуем архив:
+
+```
+sudo -u www-data tar -xzvf latest.tar.gz
+```
+
+И удалим его:
+
+```
+sudo -u www-data rm latest.tar.gz
+```
+
+Затем переместим содержимое папки wordpress в родительскую для ее директорию:
+
+```
+sudo -u www-data mv wordpress/* .
+```
+
+И удалим папку wordpress:
+
+```
+sudo -u www-data rm -R wordpress
+```
+
+### Создадим базу данных в MySQL
+
+Войдем в командную строку MySQL:
+
+```
+sudo mysql
+```
+
+Создадим новую базу данных:
+
+```
+CREATE DATABASE НАЗВАНИЕ_САЙТА;
+```
+
+Создадим нового пользователя:
+
+```
+CREATE USER 'НАЗВАНИЕ_САЙТА'@'localhost' IDENTIFIED BY 'aef@234R345t2iJhfvar';
+```
+
+«aef@234R345t2iJhfvar» — это пароль пользователя НАЗВАНИЕ_САЙТА.
+
+Дадим пользователю НАЗВАНИЕ_САЙТА права на базу данных НАЗВАНИЕ_САЙТА:
+
+```
+GRANT ALL ON НАЗВАНИЕ_САЙТА.* TO 'НАЗВАНИЕ_САЙТА'@'localhost';
+```
+
+Выйдем из командной строки MySQL:
+
+```
+exit
+```
+
+Теперь давайте войдем в командную строку MySQL под новым MySQL-пользователем:
+
+```
+mysql -u НАЗВАНИЕ_САЙТА -p
+```
+
+Вас попросят ввести пароль, введите его. Если Вы не меняли его в примере выше, то он будет такой:
+
+```
+aef@234R345t2iJhfvar
+```
+
+Вот мы и вошли под новым пользователем. Посмотрим, какие базы данных ему видны, введем:
+
+```
+SHOW DATABASES;
+```
+
+Результат будет такой:
+
+```
++---------------------------+
+| Database |
++---------------------------+
+| information_schema |
+| НАЗВАНИЕ_САЙТА |
++---------------------------+
+2 rows in set (0.06 sec)
+```
+
+Видим нашу базу НАЗВАНИЕ_САЙТА, отлично, выйдем из командной строки MySQL:
+
+```
+exit
+```
+
+Давайте двигаться дальше, настроим Nginx.
+
+### Настроим Nginx
+
+Тут нужно сказать, что я буду иметь в виду под «НАЗВАНИЕ_САЙТА», «НАЗВАНИЕ_САЙТА.ДОМЕН» и «www.НАЗВАНИЕ_САЙТА.ДОМЕН».
+
+На примере моего сайта это будет так:
+
+НАЗВАНИЕ_САЙТА = dnevnik
+НАЗВАНИЕ_САЙТА.ДОМЕН = dnevnik.dev
+www.НАЗВАНИЕ_САЙТА.ДОМЕН = www.dnevnik.dev
+
+Если Вам нужен домен, советую приобретать его здесь: [https://reg.ru](https://www.reg.ru/domain/new/?rlink=reflink-10793423). К примеру, домен этого сайта (dnevnik.dev) зарегистрирован именно там.
+
+Создадим новый конфигурационный файл для Nginx, для этого введем:
+
+```
+sudo vim /etc/nginx/sites-available/НАЗВАНИЕ_САЙТА
+```
+
+Команда выше создаст новый пустой файл. Вставим в него содержимое:
+
+```
+server {
+ listen 80;
+ server_name НАЗВАНИЕ_САЙТА.ДОМЕН www.НАЗВАНИЕ_САЙТА.ДОМЕН;
+ root /var/www/НАЗВАНИЕ_САЙТА;
+
+ index index.html index.htm index.php;
+
+ location / {
+ try_files $uri $uri/ /index.php$is_args$args;
+ }
+
+ location ~ \.php$ {
+ include snippets/fastcgi-php.conf;
+ fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
+ }
+
+ location ~ /\.ht {
+ deny all;
+ }
+}
+```
+
+И для сохранения файла, нажмите «:wq», а затем Enter. Файл сохранен.
+
+Активируем конфигурацию этой командой:
+
+```
+sudo ln -s /etc/nginx/sites-available/НАЗВАНИЕ_САЙТА /etc/nginx/sites-enabled/
+```
+
+Перезапустим Nginx, чтобы изменения вступили в силу:
+
+```
+sudo systemctl reload nginx
+```
+========================================
+Сначала вы проверяете, что порт 80 уже работает,
+
+```
+sudo netstat -plunt | grep 80
+
+tcp6 0 0 :::80 :::* LISTEN 1573456/apache2
+```
+
+Если он запущен, то отключите apache:
+
+```
+sudo service apache2 stop
+```
+
+Теперь запустите Nginx:
+
+```
+sudo service nginx start
+```
+========================================
+
+Теперь нужно настроить WordPress.
+
+### Настроим WordPress
+
+Переместимся в директорию сайта:
+
+```
+cd /var/www/НАЗВАНИЕ_САЙТА
+```
+
+Переименуем файл wp-config-sample.php:
+
+```
+sudo -u www-data mv wp-config-sample.php wp-config.php
+```
+
+И откроем его для редактирования:
+
+```
+sudo -u www-data vim wp-config.php
+```
+
+Увидим что-то вроде этого:
+
+```
+<?php
+/**
+ * The base configuration for WordPress
+ *
+ * The wp-config.php creation script uses this file during the installation.
+ * You don't have to use the web site, you can copy this file to "wp-config.php"
+ * and fill in the values.
+ *
+ * This file contains the following configurations:
+ *
+ * * Database settings
+ * * Secret keys
+ * * Database table prefix
+ * * ABSPATH
+ *
+ * @link https://wordpress.org/support/article/editing-wp-config-php/
+ *
+ * @package WordPress
+ */
+
+// ** Database settings - You can get this info from your web host ** //
+/** The name of the database for WordPress */
+define( 'DB_NAME', 'database_name_here' );
+
+/** Database username */
+define( 'DB_USER', 'username_here' );
+
+/** Database password */
+define( 'DB_PASSWORD', 'password_here' );
+
+/** Database hostname */
+define( 'DB_HOST', 'localhost' );
+
+/** Database charset to use in creating database tables. */
+define( 'DB_CHARSET', 'utf8' );
+
+/** The database collate type. Don't change this if in doubt. */
+define( 'DB_COLLATE', '' );
+
+/**#@+
+ * Authentication unique keys and salts.
+ *
+ * Change these to different unique phrases! You can generate these using
+ * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
+ *
+ * You can change these at any point in time to invalidate all existing cookies.
+ * This will force all users to have to log in again.
+ *
+ * @since 2.6.0
+ */
+define( 'AUTH_KEY', 'put your unique phrase here' );
+define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
+define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
+define( 'NONCE_KEY', 'put your unique phrase here' );
+define( 'AUTH_SALT', 'put your unique phrase here' );
+define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
+define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
+define( 'NONCE_SALT', 'put your unique phrase here' );
+
+/**#@-*/
+
+/**
+ * WordPress database table prefix.
+ *
+ * You can have multiple installations in one database if you give each
+ * a unique prefix. Only numbers, letters, and underscores please!
+ */
+$table_prefix = 'wp_';
+
+/**
+ * For developers: WordPress debugging mode.
+ *
+ * Change this to true to enable the display of notices during development.
+ * It is strongly recommended that plugin and theme developers use WP_DEBUG
+ * in their development environments.
+ *
+ * For information on other constants that can be used for debugging,
+ * visit the documentation.
+ *
+ * @link https://wordpress.org/support/article/debugging-in-wordpress/
+ */
+define( 'WP_DEBUG', false );
+
+/* Add any custom values between this line and the "stop editing" line. */
+
+
+
+/* That's all, stop editing! Happy publishing. */
+
+/** Absolute path to the WordPress directory. */
+if ( ! defined( 'ABSPATH' ) ) {
+ define( 'ABSPATH', __DIR__ . '/' );
+}
+
+/** Sets up WordPress vars and included files. */
+require_once ABSPATH . 'wp-settings.php';
+```
+
+Тут нам нужно заменить следующее:
+
+- **database_name_here** на **НАЗВАНИЕ_САЙТА**
+- **username_here** на **НАЗВАНИЕ_САЙТА**
+- **password_here** на **aef@234R345t2iJhfvar** (или на тот пароль, который Вы придумали)
+- **put your unique phrase here** на набор случайных букв и символов
+
+Сохраним файл. Нажмем «:wq», затем Enter.
+
+Всё, мы готовы к запуску установки WordPress!
+
+## Установка WordPress: запуск скрипта установки
+
+Чтобы начать скрипт установки WordPress, нужно перейти по адресу:
+
+```
+http://НАЗВАНИЕ_САЙТА.ДОМЕН
+```
+
+И увидим это:
+
+![](https://dnevnik.dev/wp-content/uploads/2022/07/image-3-1024x576.png)
+
+Выберем язык, и увидим подобное:
+
+![](https://dnevnik.dev/wp-content/uploads/2022/07/image-4-1024x868.png)
+
+Введите данные, и нажмите «Установить WordPress». После успешной установки увидите такой экран:
+
+![](https://dnevnik.dev/wp-content/uploads/2022/07/image-5-1024x505.png)
+
+Далее нажмите «Войти», и введите только что придуманные имя пользователя и пароль:
+
+![](https://dnevnik.dev/wp-content/uploads/2022/07/image-6-1024x576.png)
+
+Ещё раз нажмите «Войти», и, добро пожаловать в WordPress!
+
+![](https://dnevnik.dev/wp-content/uploads/2022/07/image-7-1024x576.png)
+
+## Заключение
+
+Вот и завершена установка WordPress на Ubuntu 22.04 LTS! Если у Вас остались какие-то вопросы, пожелания, или возникли ошибки в процессе установки — задавайте их в сообщения сообщества [https://vk.com/webdevdiary](https://vk.com/webdevdiary), буду рад помочь!
+
+Пока!
+
+## А вот и нет!
+
+Адрес сайта сейчас **http**://НАЗВАНИЕ_САЙТА.ДОМЕН, а должен быть **https**://НАЗВАНИЕ_САЙТА.ДОМЕН.
+
+Давайте исправлять!
+
+### Установка Certbot
+
+Введем команду:
+
+```
+sudo snap install core; sudo snap refresh core
+```
+
+А затем:
+
+```
+sudo snap install --classic certbot
+```
+
+И, наконец:
+
+```
+sudo ln -s /snap/bin/certbot /usr/bin/certbot
+```
+
+### Запуск Certbot
+
+Введем:
+
+```
+sudo certbot
+```
+
+Выведется это:
+
+```
+Saving debug log to /var/log/letsencrypt/letsencrypt.log
+Enter email address (used for urgent renewal and security notices)
+ (Enter 'c' to cancel):
+```
+
+Нужно ввести свой e-mail — вводим, и жмем «Enter». Далее везде отвечаем «Y», и выведется такое:
+
+```
+Account registered.
+
+Which names would you like to activate HTTPS for?
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+1: НАЗВАНИЕ_САЙТА.ДОМЕН
+2: www.НАЗВАНИЕ_САЙТА.ДОМЕН
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Select the appropriate numbers separated by commas and/or spaces, or leave input
+blank to select all options shown (Enter 'c' to cancel):
+```
+
+Далее можете просто нажать «Enter», и сертификаты установятся для обоих адресов:
+
+```
+Requesting a certificate for НАЗВАНИЕ_САЙТА.ДОМЕН and www.НАЗВАНИЕ_САЙТА.ДОМЕН
+
+Successfully received certificate.
+Certificate is saved at: /etc/letsencrypt/live/НАЗВАНИЕ_САЙТА.ДОМЕН/fullchain.pem
+Key is saved at: /etc/letsencrypt/live/НАЗВАНИЕ_САЙТА.ДОМЕН/privkey.pem
+This certificate expires on 2022-10-14.
+These files will be updated when the certificate renews.
+Certbot has set up a scheduled task to automatically renew this certificate in the background.
+
+Deploying certificate
+Successfully deployed certificate for НАЗВАНИЕ_САЙТА.ДОМЕН to /etc/nginx/sites-enabled/НАЗВАНИЕ_САЙТА
+Successfully deployed certificate for www.НАЗВАНИЕ_САЙТА.ДОМЕН to /etc/nginx/sites-enabled/НАЗВАНИЕ_САЙТА
+Congratulations! You have successfully enabled HTTPS on https://НАЗВАНИЕ_САЙТА.ДОМЕН and https://www.НАЗВАНИЕ_САЙТА.ДОМЕН
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+If you like Certbot, please consider supporting our work by:
+ * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
+ * Donating to EFF: https://eff.org/donate-le
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+```
+
+После этого, когда Вы зайдете на свой сайт **http**://НАЗВАНИЕ_САЙТА.ДОМЕН, Вы будете автоматически перенаправлены на **https**://НАЗВАНИЕ_САЙТА.ДОМЕН.
+
+Если Вам нужен сертификат с более высоким статусом, советую приобретать его здесь: [https://reg.ru](https://www.reg.ru/domain/new/?rlink=reflink-10793423).
+
+Теперь точно все! \ No newline at end of file