/old-page/ будет перенаправлять и без последнего слеша. Если требуется задать строгое сравнение, то с помощью модификатора “=” можно задать точное совпадение URI
#
# Redirect с точным соответствием символов в URI
#
location = /old-page {
return 301 /new-page-2/;
}
Если требуется перенаправление на другой домен, то можно сделать перенаправление таким образом:
Важно понимать, что в указании $request_uri есть смысл только тогда, когда у вас на сайте в адресах после домена происходит полное соответствие, то есть old-site.ru/contact == new-site.ru/contact
Если вы изменили адрес страницы на новый, то хорошей практикой является сделать на неё постоянное перенаправление, например, для того, чтобы не потерять переходы пользователей из поисковых систем.
Настройку мы будем делать через специальный файл .htaccess – файл дополнительной конфигурации HTTP-сервера Apache.
В качестве примера возьмём сайт на WordPress. Стоит задача сделать внутреннее перенаправление с адреса /old-page/ на /new-page/
В корне сайта необходимо создать файл .htaccess
Добавьте перенаправление используя Директиву Redirect
# Перенаправление на том же хосте
Redirect 301 "/old-page/" "/new-page/"
Если вы окрыли файл .htaccess и видите уже в неё какие-то записи, то рекомендуется вносить с комментарием и в самый конец файла. В нашем примере, при открытии файла, мы можем наблюдать правила URL для красивых ссылок (ЧПУ) которые прописал сам WordPress. Мы просто в конец файла, с комментарием, добавляем новое правило перенаправления.
Что произойдёт? Теперь при посещении страницы с адресом codeispoetry.ru/old-page/ пользователь будет мгновенно перенаправлен на codeispoetry.ru/new-page/
Если требуется перенаправить на другой домен, хост:
# Перенаправление на другой хост
Redirect 301 "/about" "http://eng.example.com/about"
Задача: Запретить поисковым системам индексировать страницы нашего сайта.
Такая задача может быть актуальной, если вы разрабатываете сайт для служебных целей, например, как информационную систему внутри компании и совершенно не видите смысла делать доступной для поиска информацию на её страницах.
Так же включение данной функции полезно при разработке сайта. Если она происходит, как часто бывает, сразу онлайн — из интернета. В этом случае тоже полезно задействовать эту функцию «Попросить поисковые системы не индексировать сайт«, для того что бы случайно в поисковые базы не попали страницы с текстом-рыбой или прочим демонстративным контентом.
Как включить запрет на индексацию?
Переходим в раздел главного меню Настройки > Чтение и включаем вот эту функцию:
Что произойдёт? На все страницы вашего сайта будет добавлен мета-тег с атрибутом content, со значениями: noindex, nofollow
Что это значит? Это предписание для поисковых роботов, сигнал о том, чтобы не индексировать информацию на этой странице и не следовать по ссылкам, указанных на ней.
Важно понимать, что блокировка индексирования при помощи правила noindex не является гарантированной и существует ряд нюансов, которые могут принести разный результат, порой даже неожиданный.
noindex — Не показывать страницу, медиаконтент или ресурс в результатах поиска. Если не добавить это правило, страница, медиаконтент или ресурс будет проиндексирован и сможет показываться в результатах поиска.
nofollow — Не выполнять переход по ссылкам на странице и не связывать отношения их (ссылок) с ней (с текущей страницей).
Внимание! Запуская сайт в Production-среду обязательно проверяйте эту настройку. Если вы хотите чтобы вас находили в интернете она должна быть отключена!
Что такое панель администратора WordPress? Это приватная часть сайта для управления его содержимым. То есть, наш сайт под управлением CMS WordPress состоит из двух частей: публичной и приватной.
Публичная часть
Публичная часть сайта доступна всем в сети интернет. Любой может перейти на неё, например, из поисковой системы Google или Яндекс и увидеть её содержимое.
Но информации изменить на страницах, будучи обычным посетителем, мы не можем. Для того чтобы изменить информацию на страницах или создать новые нам необходимо зайти в панель управления — это является уже приватной частью сайта.
Приватная часть
Приватная часть сайта — она же «админка», она же панель управления WP, она же консоль, она же WP Admin Dashboard (англ.) и можно встретить ещё ряд названий, нужна для того чтобы управлять содержимым сайта: менять информацию на нём, создавать страницы, новые разделы и т.п. Но вход в неё доступен не всем. Вход доступен по имени пользователя и паролю.
Как зайти в панель управления?
Очень просто. После адреса сайта допишите /wp-admin
Произойдёт перенаправление и откроется страница с формой для входа
Если внимательно приглядеться, то можно заметить, что перенаправление произошло на файл wp-login.php, следовательно второй вариант входа в «админку» можно осуществить просто дописав вместо /wp-admin вариант /wp-login.php
Мы окажемся на том же экране, где нам необходимо пройти авторизацию (зайти в админку с правами нашей учётной записи) при помощи Имени пользователя (login) и Пароля (password)
Если вы не помните пароль, то его можно восстановить. На рисунке выше отмечена ссылка для восстановления.
При успешном входе вы увидите приватную часть сайта — панель управления WordPress:
В этой публикации мы рассмотрим настройку отправки почты с сайта сделанного на CMS WordPress через почтовый сервис от Google для того чтобы письма не попадали в СПАМ.
В первой статье по настройке плагина WP Mail SMTP мы рассмотрели возможность настройки через SMTP хостинг-провайдера, а эта публикация будет посвящена SMTP от Google.
Напомню, что плагин WP Mail SMTP включает в себя множество различных вариантов настройки SMTP:
SendLayer
SMTP.com
Brevo (formerly Sendinblue) SMTP
Mailgun SMTP
SendGrid SMTP
Postmark SMTP
SparkPost SMTP
Gmail SMTP (Gmail, Google Workspace, G Suite)
Microsoft SMTP (Outlook.com и Office 365) [Pro платная версия]
Amazon SES SMTP [Pro платная версия]
Zoho Mail SMTP [Pro платная версия]
Все прочие SMTP
Бесплатная версия плагина позволяет нам настроить отправку почтовых сообщений через Gmail SMTP. Я ожидаю, что плагин у вас уже установлен и мы сразу обращаемся к экрану настроек с выбором сервиса-посредника:
Почтовая программа Gmail хорошо подходит для сайтов, которые отправляют небольшое количество писем. API Gmail имеет ограничения скорости и ряд дополнительных ограничений, которые могут привести к проблемам во время отправки.
Если вы планируете отправлять большое количество писем или обнаружите, что ваш веб-сервер не совместим с ограничениями API Gmail, мы рекомендуем рассмотреть другой вариант почтовой программы.
Примечание от разработчиков
После выбора провайдера (в нашем случае это Google/Gmail) ниже будут доступны его настройки, с которыми мы сейчас начнём работу
Принятая весть для обладателей PRO-версии, включение функции One-Click Setup обеспечивает быстрый и простой способ подключения к Google, не требующий создания собственного приложения.
Но так как мы рассматриваем вариант подключения в бесплатной версии впереди нас ожидает тернистый путь 🙂
Первое условие — у вас должен быть аккаунт на Google, так как дальнейшая наша работа будет связана с ним. Если у вас нет аккаунта на Google, то воспользуйтесь этой справкой чтобы его создать: Как создать аккаунт?
Настройки подключения. Шаг за шагом
В разделе настроек Основные укажите вашу почту на сервисе Gmail через которую будет осуществляться пересылка сообщений
После этого переходим к разделу с внесением данных:
ID клиента
Секретный код клиента
Чтобы их получить вам потребуется использовать свою учетную запись Google для создания веб-приложения.
Создание веб-приложения в вашей учетной записи Google
Примечание. Прежде чем продолжить, обязательно выйдите из всех других учетных записей Google, кроме учетной записи, которую вы будете использовать для настройки SMTP.
В новой вкладке или окне, которое вы открыли, войдите в свою учетную запись Google и откройте Google Cloud Console .
Если вы впервые используете Google Cloud Console, вы можете увидеть всплывающее окно с просьбой выбрать страну и согласиться с Условиями обслуживания.
Сделайте это, а затем нажмите «Agree and Continue» , чтобы перейти к следующему шагу.
Далее необходимо создать Новый проект
Поле этого дадим название нашему проекту
После создания проекта, убедитесь что выбран именно он и перейдите в подраздел Библиотеки (Library) раздела APIs & Services
Далее нам нужно включить API, для этого введите в строке поиска «Gmail API»
Выбираем Gmail API и включаем его:
После включения API Gmail вы должны быть перенаправлены на страницу обзора API Gmail. Здесь нажмите кнопку Create credentials.
На следующей странице нам нужно пройти последовательно несколько этапов заполнения данных. Первым — в раскрывающемся списке выберите «Gmail API» и выберите опцию User Data, после этого нажимаем Next
Затем Google запросит некоторую базовую информацию о вашем приложении. Мы заполним лишь обязательные поля (помечены звёздочкой). Первая часть для публичных данных о приложении, а последний E-mail (кантатная информация разработчика) предназначен для Google, чтобы уведомлять вас об изменениях в вашем проекте.
Следующий раздел №3 необязателен для заполнения, поэтому кликаем «Сохранить и Продолжить«
В разделе №4 OAuth Client ID выбираем Веб-приложение (Web Application)
А также задаём Имя — это имя используется только для идентификации клиента в консоли и не будет отображаться конечным пользователям.
Затем пропустите раздел Authorized JavaScript origins и переходим к важному моменту — это подраздел Authorized redirect URIs. Здесь нам нужно добавить URI перенаправления.
Но где его взять? Для этого нужно вернуться на ваш сайт к странице настроек плагина, там он указан:
У всех он одинаковый, поэтому можете просто скопировать его отсюда:
https://connect.wpmailsmtp.com/google/
Вставьте эту ссылку и создайте перенаправление
После успешного добавления вы автоматически переместитесь к заключительному этапу №5, на котором у вас будет отображаться ваш клиентский ID
Нам доступна загрузка информации для аутентификации приложения в формате JSON, но мы, как обычный пользователь, просто скопируем Clien ID и добавим его в настройки плагина на сайте
Не забудьте сохранить изменения. Теперь давайте получим Секретный код клиента.
Зайдите в раздел «OAuth consent screen» и в подразделе «Статус публикации» обратите внимание на текущий статус — это Test. Опубликуйте ваше приложение кликнув Publish App
Подтверждаем…
После публикации в «Продакшн»,вы можете заметить изменение в статусе.
Отлично! Далее, перейдите в раздел Credentials. Там вы обнаружите ваше приложение для аутентификации на серверах Google. Нажмите на карандашик чтобы перейти к редактированию
Именно там и находится Client secret. Хотя, стоит заметить, что на этапе создания Client ID, когда нам был ещё доступен файл для скачивания с данными в формате JSON, то там уже присутствовал наш Client ID. Но это просто для информации.
Что ж, копируем и вносим в настройки плагина наш Client ID
Становится активной примечательная кнопочка Разрешить плагину отсылать почту использую ваш google аккаунт.
Притомились? Но финал близок. Теперь всё готово и нам нужно осуществить Авторизацию.
Нажимаем… Откроется экран входа в Google. Продолжайте и войдите в учетную запись, с которой вы настраиваете SMTP.
После выбора аккаунта вы можете увидеть вот такое предупреждение. Не переживайте. Просто переходите по ссылке к Дополнительным настройкам
И нажимаем на ссылку перехода
Перед нами ещё один экран. Здесь после одобрения произойдет обратное перенаправление
После некоторой магии, в которой произойдет обмен токенами и приложения пройдут аутентификации, вы должны увидеть вот такое сообщение об успешной авторизации.
А кнопочка превратится вот в такую:
Поздравляю! Вы сделали это!
Теперь смело переходим к тестированию отправки сообщений и отправим вначале через Инструмент данного плагина
А вот и письмо в ящике после успешного теста
Проверим с боевой формы сайта
Письмо на месте)
Сделаем проверку через сервис Mail Tester. Неплохо)
Правда наш «айпишник» значится в 2-х базах чёрных списков. Но это уже совершенно другая история…
Довольно интересный вопрос может возникнуть перед начинающим пользователем: а существует ли вообще страницы сайта в интернете и доступны ли они для поиска в Google или Яндекс?
Проверить это возможно при помощи специальных операторов.
Проверка в поисковой системе Google
Первым делом давайте проверим что знает о нашем сайте поисковая система Google. В этом нам поможет Оператор поиска site:
Оператор site: позволяет запрашивать результаты поиска для определенного домена, URL или префикса URL.
Примеры использования оператора site:
site:example.com
Возвращает список URL, которые проиндексированы и показываются. В этом списке могут быть не все ваши URL. Особенно это касается крупных сайтов со множеством страниц.
site:https://codeispoetry.ru/wp-mail-smtp/
Позволяет узнать, проиндексирован ли определенный URL и может ли он показываться в результатах поиска.
site:https://codeispoetry.ru/ почта
Показывает, какие URL на сайте могут показываться по запросу со словом «почта».
site:https://codeispoetry.ru/wp-mail-smtp/ почта
Показывает, проиндексирован ли определенный URL для показа по запросам со словом «почта».
Источник: Главное о Google Поиске
И ниже визуальные примеры. Первый пример показывает, какие страницы могут показаться пользователю по запросу со словом «почта»
А этот вариант демонстрирует пример того, что указанный УРЛ никак не ассоциируется со словом «почта» и не будет показан пользователю
Если вы увидите подобную картинку при проверки всего вашего сайта, указав просто домен, то дело плохо 🙁
Значит поисковая система ничего не знает о вашем сайте и вам необходимо его добавить в индекс поискового робота Google.
site:ВАШ_ДОМЕН
Как найти СПАМ или бессмысленные страницы вашего сайта?
Данный оператор может стать незаменимым помощников в поисках различного СПАМа на вашем сайте или же странных названий страниц, для их дальнейшего исправления.
Приведу пример в контексте WordPress. Много лет после установки и запуска сайта на CMS WordPress в заголовок страницы добавлялась надпись «Ещё один сайт на WordPress» и вы даже представить себе не можете, как много ещё присутствует страниц с этим заголовком.
Данный пример иллюстрирует эту маленькую проблему. Например, вместо первого заголовка при оптимизации сайта для поисковых роботов следовало бы указать «Правительство Республики Тыва» вместо того что на данный момент выводится.
Соответственно, вы может проверить свой сайт на наличие этого выражения и исправить заголовок страницы на что то пооригинальнее 🙂
Учтите, что Оператор site: без запроса (например, site:example.com), не поддерживает ранжирование результатов. Как правило, первым показывается самый короткий URL с учетом префикса. В остальном результаты выбираются относительно случайно.
Приятная новость! Этот оператор прекрасно работает и в поисковой системе Яндекс. Тем же принципом вы можете проверить страницы вашего сайта в индексах поисковой машины Яндекс. В данном примере мы запрашиваем УРЛ от нашего основного домена, которые ассоциируются с запросом «mysql»
Единственное, видимо Яндекс строже относится к операторам и разделяет в своих примерах их на:
Поиск по страницам, размещенным по определенному адресу (URL) — оператор url:
Поиск по всем поддоменам и страницам определенного сайта — оператор site:
Поиск по страницам на определенном хосте — оператор host:
Поиск по страницам на определенном домене — оператор domain:
Немного путанная история получается, но тем не менее, оператор site: с моей задачей вполне справился. Если есть желание поэкспериментировать, то ссылку на примере я указал.
Посмотреть недавно добавленные страницы в Яндекс можно при помощи фильтров. То есть, я указываю адрес своего сайта и ограничиваю выдачу текущими сутками:
Ещё раз отмечу, если ваш сайт не отображается в поисковых системах, то вас естественно никто никогда не найдёт в интернете. Необходимо позаботиться о добавлении информации, о вашем сайте в поисковые системы.
В этой статье рассмотрим, пожалуй, самый простой плагин для страничного кеширования сайта на WordPress — Surge.
Плагин настолько простой, что даже не имеет настроек и работает «из коробки», то есть сразу же после установки и активации. Файлы кэша сохраняются на диске и автоматически удаляются при обновлении сайта — вот и весь принцип работы.
Если не вдаваться в подробности, то данный плагин позволит ускорить ваш сайт и снять нагрузку с сервера. Вот яркое заявление от разработчиков:
В различных нагрузочных тестах Surge показал, что легко обрабатывает 1000–2500 запросов в секунду при 100 одновременных операциях на небольшом одноядерном сервере всего с 1 ГБ ОЗУ. Это более чем в 70 раз быстрее, чем стандартная установка WordPress.
https://wpmag.ru/2021/surge-caching-wordpress/
Как установить плагин?
Установить плагин Surge можно через панель администрирования WordPress в разделе Плагины > Добавить новый.
После активации плагин сразу приступит выполнять свои обязанности. В директории wp-content вашего сайта будет создан файл-вкрапление и директория для хранения кэша
Ну а сами файлы кэша выглядят вот так
Как проверить что кэширование работает?
Можно открыть страницу сайта в режиме инкогнито, пару раз обновить, чтоб страница точно попала в кэш и с помощью инструментов для разработчиков посмотреть заголовки ответа сервера:
Значение hit директивы X-Cache говорит о том, что ответ пришёл из кэша, а это значит что всё хорошо и наше кеширование работает 🙂
Если вы используете WP-CLI, то установить и активировать Surge можно так:
Довольно частой и основной проблемой для заказчика является подготовить и предоставить контент для разрабатываемого сайта. Естественно это становится непосильной задачей и для самого разработчика. В этой статье хочу предложить выход из этой ситуации и сгенерировать контент при помощи бесплатной нейросети.
GigaChat
GigaChat — диалоговая AI-модель от Сбера, которая отвечает на вопросы, сочиняет тексты, пишет код и рисует картинки. Говорит на русском и понимает английский.
Рассмотрим простой кейс. Мы разрабатываем сайт для мебельной компании и требуется внести описания для товаров. Или, предположим, мы выступаем в роли контент-менеджера мебельного сайта и стоит задача подготовить описания для ряда товаров.
Вот, например, заказчик отправляет нам картинку с пометкой что это Детские от «Ferretti e Ferretti». Коллекция «Happy night».
Да, можно тратить большое количество времени на поиск информации, на подготовку текстов, проверки его на наличие ошибок и т.д. и т.п. Но мы рассмотри простой пример, который позволит сделать описание в течении минуты.
Затем в чате просим подготовить описание для нашего товара. Считанные секунды и описание для товара готово! Конечно не нужно слепо доверять ИИ и требуется перечитывать, вникать, корректировать. Так как очевидно контекст (мебельный) моделью не уловлен.
Затем я попросил ГигаЧат сгенерировать картинку для статьи про искусственный интеллект.
Рассмотрим ещё один пример. Товар: «Барный стул Pippa» и одна фотография к нему
Обращаемся к GigaChat… несколько секунд и описание готово!
Если по каким то причинам сгенерированный текст вас не устроил, то вот шпаргалка с ключевыми словами, способных придать вашему тексту новую окраску, стиль.
Вот сделал повторный запрос:
Конечно же модель слабовата по сравнению с той же GPT версии 4, но это хоть что-то, с чего можно бесплатно и сразу начать делать контент.
P.S. картинки тоже ужасные она создаёт, но я верю в её ближайшую эволюцию 🙂 Хотя, некоторые запросы выдавали достойный результат:
В левой части экрана будет доступна ваша история Запросов, которой можно поделиться или при желании удалить.
Рассмотрим ещё один сервис, который доступен нам для бесплатного использования, правда из Яндекс Браузера.
YandexGPT 2
Алиса помогает придумывать — идеи, тексты на разные темы и многое другое. Попросите её написать поздравление бабушке, придумать имя для кота или идею для стартапа — и увидите, что будет.
Писать ответы ей помогает YaGPT 2 — новая нейросеть Яндекса.
Открываем Яндекс Браузер и нажимаем на значок Алисы.
Далее выбираем YaGPT 2
И ставим изначальную задачу уже этой нейросети:
На мой взгляд модель искусственного интеллекта от Яндекс грамотнее справилась с поставленной задачей. Даже отдельно заголовок сочинила 🙂
Попробуем второй запрос отправить для карточки товара.
Недурно. А что насчёт характеристик?
На мой взгляд достаточно ёмко и по делу получилось. Конечно, стоит перепроверять данные, но так или иначе, эти помощник сэкономят массу времени и сил на этапе создания контента у владельцев сайтов и контент-менеджеров.
Чтобы приступить к созданию Базы данных, нам необходимо осуществить вход на сервер СУБД MariaDB или MySQL. Для этого из командной строки используйте команду:
mysql -u root -p
Следующим шагом вам будет предложено ввести пароль вашего пользователя. Примечание. Если вы работаете под другим пользователем, то нужно указывать его. В моём примере — это пользователь root.
Вот пример удачного входа на сервер MySQL
mysql> это хороший знак! Значит вы успешно авторизовались. Для СУБД MariaDB будет справедливо MariaDB [(none)]>
Если вы находитесь на сервере под учётной записью root, то в некоторых случаях осуществить подключение может простая команда
mysql
Ниже мы видим реальное выполнение команды под учётной записью root
Отлично! Теперь можно приступить к созданию базы данных.
Как создать базу данных из командной строки?
Создать базу данных мы можем при помощи оператора CREATE DATABASE
Если используется выражение IF NOT EXISTS, то в ситуации, когда база данных уже существует, пользователю будет выдано предупреждение, а не сообщение об ошибке.
CREATE DATABASE IF NOT EXISTS db_name;
Результат вывода
+--------------------+
| Database |
+--------------------+
| amo |
| db_name |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
7 rows in set (0.020 sec)
Поздравляю! База данных с именем db_name успешно создана.
Для ознакомления с базовыми операторами рекомендуется к прочтению эта публикация.
Как удалить базу данных из командной строки?
Тут всё очень просто. Идём от обратного. Оператор DROP удаляет, а выражение IF EXISTS проверяет присутствие базы с этим именем в системе
DROP DATABASE IF EXISTS db_name;
Настройка кодировки и правил сортировки
Вдаваться в подробности про кодировки и правила сортировки я в этой статье не буду, скорее всего создам отдельную, так как тема довольно запутанная и неоднозначная для начинающих пользователей.
Вы можете начать с просмотра поддерживаемых параметров сортировки вашего сервера. Для этого воспользуйтесь оператором SHOW COLLATION
Отмечу, что в СУБД MariaDB и MySQL имеют набор символов по умолчанию, и в зависимости от дистрибутива параметры сортировки могут отличаться. И если ваш сайт, например, на двух языках: латинские и кириллические символы, то возможно при создании базы данных оптимальным выбором будет указать utf8mb4_general_ci | utf8mb4
То есть, при создании базы данных запись будет выглядеть следующим образом:
CREATE DATABASE IF NOT EXISTS db_name
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_general_ci';
Но если вы сомневаетесь, или точно знаете, какие символы будут присутствовать в индексах, то можно остановиться на этом решении utf8mb4_unicode_ci — которое обеспечивает полную поддержку символов Unicode, или версией Unicode «520»: utf8mb4_unicode_520_ci, или более свежим алгоритмом сравнения символов utf8mb4_0900_ai_ci. Но тут по ситуации.
CREATE DATABASE IF NOT EXISTS db_name
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_unicode_ci';
В каких то случаях оптимально будет указать CHARACTER SET ‘utf8’, так как эта кодировка менее требовательна к памяти, но зато не может сохранить, например, смайлики, которые требуют выделения большего числа байтов для хранения (utf8mb4). Вобщем, тут нюансов не мало и зависит от архитектуры и требований к веб-приложению.
В любом случае параметры сортировки пользовательской базы данных можно изменить с помощью ALTER DATABASE. Менять и задавать новые значения мы можем, как на уровне сервера, так и на уровне БД, её отдельных таблиц и столбцов.
ALTER DATABASE db_name COLLATE utf8mb4_unicode_ci;
Что ж, база данных у нас есть и теперь нам необходимо создать пользователя.
Как создать нового пользователя в MySQL или MariaDB?
Работать под «рутом», как мы делали это раньше, не безопасно. Поэтому, давайте создадим отдельного пользователя и наделим его правами.
По аналогии с адресом электронной почты имя пользователя СУБД MySQL (или MariaDB) состоит из двух частей, разделенных символом «собачки»:
‘user’@’host’
Обратите внимание на кавычки, зачастую отсутствие одной из них является причиной ошибки.
При создании пользователя предлагаю сразу добавить пароль для аутентификации на сервере (IDENTIFIED BY) и по аналогии с созданием БД проверить на отсутствие в системе при помощи IF NOT EXISTS
CREATE USER IF NOT EXISTS 'vasya'@'localhost' IDENTIFIED BY '12345';
Убедимся, что наш пользователь добавился:
SHOW CREATE USER 'vasya'@'localhost';
Результат:
MariaDB [db_name]> SHOW CREATE USER 'vasya'@'localhost';
+----------------------------------------------------------------------------------------------------+
| CREATE USER for vasya@localhost |
+----------------------------------------------------------------------------------------------------+
| CREATE USER `vasya`@`localhost` IDENTIFIED BY PASSWORD '*00A51F3F48415C7D4E8908980D443C29C69B60C9' |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.002 sec)
Обратите внимание, что пароль хранится в хешированном виде, так как был хеширован функцией PASSWORD перед сохранением в таблице mysql.user.
Как удалить пользователя в MySQL или MariaDB?
По аналогии с базой данных, раз мы научились создавать пользователей, давайте рассмотрим возможность их удаления:
DROP USER IF EXISTS 'vasya'@'localhost';
Как изменить пароль у пользователя СУБД?
Осмелюсь предвидеть, что однажды вы забудете пароль или вам потребуется его изменить, для этого можно воспользоваться командой:
ALTER USER 'vasya'@'localhost' IDENTIFIED BY 'new_password';
На самом деле нюансов и настроек большое количество при создании пользователей СУБД. Взглянуть можно тут.
Следующим шагом мы проверим подключение и пройдём аутоинтефикацию на сервере под именем нового пользователя. Для этого выйдем из оболочки MySQL при помощи команды exit; И затем осуществим вход под новым созданным пользователем:
mysql -u vasya -p
И затем попросим СУБД отобразить базы данных
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.002 sec)
Маленькая неприятность. Мы не видим всех баз данных, а только служебную. Это происходит потому что наш пользователь не наделён нужными правами.
Давайте проверим текущие права (полномочия) пользователя
SHOW GRANTS FOR 'vasya'@'localhost';
На текущий момент они отсутствуют. Вот пример сравнение двух пользователей: root и vasya
MariaDB [(none)]> SHOW GRANTS FOR 'root'@'localhost';
+------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED VIA unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
MariaDB [(none)]> SHOW GRANTS FOR 'vasya'@'localhost';
+--------------------------------------------------------------------------------------------------------------+
| Grants for vasya@localhost |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `vasya`@`localhost` IDENTIFIED BY PASSWORD '*00A51F3F48415C7D4E8908980D443C29C69B60C9' |
+--------------------------------------------------------------------------------------------------------------+
1 row in set (0.001 sec)
Что ж, давайте исправим это. И поможет нам в этом оператор GRANT, с помощью которого мы предоставим полный доступ к созданной базе данных пользователю ‘vasya‘.
В работе с оператором тоже не мало нюансов, нельзя смешивать сразу привилегии и роли, а иногда стоит выборочно указывать возможности (привилегии) пользователю и также выборочно предоставлять доступ, например, не ко всей БД, а к какой-нибудь отдельной таблице и т.п.
Но мы рассмотрим общую типичную ситуацию, когда мы создали базу данных, предположим для сайта на CMS WordPress, создали отдельного пользователя для работы с ней, чтобы он мог (от его имени) создавать новые таблицы, выполнять операции по удалению, обновлению данных (SELECT, INSERT, UPDATE…).
И всё что нам осталось — это наделить его всеми правами исключительно для созданной базы данных (напомню, что в нашем примере её имя db_name)
GRANT ALL ON db_name.* TO 'vasya'@'localhost';
После подобных операций необходимо сбрасывать привилегии. Если я не ошибаюсь, то после подобных операций, сервер сам должен перезагружать таблицы привилегий, но чтобы было наверняка давайте сообщим об этом серверу, о необходимости перезагрузки таблиц привилегий. Для этого выполните операцию очистки привилегий FLUSH PRIVILEGES
GRANT ALL ON db_name.* TO 'vasya'@'localhost';
FLUSH PRIVILEGES;
Теперь если мы зайдём под учётной записью ‘vasya‘ и повторим запрос на просмотр доступных БД, то увидим в списке нашу db_name
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| db_name |
| information_schema |
+--------------------+
2 rows in set (0.001 sec)
А если сделаем запрос на просмотр привилегий, то можем заметить следующее:
MariaDB [(none)]> SHOW GRANTS FOR 'vasya'@'localhost';
+--------------------------------------------------------------------------------------------------------------+
| Grants for vasya@localhost |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `vasya`@`localhost` IDENTIFIED BY PASSWORD '*00A51F3F48415C7D4E8908980D443C29C69B60C9' |
| GRANT ALL PRIVILEGES ON `db_name`.* TO `vasya`@`localhost` |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
Посетители вашего сайта отправляют вам электронные письма через контактные формы, а они попадают в папку СПАМ, или не приходят вовсе. Знакомая картина?
Эта проблема присутствует на многих сайтах под управлением WordPress, потому что по умолчанию WordPress использует для отправки электронных писем почтовую функцию PHP и многие сервера не настроены должным образом и не соответствуют требованиям безопасности, которые достигаются настройкой SPF, DKIM и DMARC записями.
Первое с чего стоит начать — это с тестирования.
Протестируйте Ваши письма на СПАМ
Переходим на страницу этого сервиса. Вам будет сгенерирован случайным образом адрес электронной почты, на который вам необходимо отправить тестовое сообщение, чтобы затем сделать диагностику и выявить причины попадания сообщений в СПАМ.
После копирования E-mail страницу не закрывайте! Мы к ней ещё вернёмся.
Плагин Contact Form 7
Если вы используете на сайте для создания контактных форм плагин Contact Form 7, то необходимо этот email указать в числе получателей (если получателей несколько, то их нужно разделять запятыми).
Теперь необходимо со страницы вашего сайта, с контактной формы отправить сообщение
Затем нам нужно вернуться на сайт на котором сгенерирован наш E-mail и перейти к отчёту проверки
Перед нами откроется окно с результатами, где в принципе, всё подробно расписано, за что вам снизили баллы и т.п.
В частности мы видим, что у нас не настроены нужные и важные записи, которые подтверждают достоверность отправителя и как следствие системы защиты почтовых сервисов могут отправлять ваши письма в СПАМ.
DKIM — это метод проверки подлинности сообщений электронной почты и в отчёте мы видим его отсутствие. Также отсутствует и DMARC, который защищает получателя от спуфинга (англ. spoofing — подмена). Поэтому не стоит удивляться, что отправленное письмо прилетело в СПАМ 🙂
Что делать дальше? Как исправить ситуацию?
Можно настраивать эти записи DNS вручную или при помощи поддержки «хостера» (места где размещается ваш сайт), как правило служба поддержки оказывает подобные услуги и помогает настраивать эти вещи.
Решать поставленную задачу мы будем за счёт плагина и надежно настроим отправку сообщений, для того чтобы они больше не попадали в папку СПАМ получателей.
Встречайте, плагин WP Mail SMTP
Необходимо установить плагин на ваш сайт. Если вы не знаете, как это сделать, то воспользуйтесь этой инструкцией.
После установки и активации перед вами откроется окно помощника установки. Предлагаю просто вернуться в Панель управления
Далее, мы окажемся на странице настроек плагина. Кстати, он создаёт целый раздел в Главном меню панели управления
В первую очередь нас интересует раздел на этой странице, который называется Почтовая программа. Тут нам нужно будет выбрать провайдера (сервис-посредник, через который будет осуществляться отправка Email-сообщений)
Из примера мы видим, что по умолчанию у нас стоит PHP, который нам нужно поменять на один из доступных сервисов. Отмечу, что часть из них доступны только в платной версии.
Мы воспользуемся универсальным методом Прочие SMTP. Это подойдёт для большинства пользователей, но стоит учесть некоторые нюансы, которые конечно же будут.
У вашего хостинг-провайдера должна быть возможность создания почтовых ящиков. Точно могу сказать, что на хостинге от компании TimeWeb эта возможность присутствует. И у хостинг-провайдера Beget на виртуальном хостинге эта возможность есть.
В нашем примере будет рассмотрен хостинг-компания Beget.
Создание почтового ящика
Принцип создания почтовых ящиков, плюс/минус одинаковый. В качестве примера будем создавать почтовый ящик у хостинг-провайдера Beget. Создаём мы его только с одной целью — чтобы он выступал в качестве посредника-отправителя.
На главной странице Панели управления хостингом переходим в раздел Почта
Выбираем нужный домен (тот на котором ваш сайт, для которого мы и настраиваем SMTP) и затем создаём новый почтовый ящик. Я создал его с именем «hello», следовательно моя почта отправителя будет «hello@codeispoetry.ru»
Подробнее, о создании почты на домене можно прочесть тут.
После того, как почта наша готова к работе, нам необходимо узнать данные для SMTP. Эти данные можно запросить у службы поддержки или найти самостоятельно в документации. Я это уже сделал за вас и публикую данные для настройки почтовых клиентов на серверах Beget.
Настройка подключения на серверах Beget
Для настройки работы почты через сервера Beget нужно использовать следующие реквизиты подключения:
Сервер исходящей почты
SMTP-сервер — smtp.beget.com
Порты
SMTP — 25 или 2525 SMTP защищенный SSL — 465
Ограничения на использование почты
На хостинге установлены следующие ограничения на отправку почтовых сообщений:
через PHP-функцию mail(), он же sendmail, можно отсылать не более 30 писем в минуту;
через SMTP-сервер не более 30 писем в минуту и не более 1500 писем в час;
число получателей одного письма — не более 300;
максимальный размер почтового сообщения для SMTP — 75Мб, для mail() — 70Мб;
рассылка должна быть валидной: не содержать вредоносных файлов и ссылок на них, в письме должна содержаться ссылка на отказ от получения данной рассылки.
Теперь подытожим, давайте зафиксируем данные которые нам понадобятся для реализации подключения:
Адрес почтового ящика (который мы создали ранее)
Пароль от этого почтового ящика (задаётся при создании, но можно всего его изменить)
Адрес SMTP-сервера (у каждого провайдера свой, в нашем примере он smtp.beget.com)
Порт 465
Теперь внесём эти данные в настройки нашего подключения SMTP на нашем сайте:
Будьте предельно внимательны. Обратите внимание, что включено, а что выключено в моих настройках, какой указан порт и т.д.
Примечание. Для опытных пользователей рекомендуется данные для подключения указывать через конфигурационный файл WordPress — wp-config.php Это позволит защитить настройки сделав невозможным их редактирование через панель управления. Подробнее…
После этого, нам необходимо перейти в раздел Инструменты и протестировать отправку нашего сообщения:
Если вы всё сделали верно, то непременно письмо будет отправлено успешно:
Но всё равно достоверность его страдает и наше письмо снова залетает в СПАМ, по крайней мере на mai.ru. Это из за того, что у нас отсутствует DKIM
DKIM (DomainKeys Identified Mail) — технология проверки электронной почты, с помощью которой можно вычислить поддельные письма. DKIM добавляет в письмо цифровую подпись. Благодаря ей почтовые провайдеры (Mail.ru, Gmail) могут проверить, что сообщение отправлено именно с указанного домена.
Да, нам никак не избежать дополнительных настроек чтобы добиться качественного отправления. Но есть приятный момент. Когда мы задействуем для отправки сторонние сервера, как в нашем случае с Beget, за нас внесение записи берёт на себя служба поддержки хостинга, по крайней мере на Beget это так. Вот цитата из документации по настройке почтовых клиентов.
Для завершения настройки нам нужно обратиться в поддержку. Текст обращения может быть примерно следующим:
Здравствуйте. Создали почту на домене [ВАШ ДОМЕН] Используем для отправки SMTP Beget. Письма попадают в СПАМ. Просим внести запись DKIM. Спасибо.
Очень приятно, что поддержка Beget в лице Ирины Станиславовны не заставила себя ждать с ответом.
Думаю можно не проверять запись, доверяя работе квалифицированных сотрудников службы поддержки Beget, но если вам интересно убедиться, то тут же из консоли это возможно сделать:
Теперь, если мы повторим отправку сообщения, то можем увидеть наше письмо в разделе Входящие. Для фильтров большинства сервисов наличие записи DKIM вполне достаточно в качестве аргумента 🙂
Но завершающим действием, я предлагаю сделать добавление записи DMARK. Да, её необходимо будет добавить самостоятельно. Для этого переходим в раздел DNS
В этом разделе необходимо выбрать нужный домен и создать для него подзону:
И указываем подзону _dmarc
После этого выберем созданный поддомен и внесём запись TXT со следующим содержимым:
Может не так очевидно, но сообщение говорит о том, что запись присутствует. Всё хорошо.
Попробуйте сделать повторный тест на сервисе Mail Tester. Напишите, помогло ли вам это решение?
Напоследок, рекомендую проверить следующие настройки плагина:
Адрес отправителя — тут должна быть указана ваша почта, ящик которой вы создали.
Принудительно использовать адрес отправителя — ВКЛ (включено)
Лишним не будет указать и имя отправителя на что то более уникальное, чем, как в моём примере — Demo Site.
Послесловие.
Да, безусловно путь не простой по настройке протокола для передачи E-mail сообщений, но его необходимо раз сделать и забыть, чем постоянно мучаться и подвергать себя рискам, которые особенно могут вылезти на сайте электронной коммерции.
Следующая статья тоже техническая, но она позволяет настроить отправку писем через ваш аккаунт на Gmail. В моей практике этот метод настройки был надежным и служил верой и правдой долгие годы на сайтах заказчиков.
Плагины в WordPress — это специальный, добавочный код в виде файлов, который дополняет WordPress новыми функциями или меняет текущие.
Например, чтобы дополнить наш сайт функциями интернет-магазина, нам необходимо установить плагин WooCommerce. А для того чтобы превратить наш сайт в онлайн-платформу для образования, нам нужно задействовать плагин Sensei LMS — онлайн-курсы, контрольные вопросы и обучение.
Так как же установить плагин в наш сайт под управлением WordPress? Рассмотрим три основные способа. И начнём с самого популярного и простого способа.
Установка через панель управления из официального репозитория (хранилища) WordPress
В WordPress есть механизм (встроенный установщик) по поиску и добавлению плагинов прямо из панели управления сайтом. Единственное, вам необходимо обладать правами для этого, а это значит выполнять эти операции нужно под записью администратора — с наивысшими привилегиями.
Заходим в панель управления сайтом и следуем в раздел Плагины
В этом разделе мы можем увидеть все плагины которые уже установлены на наш сайт, но часть из них может быть включена (активирована), а часть выключена (деактивирована).
Чтобы добавить новый плагин нажмите в верхней части страницы Добавить плагин. (эта же функция есть в подменю раздела). Перед нами откроется страница встроенного установщика, где нам необходимо ввести ключевое слово для поиска.
Обращу внимание, что поиск осуществляется по официальному хранилищу, каталогу плагинов WordPress, доступному по этой ссылке. На сегодняшний день заявлено примерно 60 000 плагинов. Внушительная цифра, не правда-ли?
Например, мы желаем установить на сайт плагин для создания контактных форм. Тогда в нашем случае, пожалуй удачным запросом может являться сочетание этих слов.
Перед вами будет огромный выбор плагинов. Как правило, первые из них это то что вам нужно (при условии, что вы ввели однозначно понятный запрос). Например, если я хотел бы реализовать на сайте интернет-магазин, то вероятнее всего так и написал бы:
В этом случае плагин WooCommerce является лучшим решением для электронной коммерции на WordPress.
На что стоит обратить внимание?
Предположим мы нашли нужное нам решение. Но прежде чем устанавливать и активировать плагин, взгляните на информацию о нём. она доступна в его карточке.
Это количество и качество оценок. И в примере выше вопросов не остаётся. Миллионы пользователей используют решение и 13 тысяч отзывов, которые наполняют все пять звёзд.
Обновление. Хорошо когда у плагина стоит дата его обновления в течении до 6-12 месяцев. Если плагин обновлялся последний раз лет 5 назад, то стоит задуматься. В этом случае могут быть проблемы с совместимостью. Хотя встречаются иногда плагины, которые не обновлялись лет 5, но работают безупречно. Но это редкость.
Совместимость. Хороший знак если плагин совместим с вашей версией установки WordPress. Хотя могут многие плагины быть несовместимы, но при этом работать без ошибок.
В любом случае обратите внимание на эту информацию. Категорически не рекомендую устанавливать плагины у которых много отзывов с низкой оценкой. В этом случае стоит подобрать другое решение или посоветоваться с опытными разработчиками, например, на форуме поддержке на предмет использования плагина. Так же не рекомендую использовать плагины, которые не обновлялись 5 и более лет.
Установка и активация плагина
Ну и если всё «ok», то нам ничего не мешает установить плагин в наш сайт. Для этого нужно просто нажать кнопочку «Установить«
Процесс установки может занять некоторое время, как правило в среднем до минуты, в зависимости от размера загружаемого файла плагина и скорости соединения.
Установка — это значит загрузка файлов плагина в директорию нашего сайта, то есть в специальной папке, отведенной для плагинов, на вашем сайте появится загружаемый новый плагин:
После окончания загрузки кнопочка станет синенькой 🙂 и будет уже называться «Активировать«. Для чтобы файлы плагина заработали на нашем сайте его нужно активировать
После активации плагина его код вступит в силу, а это значит, что в панели управления, в главном меню, может появиться какой то специальный раздел…
Теперь рассмотрим способ, который позволяет осуществлять установку плагина из загружаемого файла.
Установка при помощи загрузки файла
Этот способ подразумевает, что у вас есть установочный файл плагина, обычно это zip-архив. Но откуда может появиться у вас этот файл zip-архива? Вероятнее всего вы его «скачали» из интернета или купили плагин на каком-нибудь маркетплейсе, типа CodeCanyon, где после покупки вам достанется установочный файл плагина. Естественно, этих платных решений вы не найдёте в бесплатном репозитории плагинов WordPress, который мы рассматривали в первом способе.
И следовательно, в этом случае установка у нас будет немного иной.
Перейдите в раздел «Плагины» > «Добавить новый» .
Нажмите кнопку «Загрузить плагин» в верхней части экрана.
Далее, необходимо указать путь к файлу установки или методом перетягивания перетянуть файл плагина в эту область окна
Рассмотрим реальный кейс (случай). Мною была приобретена платная версия плагина ACF. После оплаты мне стали доступны в личном кабинете лицензионный ключ и актуальная версия плагина. Которую мне нужно загрузить на свой компьютер, а потом установить на свой сайт под управлением WordPress.
Теперь вернёмся к этапу загрузки файла и загрузим его в WordPress
Выбираем нужный установочный файл плагина и переходим непосредственно к установке, кликнув на «Установить»
Архив загрузится в директорию нашего сайта и разархивируется в папку plugins. Если всё пройдёт успешно, то переменно вы должны увидеть вот такую картинку, на которой нам доступна кнопочка для активации плагина
Ну и в заключении, хотелось бы сказать, о продвинутых способах установки и в тоже время можно их назвать редкими способами, так как рассмотренных выше более чем достаточно.
Но бывают случаи, например, когда ваш сервер не настроен на автоматическую загрузку файлов или могут быть выставлены неправильные права файлов и права пользователя на сервере. То тогда, да… тогда остаётся только пробовать что то из ниже предложенного:
через соединение FTP, SFTP
с помощью менеджера пакетов PHP — Composer
при помощи командной строки и специального инструмента WP-CLI
Рассмотрим изящный способ через WP-CLI — это интерфейс командной строки для WordPress.
На многих хостинг-площадках он уже доступен для работы, к примеру виртуальный хостинг Beget. Минимальный тарифный план и открыв консоль, мы можем взаимодействовать с нашими сайтами через командную оболочку.
Открываем терминал, включаем соединение по SSH и вводим команду:
wp
Если инструмент WP-CLI установлен у вашего хостинг-провайдера, то в консоли должно появиться примерно следующее:
Как устанавливать плагины через WP-CLI
Принцип достаточно простой.
Нужно перейти в директорию того сайта с которым предстоит работа, в который мы планируем установку плагина. Это может выглядеть так:
cd my-site
cd public_html/
wp plugin list
И мне вывалится информация по текущим плагинам данного сайта. Важно! Находится нужно в директории сайта с которым работаете.
+--------------------+----------+-----------+---------+
| name | status | update | version |
+--------------------+----------+-----------+---------+
| akismet | active | available | 5.3 |
| jetpack | active | available | 12.9.3 |
| jetpack-boost | active | available | 2.2.1 |
| nginx-cache | inactive | none | 1.0.5 |
| redis-cache | inactive | none | 2.5.0 |
| wp-mail-smtp | inactive | available | 3.11.0 |
| wp-super-cache | active | none | 1.11.0 |
| advanced-cache.php | dropin | none | |
+--------------------+----------+-----------+---------+
А теперь самый главный принцип. У каждого плагина есть уникальное название в URL
Выше, перед нами плагин для для создания Форума — bbPress. Указав его имя в УРЛ мы можем осуществить установку из командной оболочки:
wp plugin install bbpress --activate
В примере мы устанавливаем и сразу активируем плагин bbPress.
Задача: Узнать внешний (то есть по которому вы находитесь в интернете) IP-адрес вашей компьютерной машины.
Решение: Если вы не используете VPN, то самый быстрый и универсальный для всех операционных систем способ — это воспользоваться сторонним сервисом, например, Я.Интернет
На этой странице можно узнать свой IP, скорость интернет-соединения (от пользователя до Яндекса), а также получить другие полезные данные — название операционной системы и браузера, разрешение экрана и прочее. (раздел Техническая информация)