Как работает cron с переменными времени @daily, @weekly, @monthly

linux crontab daily

Простыми словами, переменные расписания запускают команды:

  • @daily — раз в день
  • @weekly — раз в неделю
  • @monthly — раз в месяц

Как же понять, в какое именно время запускаются команды?..

…Заходим в консоль сервера и используем команду:

cat /etc/anacrontab

Вывод примерно такой:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

Пояснения к этой системе можно найти, введя команду:

man anacrontab

Вывод будет примерно такой:

       The  START_HOURS_RANGE  variable  defines an interval (in hours) when scheduled jobs can be run.  In case this time interval is missed, for example, due to a power down, then scheduled jobs are not executed that day.

       The RANDOM_DELAY variable denotes the maximum number of minutes that will be added to the delay in minutes variable which is specified for each job.  A RANDOM_DELAY set to 45 would  therefore add, randomly, between 0 and 45 minutes to the delay in minutes for each job in that particular anacrontab.  When set to 0, no random delay is added.

       Empty lines are either blank lines, line containing white spaces only, or lines with white spaces followed by a '#' followed by an arbitrary comment.

       You can continue a line onto the next line by adding a '\' at the end of it.

       In case you want to disable Anacron, add the 0anacron cron job (which is a part of crontab(1)) into the /etc/cron.hourly/jobs.deny directory.

EXAMPLE
       This example shows how to set up an Anacron job similar in functionality to /etc/crontab which starts all regular jobs between 3:00 and 22:00 only.  A RANDOM_DELAY which can be 45 minutes at the most is specified.  Jobs will run serialized in a queue where each job is started only after the previous one is finished.

       # environment variables
       SHELL=/bin/sh
       PATH=/sbin:/bin:/usr/sbin:/usr/bin
       MAILTO=root
       RANDOM_DELAY=45
       # Anacron jobs will start between 6am and 8am.
       START_HOURS_RANGE=3-22
       # delay will be 5 minutes + RANDOM_DELAY for cron.daily
       1         5    cron.daily          nice run-parts /etc/cron.daily
       7         0    cron.weekly         nice run-parts /etc/cron.weekly
       @monthly  0    cron.monthly        nice run-parts /etc/cron.monthly

Пояснения:

  • Если запускается несколько команд с одной и той же переменной времени (например, @daily), они все ставятся в очередь, сереализуются и выполняются по порядку, при этом
  • START_HOURS_RANGE=3-22 — значит, что команды выполняются только во временном интервали с 3:00 до 22:00
  • RANDOM_DELAY=45 — значит, что следующая команда выполнится только после окончания предыдущей, и через 5 минут (из таблицы с примерами команд) + рандомное количество минут между 0 и 45. Другими словами, через рандомное время между 5 и 50 минутами

Установка скомпилированной версии v8js в Ubuntu или CentOS для server-side rendering

  • Скачаем архив со скомпилированной версией расширения v8js.so

Получаем рут права

> sudo su
  • Создаем временную папку для скачивания и заходим в нее
# mkdir -p /opt/google
# cd /opt/google
  • Сохраняем архив с расширением для рендеринга на серверной стороне
# wget https://blog.bayrell.org/media/files/archives/v8-ubuntu-18.04-x64-6.4.388.18-2.1.0.tar.gz
  • Распаковываем архив тут же
# tar xvf v8-ubuntu-18.04-x64-6.4.388.18-2.1.0.tar.gz
  • Далее необходимо скопировать расширение в папку расширений для вашего PHP
    Получить папку с расширениями можно следующей командой
# php -i | grep extension_dir

Ниже можно увидеть результат команды

тогда копируем расширение в эту папку, в нашем случае это:

# cp /opt/google/v8/6.4/v8js.so /usr/lib64/php/modules
  • А теперь нужно добавить это расширение в ini конфиг php
    получаем папку, в которой хранятся дополнительные ini конфиги
# php -i | grep "additional .ini files"

