Команда lscpu позволяет вывести информацию о процессорах, присутствующих в системе, включая количество процессоров, их архитектуру, производителя, семейство, модель и т. д. Для этого введите в командной строке:
lscpu
Вывод в консоли:
По сути утилита lscpuберёт информацию об архитектуре процессора из sysfs, /proc/cpuinfo и отображает в более удобном для пользователя виде.
Любопытства ради можно посмотреть этот файл указав в консоли следующее:
nano /proc/cpuinfo
Важно понимать, что полностью полагаться на эту информацию не стоит, так как иногда, в некоторых случаях, данные могут быть неверными.
В Nginx существует встроенная переменная $upstream_cache_status модуля ngx_http_upstream_module, которая хранит статус доступа к кэшу ответов. Статус может быть одним из
“MISS”,
“BYPASS”,
“EXPIRED”,
“STALE”,
“UPDATING”,
“REVALIDATED” или
“HIT”.
В случае правильной работы сервера в ответе из кэша должно находится значение “HIT”, но как это проверить?
Первым делом вам нужно добавить специальный заголовок, который будет в ответе сервера возвращать значение переменной $upstream_cache_status:
Открываем конфигурационный файл Nginx ( /etc/nginx/nginx.conf ) и добавляем строчку, к блоку бэкенда:
add_header FastCGI-Cache $upstream_cache_status;
Например, так:
Проверить заголовки ответа можно в браузере. Если ответ получен из кэша вы непременно увидите статус HIT
В WordPress существует специальный Экран библиотеки медиафайлов, который можно назвать медиатекой.
Именно сюда попадают загружаемые на ваш сайт файлы и располагаются в хронологическом порядке — свежие вначале.
Добавить новый медиафайл можно при помощи этих кнопочек:
После загрузки ваш файл отобразится на Экран библиотеки медиафайлов:
Помимо файлов изображений можно загружать PDF, видео, аудио форматы и прочие.
Можно просматривать файлы в виде простой визуальной сетки или списка со столбцами. Выберите желаемый вид с помощью иконок слева над файлами.
Важно учитывать! Что после загрузки изображения WordPress делает его копии и в итоге получаем не одно, а несколько изображений:
Это происходит потому что по умолчанию в WordPress заданы параметры для нарезки копий изображения с целью оптимизации. Представьте, если вы загрузили большое изображение весом 5-10 мб, то сколько оно будет загружаться при слабом Интернет-соединении у пользователя, мм? Ну и в плане дизайна, дизайнер может требовать строгую обрезку для сохранения вида своего макета.
Где настраивать размер изображений?
Настройка этих размеров доступна в разделе Настройки > Медиафайлы
Если поставить значение «0» ширине и высоте, то нарезка не будет осуществляться. Например, средний размер можно выключить. Это позволит сэкономить не мало дискового пространства при объемных загрузках изображений.
В некоторых случаях изображений может создаваться значительно больше. На моей практике встречалось и 10 нарезок, то есть грузим одно, а получаем на диске 10-11 картинок. Это зависит от дополнительных функций, которые могут находиться в теме и плагинах вашего сайта. Функция называется add_image_size() — она регистрирует (для будущего создания при загрузке) новый размер картинки (миниатюры).
Как навсегда удалить изображение?
В режиме просмотра таблицы (столбцом) при наведении указателя на строку в списке отображаются ссылки действий, позволяющие управлять элементом. Вы можете выполнить следующие действия:
Редактировать открывает простой экран для редактирования метаданных отдельного файла. Вы также можете перейти на этот экран, нажав на имя медиафайла или его миниатюру.
Удалить навсегда удалит файл из медиатеки (а также из любых записей, к которым он в данный момент прикреплен).
Просмотр открывает общедоступную страницу этого файла.
Копировать URL в буфер обмена копирует URL медиафайла в буфер обмена.
Скачать файл предложит скачать оригинал медиафайла на ваше устройство.
Нас интересует ссылка Удалить навсегда
А в режиме сетки, чтобы удалить изображение, нужно сперва кликнуть на изображение, а затем удалить этот файл:
При первом способе мы сделали на один клик меньше и в режиме отображения таблицы есть еще одно преимущество — массовое удаление файлов. То есть выбираем файлы которые нужно удалить и затем действие, которое применится к ним.
После удаления происходит полное удаление копий изображения, т
Рекомендации при загрузке изображений
Старайтесь не загружать слишком большие изображения, например, размером свыше 5мб, лично я считаю и 3-4 мб тоже «тяжелыми», но смириться можно. Помните, что это всё занимает ваше дисковое пространство.
Старайтесь не лениться и сразу присваивать вашим загруженным изображениям атрибут ALT
Как добавить атрибут Alt?
При Загрузке через медиафайлы
Выбираем ссылку Изменить и далее заполняем поле для альтернативного текста
При Загрузке из Записи или Странице
В момент загрузки нужно выделить ваш элемент изображения и справа в его настройке блока будет это поле:
Учтите, что загружая изображение через редактор Записи или Страницы оно автоматически прикрепляется к ней и также будет доступно в общей медиатеке.
Теперь разница между изображениями в том, что загружая через редактор в Записи оно прикрепилось к ней, а при загрузке из раздела Медиафайлов — нет.
Если медиафайл не прикреплён ни к одной записи, вы увидите это в столбце «Загружен для» и если нажать на ссылку «Прикрепить», то откроется всплывающее окно, в котором можно найти нужную запись и прикрепить к ней файл.
После прикрепления картинку можно будет сразу находить в Библиотеке путем сортировки «Загруженные для этой Записи»
Ну вот и всё, надеюсь после этого ознакомления работа с медиафайлами будет вызывать у вас меньше вопросов 🙂
Для начало попробуйте воспользоваться в консоли командой
nginx -v
или
sudo nginx -v
Ответ в консоли:
nginx version: nginx/1.26.0
Для получения расширенной информации укажите заглавную букву «V» (вывод версии nginx, версии компилятора и параметров конфигурации сборки)
sudo nginx -V
Ответ в консоли:
nginx version: nginx/1.26.0
built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
built with OpenSSL 1.1.1n 15 Mar 2022 (running with OpenSSL 1.1.1w 11 Sep 2023)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp ...
Проверка работы HTTP-сервера Nginx
Для просмотра списка всех запущенных процессов nginx может быть использована утилита ps:
ps -ax | grep nginx
Ответ в консоли:
699 ? Ss 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
149300 ? S 2:26 nginx: worker process
149301 ? S 0:00 nginx: worker process
149302 ? S 0:00 nginx: worker process
149303 ? S 0:01 nginx: worker process
149304 ? S 0:00 nginx: cache manager process
158423 pts/0 S+ 0:00 grep nginx
Текущий статус работы мы также можем посмотреть при помощи команды
sudo systemctl status nginx
Если всё хорошо и служба работает, то вы непременно должны увидеть подобный сигнал
ну и напоследок , чтобы убедиться в работе нашего Nginx можно в консоли отправить следующий запрос
curl localhost
Если всё правильно работает, то по идее вы должны получить в ответ страницу приветствия в виде HTML:
По умолчанию (сразу после установки чистой версии) в WordPress, в его редакторе блоков Gutenberg мы можем наблюдать давно желанную функцию увеличения изображения по клику без перенаправления, то есть оставаясь на той-же странице.
Добиться этого можно путём выделения нужного изображения и клика по ссылке. Учтите, что выбрав блок Медиа и Текст вы не обнаружите эту возможность (проверял на версии: 6.5.3), вам будет доступно только прикрепления оригинала изображения.
Ниже вы можете наблюдать последовательность прикрепления файла изображения к его миниатюре:
После этого оригинал изображения будет открываться по клику на миниатюру.
Как открывать изображения в лайтбоксе (всплывающее окно)?
Этот трюк, вернее эта возможность доступна с одиночным медиафайлом. Вот я вставляю в контент страницы картинку-миниатюру и повторяю те же самые действия: вначале выделяю её, а потом кликаю на иконку закрепления за этим изображением ссылки
И вот тут-то мы можем наблюдать нужную нам функцию! Она называется Развернуть при нажатии
Выбрав её, наше изображение будет открываться во всплывающем окне, тем самым не перескакивая со страницы на отдельный URL, об этом свидетельствует «крестик» при помощи которого мы можем свернуть обратно наше изображение
Но как же быть, если нам необходимо чтобы текст обтекал изображение справа? Для этого мы можем воспользоваться другим блоком, который называется Колонки
И уже с его помощью реализовать задуманное. Оба изображения из примера ниже будут открываться в лайтбоксе.
Как открывать фото из галереи в лайтбоксе?
Теперь рассмотрим ещё один пример на основе галереи. Вначале добавим блок Галереи на нашу страницу:
После этого загрузим (или выберем из библиотеки файлов) нужные нам изображения и выделив всю галерею справа в её настройках укажем в качестве ссылки Медиафайл.
Что получится? Да то же самое что и в самом первом случае — изображения будут открываться в новых URL . Чтобы задействовать наш лайтбокс нужно присвоить эту функцию каждому изображению в галереи:
Теперь изображения миниатюр галереи будут открываться в лайтбоксе.
Неправильные разрешения к файлам могут привести к неожиданным последствиям, вот одна из них:
Для того чтобы это исправить или не допустить нужно выставить правильные права.
Все каталоги (директории) должны быть 755 или 750
Все файлы должны иметь права 644 или 640. Исключение: wp-config.php должен иметь номер 440 или 400, чтобы другие пользователи сервера не могли его прочитать.
Ни одному из каталогов никогда не следует присваивать номер 777, даже каталогам предназначенным для загрузки.
Как из консоли изменить разрешения на файлы и папки?
sudo find . -type f -exec chmod 644 {} +
sudo find . -type d -exec chmod 755 {} +
sudo chmod 440 wp-config.php
Как изменить владельца у файлов и папок?
sudo chown -R www-data:www-data /var/www/mysite
Пример с wp-cli
Рассмотрим простой пример, когда из корня сайта мы при помощи WP CLI совершаем установку плагина и сразу, второй командой, меняем владельца всех файлов этого плагина
В WordPress уже существует генерация rss-фида, но как мы видим он не соответствует требованиям разметки от Яндекс. Самым простым и быстрым методом будет подключение и создание специального фида через плагин.
Официальный сайт (ссылка в начале поста) предлагает ряд бесплатных решений:
Всё зависит от общего количество записей на вашем сайте и их разбивке. По умолчанию это значение равно 50. Следовательно, если у вас 500 записей, то в итоге вы получите 10 ссылок по 50 записей в каждой.
Теперь осталось добавить их в разделе Яндекс Вебмастер, который мы рассматривали ранее.
После добавления вполне возможно вы можете увидеть предупреждения или ошибки валидации, но это не расстраивайтесь — это поправимо.
Исправление ошибок
Для выявления ошибок нужно перейти в режим отладки:
Далее, прямо в окне постарайтесь исправить разметку и снова перепроверить исправленную версию. В итоге, при правильной корректировке вы должны добиться результата «Без ошибок»
Учтите, что эти изменения просто для выявления ошибок и не для их устранения, то есть что бы исправить ошибки нужно перейти на сайт и постараться через настройки плагина устранить их.
В моём случае валидатор ругался на тег <header>. Я просто исключил этот тег в разделе фильтров:
Это можно было исправить и другим способом. Ошибка была связана с содержимом тега [CDATA[]] найдены закодированные символы
Можно исправить сам тег, например взять его в специальный тег code — это будет правильным решением.
После этого можно убедиться в исходном коде фида на его отсутствие и затем повторить валидацию:
Готово!
Учтите, что в режиме ВКЛ (фид включен) валидация пройдёт не сразу.
Проверка фида может занимать продолжительное время. Наберитесь терпения. Сам Яндекс оповещает о том, что обычно проверка занимает около 2 часов.
Во включенном состоянии переобход источника и перестроение примеров Турбо-страниц в поиске происходит раз в час.
А пока что, если у вас сайт подключен к Яндекс Метрики, то рекомендуется указать ваш счётчик чтобы не утратить аналитику за счет подключения технологии турбо-страниц.
Рекомендуется добавлять квадратное изображение разрешением 512 на 512 пикселей, так как его нарезка будет использоваться на разных устройствах.
Значок сайта который Вы видите во вкладках браузера, строке закладок, и внутри мобильных приложений WordPress. Он должен быть квадратной формы с разрешением не менее 512 × 512 пикселей.
официальная рекомендация из панели управления WordPress
Данная команда скопирует всё содержимое директории /var/www/site/ удалённой машины в домашнюю директорию пользователя /newsite/public_html текущей машины (с которой осуществлялось подключение).
Данный пример рассматривает подключение по нестандартному ssh порту 22888 (по умолчанию 22-ой).
Опции:
—archive (можно сокращённо -a) команда для удобства объединяет в себе ряд других команда (равносильно -rlptgoD). То есть, утилита пройдёт рекурсивно по всем вложенным каталогам, перенесёт символические ссылки как символические ссылки ( -l ), сохранит изначальные права доступа к файлам ( -p ), сохранит время модификации ( -t ) и т.д.
—verbose вывод подробной информации о процессе синхронизации.
—progress показывать строку прогресса для синхронизации.
-e указывает удаленную оболочку для подключения (использования)
Рекомендация
При неуверенности запускайте в пробном режиме, при котором ничего не произойдёт, а только утилита продемонстрирует в консоли свою работу, но файлы скопированы не будут. Для этого нужно добавить опцию —dry-run
В таком случае наша консольная команда может выглядеть вот так:
Это закрывающие слэши. Закрывающий слэш означает «внутреннее содержимое». То есть, если в случае /var/www/site/ убрать закрывающий слэш /var/www/site то в итоге будет создана эта директория и мы получим немного неожиданный результат. Наши копируемые файлы окажутся вот тут /newsite/public_html/site
При этом, наличие или отсутствие закрывающего слэша в имени директории, в которую будет происходить копирование, значения не имеет. Важно обращать внимание на слэш источника.
Это символы двоеточия при подключении к удалённым машинам.
Подробнее о заголовке Last-Modified можно почитать тут. Пожалуй, для SEO добавлю описание:
HTTP заголовок Last-Modified сообщает клиенту (браузеру, поисковому боту) время последнего изменения страницы (объекта). Если клиент получил заголовок Last-Modified, то при следующем обращении к адресу, при условии, что страница (объект) есть в локальном кэше, он добавит заголовок-вопрос If-Modified-Since (не изменилась ли страница после даты, полученной в Last-Modified).
В свою очередь сервер, получив запрос If-Modified-Since должен сверить полученную временную метку с временем последнего изменения страницы и, если страница не изменялась ответить 304 Not Modified.
Как добавить HTTP заголовок Last-Modified на PHP в WordPress?
В целом на официальном сайте уже существует реализация на PHP, которую остаётся немного адаптировать для WP.
Отправка Last-Modified и обработка HTTP_IF_MODIFIED_SINCE на PHP
// время последнего изменения страницы в формате unix time
$lastModified = strtotime('2022-06-18 19:01:58');
// дата последней загрузки, отправляемая клиентом
$ifModified = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'] ?? '', 5));
if ($ifModified && $ifModified >= $lastModified) {
// страница не изменилась, отдача http статуса 304
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
exit;
}
header('Last-Modified: ' . gmdate("D, d M Y H:i:s \G\M\T", $lastModified));
// дальнейшая загрузка страницы
Получаем время последнего изменения страницы, проверяем наличие If-Modified-Since, если есть — отдаем 304 Not Modified и останавливаем работу скрипта, иначе генерируем заголовок Last-Modified и отдаем страницу.
Версия для WordPress
Этот готовый код необходимо добавить в functions.php или через плагин. Я рекомендую добавлять этим методом.
/**
* Last-Modified and If-Modified-Since Headers
*/
add_action('wp', poet_'last_if_modified_headers' );
function poet_last_if_modified_headers() {
global $post;
if(isset($post)){
$LastModified_unix = strtotime($post->post_modified);
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = false;
if (isset($_ENV['HTTP_IF_MODIFIED_SINCE'])) {
$IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
}
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
}
if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
exit;
}
header('Last-Modified: '. $LastModified);
}
}
Настройки HTTP-сервера Nginx
Если вы используете в качестве веб-сервера Nginx , то есть вероятность столкнуться с проблемой отдачи заголовка. Всё дело в том, если у вашей конфигурации включена директива ssi
Модуль ngx_http_ssi_module — это фильтр, обрабатывающий команды SSI (Server Side Includes) в проходящих через него ответах.
Пример конфигурации при котором разрешается обработка команд SSI в ответах:
location / {
ssi on;
...
}
Следовательно, прицепом к этой директиве необходимо включить еще одну, которая по умолчанию выключена:
location / {
ssi on;
ssi_last_modified on;
}
Позволяет сохранить поле заголовка “Last-Modified” исходного ответа во время обработки SSI для лучшего кэширования ответов.
По умолчанию поле заголовка удаляется, так как содержимое ответа изменяется во время обработки и может содержать динамически созданные элементы или части, которые изменились независимо от исходного ответа.
Самый простой плагин для оптимизации скорости WordPress, который позволяет ускорить работу сайта в несколько кликов, встречайте! Бесплатный плагин — Jetpack Boost.
После установки плагина и его активации в меню появится специальный раздел. Нас интересует ссылка Boost
Чтобы начать использовать функции плагина необходимо выбрать тарифный план. Его бесплатной версии более чем достаточно.
После этого в принципе можно в несколько кликов настроить наш плагин на работу по ускорению нашего сайта. В верхней части страницы настроек вы должны увидеть шкалу оценки производительности. Классно будет, если они у вас сразу будут в зеленой зоне 🙂
Ну а если нет, то давайте улучшим эти показатели.
Оптимизация загрузки CSS
Первая настройка Оптимизация загрузки CSS создаёт критически важные CSS вашей главной страницы, публикаций и других страниц. Это позволяет значительно ускорить отображение контента на экране, в особенности на мобильных устройствах.Подробнее о создании критически важных CSS см. на web.dev
По умолчанию эта настройка включена. Единственное нужно дождаться ее завершения и не покидать страницу.
Кеш страниц
Кеш страниц ускоряет работу сайта, сохраняя страницы в виде статических файлов. Такие файлы быстрее доставляются посетителям, что снижает время загрузки и делает удобнее работу с сайтом.
Включив данную функцию вы значительно снимете нагрузку с вашего сайта, особенно если его одновременно посещает большое количество посетителей.
Обратите внимание, что дополнительно вы можете исключить страницы из кеша. Это справедливо для таких типов страниц, как, например, корзина или страница оформления заказа, где как вы понимаете, кеш абсолютно неуместен.
P.S. Рекомендую включить журнал и проверить работу кеширования. Если проблем на сервере нет, то при включенном страничном кешировании вы должны видеть попадание в кеш посещенных страниц.
Отложенное выполнение второстепенного кода Javascript
Отложенное выполнение второстепенного кода Javascript переносит выполнение ряда задач на время после загрузки страницы. Таким образом важная визуальная информация отображается раньше, а веб-сайт загружается быстрее. Подробнее об отложенном выполнении javascript см. на web.dev
Следующий ряд настроек я бы рекомендовал использовать с осторожностью, так как некоторые из них могут вызвать конфликты, тем самым нарушив работу функций JavaScript.
Объединить и минифицировать CSS и JS
Объединить и минифицировать CSS и JS: объединяет и сжимает ресурсы JavaScript и CSS, чтобы снизить количество и объём запросов к серверу, что позволяет быстрее загружать контент.
Опытные пользователи могут найти для себя полезную настройку — исключений JS:
CDN изображений
CDN изображений позволяет вашему сайту загружать изображения автоматически изменённого размера в современных веб-форматах прямо из всемирной сети доставки контента Jetpack.
Руководство по изображениям — функция, необходимая всем, кому требуется оптимизировать изображения на веб-сайте. С помощью этого руководства вы сможете гарантировать отображение всех изображений на вашем веб-сайте в нужном размере. Это необходимо для удобства пользователей, быстрой загрузки страниц и повышения рейтинга сайта. Следуя советам и методикам, приведённым в руководстве, вы сможете уменьшить размеры файлов изображений и ускорить загрузку вашего веб-сайта.
Ну вот и всё! В несколько кликов мы заложили неплохой фундамент для повышения производительности нашего сайта на WordPress.
const currentYear = new Date().getFullYear().toString();
new Date() — создаём объект который хранит в себе текущий момент времени
getFullYear() — выдёргиваем из объекта год указанной даты. Так как мы создавали экземпляр Date() без аргументов, то год будет соответствовать текущему моменту, а следовательно быть актуальным
toString() — возвращаем тип данных строку.
Ну вот и всё! Теперь в константе currentYear будет находится текущий год
Забыли пароль пользователя? Не беда! В этой статье мы его восстановим при помощи командной строки и инструмента WP-CLI (WP Command Line Interface) — это интерфейс командной строки для WordPress.
Откройте терминал, выберите директорию с нужным сайтом и введите первую команду:
wp user list
Эта команда отобразит всех пользователей вашего сайта.