Основные команды Linux для начинающего администратора

Общие команды

Подключаемся к серверу по SSH

$ ssh -i {path_to_PEM_file} {user_name}@{IP_address}

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

$ sudo su

Просматриваем историю предыдущих команд

# history

Очищаем окно терминала от текста

# clear

Выходим из под юзера или из удаленного сервера

# exit

Работа с директориям

Перейти в директорию

# cd {folder_name}

На уровень выше

# cd ..

В домашнюю папку пользователя

# cd ~/

В самую корневую папку

# cd /

Показываем список папок и файлов (простой вывод)

# ls

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

# ll

создаем новую папку

# mkdir

изменяем владельца файла или папки (рекурсивно)

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

изменяем права доступа к файлу или папке (рекурсивно)

# chmod 775 /var/www/domain-web/ -R

распечатываем текущий путь (к каталогу)

# pwd

поиск файлов или папок по шаблону названия

# find {template}

поиск текста по шаблону (в файлах)

# grep {template}

Пример поиска команды в истории по фильтру-шаблону

# history | grep {word_to_search}


Работаем с файлами 

Выводим содержимое файла в консоль

# cat {file_path/file_name}

Выводим последние 100 строк (удобно если большой файл)

# tail -100 {file_name}

Смотрим изменения в файле в режиме реального времени

# tail -f {file_name}

редактируем файл, если файла нету — он создается

# nano {file_name}

CTRL+O — сохраняем изменения

CTRL+X — закрываем файл

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

# echo '' > {file_name}

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

# echo '' > {file_name} && nano {file_name}

удаляем файл или каталог (рекурсивно)

# rm -rf {file_name}

копируем файл (например, делаем бекап конфига перед редактированием)

# cp {file_path/file_name} {new_file_path/file_name}

Просмотр расписания cron (у каждого системного пользователя он свой)

# crontab -l

Редактирование расписания cron

# crontab -e

Тоже, но через nano редактор

EDITOR=nano crontab -e


Просматриваем статистику о системе

анализ свободного/занятого дискового пространства

# df -h

показывает размер файла или каталога

# du -chs {directory 1} {directory 2}

показывает размер каталогов (или файлов), в том числе скрытых, с сортировкой по размеру

# du -chs .[!.]* * | sort -h

Просмотр информации о ресурсах операционной системы и запущенных процессах

# top

Тоже что top, но более интерактивно

# htop


Сервисы

Просмотр всех сервисов и их статусов

# service --status-all

Статус, старт, рестарт и стоп сервиса

# service nginx status

# service php-fpm start

# service redis-server restart

# service searchd stop


Бонус — команды посложнее

Выводим список с детальной информацией о процессах системы, которые в названии имею строчку «php»

ps aux | grep "php"

Подключится к mysql серверу

mysql -u {user_name} -p -h {server_name}

количество соединений к серверу с группировкой по статусам

# ss -tan | awk '{print $1}' | sort | uniq -c

количество соединений к серверу с группировкой по статусам — в реальном времени

# watch -n1 'ss -tan | awk '\''{print $1}'\'' | sort |  uniq -c'

AWS: EC2 — изменение типа инстанса и EBS — изменение размера хранилища

До недавних дней, процедура изменения типа инстанса или добавления гигабайт на ваш жесткий диск через консоль AWS было проблемой, чреватой создания копии инстанса, его конфигурацией и подменой оригинального на копию, с переназначением Elastic IP.

Расскажу, как это сделать гораздо быстрее и безопаснее.

Изменяем тип инстанса EC2

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

  • В разделе EC2 переходим в под-раздел Instances
  • Останавливаем целевой инстанс — выбираем инстанс и затем нажимаем ActionsInstance StateStop
  • Как только сервер будет остановлен изменяем его тип: ActionsInstance SettingsChange Instance Type
  • Выбираем необходимый тип и подтверждаем выбор — Apply
  • Стартуем измененный инстанс: ActionsInstance StateStart

Таким образом, можно изменять мощность как в большую сторону, так и в меньшую

Изменяем размер жестного диска EBS

  • В разделе EC2 переходим в подраздел  Elastic Block StoreVolumes
  • Выбираем именно тот Volume (жесткий диск) который нам необходим — идентифицируем его или по тегам, которые мы составляли при добавления Volume к нашему серверу при создании или же по столбцу Attachment information
  • Далее: ActionsModify Volume
  • Устанавливаем новый размер хранилища Size и, затем, Modify

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