Вывод будет примерно как на скриншоте ниже

Заходим в папку и создаем ini файл для v8js расширения
В нашем случае это:

# cd /etc/php.d
# nano 50-v8js.ini

И вставляем в файл следюущий код:

extension=v8js.so

Сохраняем файл (CTRL+O, CTRL+X)

  • Теперь можем проверить работоспособность установленного расширения
    Переходим в какую то временную папку на сервер и создаем тестовый php файл
# nano test_v8js.php

В который вставляем следующий код:

<?php
$v8js = new V8Js();
$JS = <<< EOT
  var s = 'Hello world';
  s;
EOT;
$r = $v8js->executeString($JS);
var_dump($r);

В случае успеха увидим вывод в консоли:

string(11) "Hello world"

Если, в качестве менеджера процессов вы используете, например, php-fpm — необходимо его перезагрузить

# systemctl restart php-fpm

Если у вас PHP 7.4 или инструкции выше не работают, можно обратиться к процедуре компиляции V8Js из официальных репозиториев для Ubuntu 20 или Ubuntu 22

Установка Redis на MacOS, Debian, Ubuntu, Centos

MacOS (Catalina)

(Если вам необходимо установить Redis на Mac c процессором семейства M — есть отдельная инструкция)

Открываем терминал (Terminal.app) и обновляем локальные пакеты:

> brew update

Устанавливаем Редис одной командой

> brew install redis

В процессе успешной установки увидим подобные сообщения:

$ brew install redis
==> Downloading https://homebrew.bintray.com/bottles/redis-5.0.6.catalina.bottle
==> Downloading from https://akamai.bintray.com/8a/8ae4fed5494daa20391ab16d4be0b
################################################################## 100.0%
==> Pouring redis-5.0.6.catalina.bottle.tar.gz
==> Caveats
To have launchd start redis now and restart at login:
brew services start redis
Or, if you don’t want/need a background service you can just run:
redis-server /usr/local/etc/redis.conf
==> Summary
/usr/local/Cellar/redis/5.0.6: 13 files, 3.1MB

Redis успешно установлен. Запустим процесс, чтобы он работал в бекграунде:

> brew services start redis

В случае успешного запуска увидим подобное сообщение:

==> Successfully started redis (label: homebrew.mxcl.redis)

Это все. Процесс установки и запуска завершен.
Проверим работоспособность запущенного редис-сервиса

redis-cli ping

Если видим вывод “PONG” значит все прошло успешно и редис готов к работе.

Linux (Debian, Ubuntu)

Открывает терминал, переходим в домашнюю папку для скачивания архива с Редисом:

$ cd ~/

Скачиваем архив с установочными файлами Redis (последняя стабильная версия):

$ curl -s -o redis-stable.tar.gz "http://download.redis.io/redis-stable.tar.gz"

Далее выполняем команды под рутом — командой получаем права:

$ sudo su

Создаем необходимую папку (флаг -p означает, что создаем ее только в случае если ее нету)

# mkdir -p /usr/local/lib/

И назначаем права

# chmod a+w /usr/local/lib/

Разархивирует в нее архив с файлами Редис:

# tar -C /usr/local/lib/ -xzf redis-stable.tar.gz

Удаляем файл архива — он нам больше не нужен

# rm redis-stable.tar.gz

Переходим в папку с файлами Редиса

# cd /usr/local/lib/redis-stable/

И устанавливаем его (так как это установочные файлы написанные на языке C)

# make && make install

Проверим уставлен ли Редис, выведя его версию

# redis-cli --version

Далее, как рекомендуется в официальной документации, запускаем скрипт конфигурирования. Перейдем в его папку

# cd /usr/local/lib/redis-stable/utils/

И запускаем его

# sh install_server.sh

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

# service redis_6379 start

Linux (CentOS)

Открывает терминал, обновляем установленные пакеты (для некоторых версий может быть важно)

$ sudo yum -y update

Убеждаемся, что необходимые для установки Редис пакеты и утилиты установлены