Далее инструкция будет для Linux (CentOS в частности, а для других систем можно обратиться к официальной документации)

Соединяемся с сервером по SSH. Затем получаем рут права

$ sudo su

Выводим список блоков хранения, прикрепленных к серверу

# lsblk

Обычно, основной блок имеет имя nvme0n1, закидываем на него не привязанную память

# growpart /dev/nvme0n1 1

Удостоверяемся что память привязана

# lsblk

Говорим файловой системе, что можно использовать эту новую память. Выводим список разделов

# df -h

И применяем изменения к основному разделу (чаще всего это /dev/nvme0n1p1)

# sudo resize2fs /dev/nvme0n1p1

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

# df -h

Готово! При этом, перезагрузка сервера не требуется.

Файл подкачки 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)

Готово!

Впечатления о книге «MBA за 10 дней» Стивена Силбигера

Дочитав книгу, хотел обобщить и поделиться впечатлениями о ней.

MBA — Магистр делового администрирования.

Начну с того, что на эту книгу ссылается не один именитый автор в мотивационных, бизнес- и инвестиционных материалах. Плюс ко всему, c понятием MBA связаны знания и навыки, которые увеличивают значимость менеджера на порядки. Так же увеличивая размер вознаграждения. Это, своего рода, элита в мире менеджеров средних и высоких звеньев. Крупные компании вкладывают очень большие деньги (10тки и 100тни тыс долларов на человека), отправляя своих самых перспективных работников на программы обучения в ведущие школы.

Почему так дорого. В интернете вы не найдете внятного объяснения. Все статьи сводятся к «воде»: что это престижно, что зарплата вырастает в разы, что это может быть требованием у работодателя. Но понять почему, можно прочитав эту книгу:

  1. Знания, которые тут дают, не оторваны от реальности, они часто пересматриваются и актуализируются
  2. Преподаватели таких школ и курсов, входящих в программу, часто очень известные личности, менеджеры известных компаний, авторы бестселлеров
  3. Сам учебный процесс может быть дорогим, за счет того, что учеников вывозят на крупные предприятия в разные страны, чтобы воочию продемонстрировать реальную атмосферу анализируемых объектов
  4. Ученик находится в окружении других перспективных студентов — полезные контакты. Причем, бизнес-школы стараются интернационализировать состав своих групп
  5. есть и другие факторы, пункты выше — это айсберг

Прочитав данную книгу (за те же 10 дней), вы, конечно, не станете обладателем всех знаний, которые получают будущие MBA за 2-4 года, но сможете прочувствовать атмосферу, понять как думают выпускники MBA-школ и, самое главное, ознакомиться с основными инструментами, которыми оперируют магистры делового администрирования. Причем это происходит на примерах (большинство — реальных) существующих компаний.

Автор книги делает свою работу очень умело. Хотя некоторые вещи не просты в понимании, так как охватываются множество сфер экономической, политической, финансовой, нравственной, информационной и других. Собственно, разделы книги поделены на эти сферы. 

День 1 — Маркетинг

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

День 2 — Этика

Наиболее молодой, ранее недооцениваемый, раздел. Менеджеры крупных звеньев обладают очень большой ответственностью, которую нужно понимать и учитывать при принятии своих решений. Так же необходимо разобраться с приоритетами, ради кого создавалась организация и чьи интересы отстаивает в первую очередь.

День 3 — Бухгалтерский учет

Финансовые отчеты — очень важный источник информации о компании. В этом разделе рассматриваются ключевые понятия и самые важные характеристики для понимания чем владеет компания, сколько и кому она должна, насколько эффективны ее операции и как происходит само-финансирование компании

День 4 — Организационное поведение

Не являясь лидером, авторитетом и человеком с харизмой, MBA вряд ли сможет эффективно продвигать свои идеи и улучшать процессы в компании. Поэтому данная глава и задает направление развития менеджера как сильной личности. Личности, которая разбирается в текущих процессах на предприятии и находит подход к коллегам с разными психологическими типами

День 5 — Количественный анализ

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

День 6 — Финансы

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

День 7 — Управление операциями

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

День 8 — Экономика

Основы микроэкономики и макроэкономики в призме влияния на деятельность гипотетического предприятия

День 9 — Стратегия

Обретенные ранее знания (Главы 1 — 8) применяются для выработки общего курса предприятия не только для выживания, но и для развития в конкурентном мире. Рассматриваются различные теории и практические подходы. 

День 10 — Мини-курсы в программе MBA

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