$ sudo yum -y install scl-utils
$ sudo yum -y install centos-release-scl devtoolset-7 llvm-toolset-7
$ sudo scl enable devtoolset-7 llvm-toolset-7 bash
$ sudo yum -y install gcc gcc-c++ make

Переходим в домашнюю папку для скачивания архива с Редисом:

$ cd ~/

Скачиваем архив с установочными файлами Redis:

$ curl -s -o redis-stable.tar.gz "http://download.redis.io/redis-stable.tar.gz"

Далее выполняем команды под рутом — командой получаем права:

$ sudo su

Создаем необходимую папку (флаг -p означает, что создаем ее только в случае если ее нету)

# mkdir -p /usr/local/lib/

И назначаем права

# chmod a+w /usr/local/lib/

Разархивирует в нее архив с файлами Редис:

# tar -C /usr/local/lib/ -xzf redis-stable.tar.gz

Удаляем файл архива — он нам больше не нужен

# rm redis-stable.tar.gz

Переходим в папку с файлами Редиса

# cd /usr/local/lib/redis-stable/

И устанавливаем его (так как это установочные файлы написанные на языке C)

# make && make install

Проверим уставлен ли Редис, выведя его версию

# redis-cli --version

Если, при этом, будет выведено сообщение об ошибке “command not found” — необходимо добавить /usr/local/bin в переменную среды PATH таким образом

# export PATH="$PATH:/usr/local/bin"

И вновь проверить успешно ли установлен Редис, как описано выше
Далее, как рекомендуется в официальной документации, запускаем скрипт конфигурирования. Перейдем в его папку

# cd /usr/local/lib/redis-stable/utils/

И запускаем его

# sh install_server.sh

Если в процессе будет выведена ошибка ”… This system seems to use systemd. Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry! “ — необходимо внести небольшое изменение в скрипт установки install_server.sh:

# nano install_server.sh

Закомментировать следующие строки

# bail if this system is managed by systemd
# _pid_1_exe=»$(readlink -f /proc/1/exe)»
# if [ «${_pid_1_exe##*/}» = systemd ]
# then
# echo «This systems seems to use systemd.»
# echo «Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!»
# exit 1
# fi
# unset _pid_1_exe

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

$ redis-cli

127.0.0.1:6379> ping
PONG

$ service redis_6379 start

Файл подкачки Swap file на Centos

Вполне возможно, можем столкнуться с нехваткой оперативной памяти для выполнения какого то процесса на нашем сервере. Если такое случается постоянно — возможно следует подумать о расширении сервера — в плане RAM. 

Но, предположим, что нам, только иногда, нужно чуть больше оперативной памяти, например для сборки jenkins, раз в день. И, при этом, вы видим ошибку вида

Cannot allocate memory

Которая не дает окончить желаемое действие.

В этом случае, на помощь приходит файл подкачки, swap file, который становится, своего рода продолжением оперативной памяти. При этом он хранится и потребляет память жесткого диска. А он, как известно, заметно дешевле RAM.

Итак, прежде всего, нужно проверить, имеем ли мы свободное место на HDD

$ sudo su
# df -h

В нашем случае, свободно 55 гигабайт из 59-ти. 

Так же, давайте, проверим не создавали ли файла подкачки ранее

# swapon -s

Если вывод пустой — значит не создавали

Создадим файл подкачки на 1 Гигабайт (если необходимо больше — выставляем большее значение вместо выделенной цифры 1024 мб)

# dd if=/dev/zero of=/swapfile count=1024 bs=1MiB

Проверяем результат

# ls -lh /swapfile

Изменим режим доступа для файла — мера безопасности

# chmod 600 /swapfile

Теперь, активируем его

# mkswap /swapfile
# swapon /swapfile

Проверяем, что система видит его

# swapon -s

Однако, после перезагрузки он исчезнет, если не добавить его в загрузку

# nano /etc/fstab

И, в конец файла добавляем следующий код

/swapfile   swap    swap    sw  0   0

Сохраняем файл (CTRL+O) и закрываем (CTRL+X)

Готово!

Установка Apache на CentOS 7

Второй по популярности веб-сервер для Linux систем — Apache.

Периодически встречаю ПО, требованием для установки которого является, как раз, Apache web-server.

Для CentOS 7 команда для установки Апача следующая

$ sudo yum install -y httpd

Чтобы при перезагрузке сервера сервис стартовал автоматически

$ sudo systemctl enable httpd

И запускаем его

$ sudo systemctl start httpd

Чтобы проверить корректность установки, можно перейти по адресу

http://ip-адрес-вашего-сервера

Тестовая страница выглядит примерно так

Установка Apache, в том числе, создает папку для ваших проектов

/var/www

и системного пользователя apache c группой apache

Давайте еще создадим и сконфигурируем веб-сайт.

В предыдущей статье рассказывалось как искать, приобретать и настраивать доменное имя. Предположим мы обладаем именем domain.com, наш проект назовем «domain» и разместим его на сервере.

Итак, чтобы иметь возможность редактировать файлы конфигураций

$ sudo su

Создадим папку для нашего проекта

# mkdir /var/www/domain/

и простую тестовую страницу

# nano index.html

(введите тут любой приветственный текст, сохраните CTRL+O и выйдите из режима редактирования CTRL+X)  

И применим необходимые права

# chown -R apache:apache /var/www/domain/

Переходим в директорию конфига нашего веб-сервера

# cd /etc/httpd/conf.d

Создаем и открываем для редактирования конфиг для нашего сайта

# nano domain.conf

С таким наполнением

<VirtualHost *:80>

 ServerName domain.com

 DocumentRoot /var/www/domain

 <Directory /var/www/domain>

  Options FollowSymLinks

  AllowOverride All

  Require all granted

 </Directory>

</VirtualHost>

И перезапускаем Apache

# systemctl restart httpd

Пробуем запускаться в браузере

http://domain.com

Установка WordPress на CentOS7 c PHP7.2 и MySQL 8

Это последняя статья из серии «Устанавливаем блог WordPress на CentOS 7 с веб-сервером Caddy, PHP 7.2 и MySQL 8.0».

Ранее, для установки блога на вордпресс, мы уже сконфигурировали CentOS 7, установили майскл восьмой версии, пхп и кэдди в качестве быстрого, современного веб-сервера. Последний элемент — сам блог wordpress

Итак, на нашем сервере, переходим в директорию для веб-сайтов

$ cd /var/www

Скачиваем последнюю версию WordPress

$ sudo curl -O https://wordpress.org/latest.tar.gz

Распаковываем (архиватор распакует автоматически в директорию wordpress)

$ sudo tar zxf latest.tar.gz

Удаляем архив с файлами блога вордпресс (он нам больше не нужен)

$ sudo rm latest.tar.gz 

Устанавливаем права на директорию wordpress для caddy пользователя (ранее сконфигурированного при установке Caddy web-сервера)

$ sudo chown -R caddy:caddy wordpress

Теперь, подключим и настроим сайт нашего вордпресса

В данном примере, используем текстовый редактор nano, который мы ставили ранее (при конфигурировании операционной системы CentOS 7), однако вы можете использовать другой редактор, в том числе стандартный vi

Итак, открываем конфишурационный файл веб-сервера кедди

$ sudo nano /etc/caddy/Caddyfile

Копируем код ниже и вставляем его в файл конфигурации (при это необходимо заменить «example.com», в двух местах, доменом, который мы создавали в статье по выбору и приобретению простого и недорогого домена для вашего блога)

example.com {

    tls admin@example.com

    root /var/www/wordpress

    gzip

    fastcgi / 127.0.0.1:9000 php

    rewrite {

        if {path} not_match ^\/wp-admin

        to {path} {path}/ /index.php?_url={uri}

    }

}