Еще, от себя…

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

Очень важно, что автор, нативно, делает акцент на термины, которыми оперируют MBA в своей деловой лексике.

Разворачиваем код сайта на Apache с HTTPS из репозитория на Git

Предположим у нас есть сконфигурированный сервер, готовый к запуску веб-сайта (для Caddy, Nginx и Apache настраивали ранее) и так же git репозиторий (GitHub или Bitbucket) c кодом, который нужно «деплоить» в подготовленную директорию для сайта.

В данной статье будем использовать метод аутентификации на Git с помощью публичного SSH ключа.

Установим git, если ранее он не был установлен

$ sudo yum install git -y

Далее, сгенерируем SSH ключи, получаем root-права

$ sudo su

На целевом сервере переходим в домашнюю директорию

# cd ~/.ssh

И проверяем есть ли пара файлов с именем id_dsa — выводим список всех файлов в директории

# ls

Если их нету — необходимо сгенерировать. Команда для генерации ключей

# ssh-keygen -t rsa

Оставляем имя по-умолчанию (id_dsa), далее, система попросит ввести passphrase (оставляем пустым) и повторить ввод passphrase (тоже пустое)

В результате, в папке .ssh (внутри домашней директории) будет создана пара ключей — приватный и публичный (который с расширением .pub) 

Распечатываем его (в нашем примере имя — gitkey.pub)

# cat ~/.ssh/id_dsa.pub

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

Давайте рассмотрим этот процесс на примере Bitbucket

Выбираем репозиторий на сайте Bitbucket, затем Repository settingsAccess keys и жмем кнопку Add key

Label — даем название ключу

Key — вставляем наш публичный ключ из буфера и сохраняем — Add key

Возвращаемся к серверу, переходим к папке с проектами

# cd /var/www

И клонируем код из репозитория (в нашем примере имя репозитория domain-project) в рабочую папку для проекта (в нашем примере это папка domain-web)

# sudo git clone git@bitbucket.org:your-user-name/domain-project.git domain-web 

Ссылку для клонирования репозитория в Bitbucket можно взять от сюда:

SourceClone — копируем код как показано ниже

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

# chown apache:apache /var/www/domain-web/ -R
# chmod 775 /var/www/domain-web/ -R

Приступим к привязке бесплатного сертификата к нашему сайту

$ sudo su

Установим необходимые для SSL-шифрования пакет

# yum install mod_ssl openssl

Будем использовать наиболее известный сервис по генерации SSL-сертификатов — letsencrypt. Для этого установим Certbot

# yum install epel-release -y