Сохраняем (CTRL+O и ENTER для текстового редактора nano) и закрываем файл (CTRL+X).

Перезагружаем веб-сервер Caddy, чтобы применить новую конфигурацию

$ sudo systemctl restart caddy

Теперь наш блог должен открыться через браузер (пока что интерфейс для дальнейшего конфигурирования) — вводим в строке урл любого браузера наш домен (в моем случае это questpro.club), выбираем язык интерфейса (мне удобнее будет английский, но советую выбрать русский).

Жмем кнопку Let’s go

В предлагаемых полях на следующем экране вводим следующие данные (из этого мануала)

Database Name = wordpress

Username = wordpressuser

Password = gHspvn@36nBA

Database Host — оставляем значения по умолчанию

Table Prefix — оставляем значения по умолчанию.

Происходит инсталляция…

По ее завершении, вводим необходимые данные админа, для входа в админский аккаунт в вордпрессе. И далее пробуем заходить в админку с только что сгенерированными данными.

WordPress установлен

В следующей статье опишу процесс создания вашей собственной первой статьи и расскажу про популярный seo-плагин для начальной сео-оптимизации.

Установка и настройка веб-сервера Caddy на Centos 7

Как альтернативу, ранее незыблемым, веб-серверам (Nginx, Apache), предлагаю использовать Caddy, который стал достаточно популярным, так как он гораздо легче разворачивается и конфигурируется, да и поддержка сертификатов тут «с коробки» (а это немаловажно в последние года, когда поисковики лучше ранжируют сайты с HTTPS, да и браузеры, ныне, показывают всякие бяки для HTTP сайтов рядом с урлом)

Подробно об установке Caddy на операционной системе CentOS можно посмотреть в официальной документации нашего облачного провайдера Digital Ocean (хостинг на котором мы настраивали ранее)

https://www.digitalocean.com/community/tutorials/how-to-host-a-website-with-caddy-on-centos-7

Но давайте опишу процесс ниже (и по-русски)

В одном из предыдущих туториалов мы использовали текстовый редактор vi, однако предлагаю поставить более удобный — nano

$ sudo yum install nano

Чтобы установить Caddy (не-коммерческая лицензия) запускаем

$ curl https://getcaddy.com | bash -s personal

Установка попросит ввести пароль для аккаунта операционной системы

Следующей командой можем проверить путь, куда был установлен Caddy:

$ which caddy

У меня это — /usr/local/bin/caddy

Далее, создадим пользователя, от имени которого будем работать с веб-сервером — caddy

$ sudo adduser -r -d /var/www -s /sbin/nologin caddy

Потребуется ввести пароль от аккаунта операционной системы

Создаем директорию для главного конфигурационного файла веб-сервера (Caddyfile)

$ sudo mkdir /etc/caddy

Назначаем необходимые права на директорию

$ sudo chown -R root:caddy /etc/caddy

Создаем конфигурационный файл Caddyfile

$ sudo touch /etc/caddy/Caddyfile

(чуть позже его отредактируем)

Создадим директорию для хранения SSL приватных ключей и сертификатов

$ sudo mkdir /etc/ssl/caddy

И необходимые права для этой директории

$ sudo chown -R caddy:root /etc/ssl/caddy
$ sudo chmod 0770 /etc/ssl/caddy

Также, нам нужна директория для хранения кода нашего блога (да и других будущих сайтов)

$ sudo mkdir /var/www

И необходимые права на эту директорию

$ sudo chown caddy:caddy /var/www

Теперь необходимо сконфигурировать веб-сервер Кэдди (Caddy), чтобы запускался автоматически с загрузкой системы как сервис

Скачиваем необходимый для этого файл из официального репозитория Caddy

$ sudo curl -s https://raw.githubusercontent.com/caddyserver/dist/master/init/caddy.service -o /etc/systemd/system/caddy.service

(потребуется ввод пароля для аккаунта операционной системы)