(для AWS серверов команда выглядит следующим образом # amazon-linux-extras install epel -y )

# yum install certbot -y

Генерируем ключ Dh (для первой установки сертификата)

# openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Чтобы выписать сертификат, letsencrypt проверяет принадлежит ли вам домен, и делает это с помощью временных файлов, которые генерирует на сервере и проверяет их доступность

Создадим необходимую папку и представим права

# mkdir -p /var/lib/letsencrypt/.well-known
# chgrp apache /var/lib/letsencrypt
# chmod g+s /var/lib/letsencrypt

Подготовим конфиги для получения сертификатов — переходим в папку кончиков Apache

# cd /etc/httpd/conf.d

Создаем конфигурацию для проверки принадлежности домена (под letsencrypt)

# nano letsencrypt.conf

Вносим туда следующий код

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"

<Directory "/var/lib/letsencrypt/">

    AllowOverride None

    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

    Require method GET POST OPTIONS

</Directory>

И конфигурацию параметров SSL

# nano ssl-params.conf

Куда вносим следующий код

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

SSLHonorCipherOrder On

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"

Header always set X-Frame-Options DENY

Header always set X-Content-Type-Options nosniff

SSLCompression off

SSLUseStapling on

SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

SSLSessionTickets Off

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

# systemctl restart httpd

Выписываем сертификат (вместо your-domain.com — указываем свое доменное имя)

# certbot certonly --agree-tos --email admin@your-domain.com --webroot -w /var/lib/letsencrypt/ -d your-domain.com

В результате успешной операции увидим поздравления:

Congratulations! Your certificate and chain have been saved at:

   /etc/letsencrypt/live/your-domain.com/fullchain.pem

Так же нам понадобится комбинированный сертификат — cert + dhparam, который мы генерировали ранее (не забываем поменять your-domain.com на ваш домен в путях ниже)

# cat /etc/letsencrypt/live/your-domain.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/your-domain.com/cert.dh.pem

Финальный шаг — вносим изменения в файл конфигурации веб-сайта

# nano /etc/httpd/conf.d/andreyex.ru.conf

Вставляем такой конфиг (вместо your-domain.com — ваш домен, а your-domain — папочка вашего проекта)

<VirtualHost *:80>

 ServerName your-domain.com

 Redirect permanent / https://your-domain.com/

</VirtualHost>

<VirtualHost *:443>

  ServerName your-domain.com

  DocumentRoot /var/www/your-domain

  <Directory /var/www/your-domain>

   Options FollowSymLinks

   AllowOverride All

   Require all granted

  </Directory>

  SSLEngine On

  SSLCertificateFile /etc/letsencrypt/live/your-domain.com/cert.dh.pem

  SSLCertificateKeyFile /etc/letsencrypt/live/your-domain.com/privkey.pem

  SSLCertificateChainFile /etc/letsencrypt/live/your-domain.com/chain.pem

</VirtualHost>

Перезагружаем Apache

# systemctl restart httpd

Теперь ваш сайт будет доступен с https

Так как сертификат от letsencrypt будет действовать 90 дней, давайте, сделаем автоматическое возобновление сертификата

Открываем на редактирование расписание задач системы

# EDITOR=nano crontab -e

И, в конце вставляем следующую команду

0 3 */2 * * certbot renew --cert-name your-domain.com --renew-hook "cat /etc/letsencrypt/live/your-domain.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/your-domain.com/cert.dh.pem && systemctl restart httpd"

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

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

Заходим под рутом

$ sudo su

Переходим в папку проекта

# cd /var/www/your-project-name

Переключаемся на мастер-ветку

# git checkout .
# git reset

Следующий шаг опциональный — не рекомендуется делать, если у вас не добавлены в гит-игнор все ресурсы, который могут на сервере отличаться от локальной машины (например папки vendor или uploads). Тут очищаются все файлы, которые не входят в структуру репозитория

# git clean -d -f

забираем изменения из репозитория

# git pull

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

# chown apache:apache /var/www/your-project-name/ -R
# chmod 775 /var/www/your-project-name/ -R

Можно пойти дальше и занести все эти команды в баш-скрипт, чтобы запускать все одним махом

# cd /var/www
# nano git-update-project.sh

Вставить необходимые команды, описанные выше, и сохранить

А запускаем скрипт следующим образом

$ sudo sh git-update-project.sh

Установка 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

Создание и добавление Google Analytics в блоге на WordPress

Это бонусная статья из цикла «Устанавливаем и конфигурируем блог на WordPress». Ранее настраивали хостинг для нашего домена, выбирали доменное имя и проводили установку вордпресс и создавали первую статью с сео-оптимизацией.

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

Напоминаю, что плагин All In One SEO Pack добавляет код отслеживания на ваш блог и нужно только ввести Идентификатор отслеживания в соответствовавшем поле

Итак, если у вас нету гугл-акканта (email в зоне @gmail.com) — регистрируем по адресу

https://accounts.google.com/signin/v2/identifier

После того, как мы заимели гугл-аккаунт, переходим по адресу аналитики

https://analytics.google.com/analytics/web

И, если, ранее не добавляли аналитику по этого пользователю, то увидите приветственный экран

Жмем Start

Вводим Account name (Название аккаунта)

Далее, оставляем значение по-умолчанию для вопроса What do you want to measure? — Web (Веб)

На последнем шаге в разделе Property setup (Настройка ресурса) указываем следующие значения:

Website Name (Название сайта) — имя для вашего блога (например Blog)

Website URL (URL сайта) — если у вас настроен SSL сертификат выбираем https:// и вводим адрес вашего блога

Industry Category (Отрасль) — для направленности блога в сфере информационных технологий выбрал вариант Computers and Electronics

Reporting Time Zone (Отчетный часовой пояс) — Russia и часовой пояс Moscow Time

Нажимаем кнопку Create (Создать)

Соглашаемся с условиями использования и нажимаем Finish

В результате отобразится страница Все данные по веб-сайту.

На данный момент нам нужен только Идентификатор отслеживания

Выбираем Настройки ресурса 

и копируем его там

Далее, открываем: Админка блога — Плагины — All In One SEO Pack — Настройки SEO — Google Analytics — Google Analytics ID

Применяем изменения — кнопка Обновить настройки в самом низу.

Ну, а саму статистику постепенно наблюдаем по адресу

https://analytics.google.com/analytics/web

Подготовка, публикация и сео-оптимизация статьи WordPress

Попадая в административную панель блога на вордпресс мы сразу же хотим создать свою первую статью. Я решил попробовать с приветственного слова.

Но, сперва, стоит внести простейшие изменения, чтобы ваш блог с первой статьей не был «Очередной сайт на WordPress»

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

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

Затем, в разделе Записи, выбираем первую статью, сгенерированную системой, нажимаем Изменить и описываем, например, что сподвигло вас начать вести этот блог. Сохраняем изменения и публикуем статью (совет: чаще сохранять изменения). Любуемся результатами.

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

Рекомендую поставить plugin All In One SEO Pack, один из «топовых» расширений для WordPress по данной тематике (весь необходимый нам функционал размещен в бесплатной версии). Итак, заходим в раздел Плагины, нажимаем на кнопку Добавить новый и в строке поиска вводим «All In One SEO Pack»

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

После этого, возвращаемся в раздел Плагины и для нашего плагина нажимает Активировать для его «включения».

Перейдем к общим настройкам SEO — там же нажимаем, соответсвенно, Настройки SEO.

Большинство настроек уже хорошо смотрятся со значениями по умолчанию. Стоит обратить внимание на следующие, отредактировав их:

Заголовок дом. страницы — указываем краткий, емкий заголовок для вашего блога

Описание дом. страницы — указываем чуть более развернутое описание

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

Исключить отслеживание пользователей — чтобы не влиять на статистику по сайту нашими проверками веб-страниц в блоге

После этих немногочисленных изменений в работе плагина, в самом низу списка, нажимаем кнопку Обновить настройки.

А, теперь, мы можем за-апгрейдить нашу первую статью-запись.

Возвращаемся в раздел редактирования Записей

При наведении на название статьи появляются элементы управления — выбираем Изменить.

Справа от самой Записи есть элементы управления. Из значимых для нас:

Постоянная ссылка — так как строка урла браузера больше дружит с латиницей (последствия систем кодировок), советую адрес ввести латинскими буквами, произведя транслитерацию в случае русского-буквенного предлагаемого урла

Рубрики — тоже советую этот инструмент, категоризируя свои статьи, например «administration», «code», «books», «uncategorized», и другие

Метки — указываем ключевые тэги (это так же помогаем категоризировать наши статьи, но в другом срезе, а, кроме того, создает новые страницы в нашем блоге — страницы со статьями по определенному тегу, что положительно влияет на сео)

Последний важный момент — скролим в самый низ нашей статьи до раздела All In One SEO Pack и заполняем поля:

Заголовок — указываем краткий, но емкий заголовок для это статьи

Описание — указываем более развернутое описание

Чуть выше отображается «сниппет» — как будет выглядеть интерпритация страницы статьи в поисковиках.

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

Установка 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-плагин для начальной сео-оптимизации.

Установка PHP 7.2 на Centos 7 для WordPress

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

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

На момент написании статьи CentOS 7 в стандартном репозитории имеет на борту php версии 5.4. И установить ее можно одной командой. Однако у меня было желание работать с более актуальной версией PHP (стабильной 7.2). В моем случае, необходимо заменить репозиторий (попутно установив утилиты для работы с репозиториями).

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

$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum install epel-release
$ sudo yum install yum-utils
$ sudo yum-config-manager --disable remi-php54
$ sudo yum-config-manager --enable remi-php72

И, вот тут то, устанавливаем PHP с необходимыми для блога плагинами

$ sudo yum -y install php-cli php-fpm php-mysql php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath

проверяем установленную версию

$ php -v

Вывод должен быть наподобие

PHP 7.2.30 (cli) (built: Apr 15 2020 07:23:04) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Теперь, слегка модифицируем конфигурационный файл, чтобы PHP сервис мог запускаться от имени пользователя веб-сервера caddy.

Будем использовать текстовый редактор nano, который мы ставили ранее (описано в статье), однако вы можете использовать другой редактор, в том числе стандартный vi. Итак

$ sudo nano /etc/php-fpm.d/www.conf

Ищем фрагмент с user =  и group =  

; Unix user/group of processes

; Note: The user is mandatory. If the group is not set, the default user's group

;       will be used.

; RPM: apache Choosed to be able to access some dir as httpd

user = apache

; RPM: Keep a group allowed to write in log dir.

group = apache

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

Запускаем PHP сервис

$ sudo systemctl start php-fpm

Вуаля!