Необходимо внести мелкие изменения в скачанный файл — открываем caddy.service с помощью редактора nano (или другого любимого редактора)

$ sudo nano /etc/systemd/system/caddy.service

Находим секцию с установкой User и Group, как указано ниже

User=caddy

Group=caddy

Если User или Group отличный от caddy — меняем на caddy как в примере выше.

Сохраняем файл и закрываем (в nano редакторе это CTRL+O и CTRL+X соответсвенно)

Подбираем наш новый сервис системой:

$ sudo systemctl daemon-reload

Добавляем Caddy в автозагрузку

$ sudo systemctl enable caddy.service

И, удостоверившись, что он загружен и может быть запущен

$ sudo systemctl status caddy.service

Вывод будет примерно такой

● caddy.service - Caddy

   Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: disabled)

   Active: inactive (dead)

     Docs: https://caddyserver.com/docs/

Что говорит о том, что сервис загружен и доступен.

Последним этапом можно запустить веб-сервер Кэдди, например, командой

$ sudo systemctl start caddy

Но это будет сделано в любом случае в следующей статье, где мы установим WordPress

Установка MySQL 8 на CentOS 7 для WordPress

Это четвертая статья из серии «Устанавливаем блог WordPress на CentOS с Caddy, PHP 7.2 и MySQL 8.0». Вот мы, как раз, и приступаем к установке и настройке сервера базы данных MySQL 8 версии.

Скачиваем репозиторий с mysql сервером

$ sudo rpm -ivh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

Cистема может запросить пароль для пользователя — вводим его (тот что сохранили при создании пользователя для системы CentOS 7)

Далее запускаем установку mysql сервера:

$ sudo yum install mysql-server

Будет вычислено необходимое место и запрошено подтверждения на установку — вводим y и ENTER.

По завершении установки сервера базы данных (сам процесс установки может занять от нескольких минут)

В завершении установки соглашаемся на подтверждение GPG-key — вводим y и ENTER.

После этого стартуем «майэскюэл» как сервис (скорее всего будет опять запрошен пароль для аккаунта)

$ sudo systemctl start mysqld

И проверяем статус работы сервиса

$ sudo systemctl status mysqld

В результате в выводе будет такая надпись Active: active (running), сигнализирующая что сервис работает.

При этом, вместе с установкой, mysql будет добавлен в автозагрузку и будет сгенерирован временный пароль для root пользователя, чтобы его просмотреть и сохранить введем команду

$ sudo grep 'temporary password' /var/log/mysqld.log

в конце строки вывода будет 12ти-значный набор символов, содержащий малые и большие буквы, цифры и как минимум 1 спец символ — это правила для пароля

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

$ sudo mysql_secure_installation

Вначале потребуется ввести временный пароль, а затем ввести новый пароль для установки его root пользователю и повторить ввод нового пароля — разумеется, сохраняем его себе — он нам точно понадобится далее.

Система запросит еще раз заметь пароль — отказываемся — No.

На все остальные следующие вопросы отвечаем да — Y: убираем доступ для анонимных пользователей, запрещаем доступ к базе извне для root, убираем тестовую базу данных, которая по умолчанию доступна всем и др.

MySQL установлен и сконфигурирован, давайте проверим работоспособность командой

$ mysqladmin -u root -p version

При вводе пароля к root пользователю базы данных — получаем в выводе некоторую информацию о сервере базы данных, включая его версию.

Далее, проведем начальную подготовку мускула (там mysql тоже называют 🙂 ) к установке WordPress…

Соединяемся с сервером базы данных под юзером root

$ mysql -u root -p

Вводим ранее сгенерированный (измененный и с сохраненный) пароль

Как только соединение будет установлено — создаем базу данных для WordPress (имя — wordpress)

mysql > CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

И пользователя с именем wordpressuser (и, например, с паролем gHspvn@36nBA) для доступа к этой базе данных

mysql> CREATE USER 'wordpressuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'gHspvn@36nBA';

Имеем ввиду, что пароль должен быть достаточно сложным, иначе увидим сообщение об ошибке (пароль: минимум 12 символов, должна быть заглавная буква, цифра и спец-символ).

Назначаем доступ пользователю wordpressuser к базе данных wordpress

mysql> GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost’;

Сообщаем mysql, что изменили привелегии (ни в кое случае нельзя забыть это)

mysql> FLUSH PRIVILEGES;

И безопасно закрываем соединение с базой данных

mysql> EXIT;

Далее можем приступить к установке Веб-сервера Caddy

Начальная конфигурация CentOS 7

Это третья статья из серии «Устанавливаем блог WordPress на CentOS с Caddy, PHP 7.2 и MySQL 8.0». Вот мы, как раз, и приступаем к настройке операционной системы центос.

Первый коннект к серверу выглядит следующим образом

$ ssh -i {/path/to/private/key} root@{IP-address}

(например ssh -i ~/.ssh/sy_blog_01a root@203.0.113.0 — т.е. без фигурных скобок) 

При самом первом соединении с сервером CentOS, когда удаленный сервер не «встречал» ранее ваш локальный сервер, он спросит уверены ли вы, что хотите законнектиться — набираем yes и жмем Enter.

После чего наш сервер сообщает, что добавляет локальный сервер в известные ему хосты.

Root юзер (супер-админский пользователь, генерируемый при создании сервера) обладает сверх-привилегиями, поэтому рекомендуется создать нового пользователя для дальнейшей работы с сервером.

Делается это просто (имя нового юзера может быть любое, в этом примере указываю имя droplet)

$ adduser droplet 

следующей коммандой устанавливаем юзеру пароль (как и в примере выше, у нас юзер droplet)

$ passwd droplet

вводим пароль и повторяем ввод пароля (обязательно сохраните, система может иногда запрашивать пароль)

Далее, чтобы можно было выполнять административные команды от имени нового юзера, добавим его в специальную группу wheel

$ gpasswd -a droplet wheel

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

Ключ этот генерируем на локальном компьютере, а не на сервере. Ранее мы это делали для root пользователя (ссылка на предыдущую статью). Напоминаю, что делаю на macOS (для Windows процедура немного другая)

Открываем терминал и выполняем команду

$ cd ~/.ssh

для перехода в директорию ключей. Далее

$ ssh-keygen -t rsa

Для генерации ключа. В наем примере, имя будем использовать blog_02a, а поле passphrase оставляем пустое.

Распечатываем публичный ключ для переноса на наш сервер

$ cat ~/.ssh/blog_02a.pub

Мы готовы к переносу ключа на сервер и установки его для нового пользователя. Присоединяемся к серверу под root пользователем, как мы делали это в самом начале этой статьи. Далее, переключаемся на нашего нового пользователя

# su - droplet

Оказываемся в домашней директории пользователя droplet.

Создаем новую директорию для ключа и назначаем ей необходимые права

$ mkdir .ssh
$ chmod 700 .ssh

Следующей командой создаем и открываем файл для ввода ключа

$ vi .ssh/authorized_keys

Нажимает клавишу i чтобы перейти в режим редактирования в редакторе vi, вставляем ключ из буфера обмена, скопированный ранее, нажимаем ESC, чтобы выйти из режима редактирования. После этого набираем с клавиатуры 2 символа: символ «двоеточия» и английская буква x и жмем ENTER чтобы сохранить и закрыть файл.

И, так же, устанавливаем на созданный файл необходимые права

$ chmod 600 .ssh/authorized_keys

И выходим из сервера, чтобы проверить установку соединения по новому пользователю

$ exit
$ exit

Команда соединения с сервером с новым пользователем для нашего примера будет выглядит так

$ ssh -i ~/.ssh/blog_02a droplet@203.0.113.0

(у вас будет точно другой IP после знака @, и, возможно, другие имя пользователя и путь к ключу)

Таким образом, у нас готовая операционна система для установки блога.