Настройки php для wordpress

Ускоряем WordPress

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

WordPress в стандартной установке довольно медленный. По умолчанию движок не использует некоторые возможности современного Веба для значительного своего ускорения. Существует целая куча плагинов для оптимизации WordPress’a. Давайте наведем в них порядок и проведем капитальную оптимизацию.

Прежде чем приступить, посмотрим, что показывает голая установка WordPress по Pagespeed:

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

Результат 76 из 100 довольно низкий. Посмотрим, насколько можно увеличить этот показатель.

Серверная часть

Nginx

Если Вы еще не используете Nginx, пора переехать на него. Простое и мощное решение. Конфигурация для работы с поддержкой permalinks и кешированием статики:

PHP кеш

Если у Вас нет каких-то особых причин, по которым Вы не можете установить APC, включайте его обязательно. Проверяем наличие APC (в ответ получим список настроек APC):

В версиях PHP после 5.5 есть встроенный модуль opCache, так что APC ставить не прийдется.

Тюнинг Mysql

WordPress использует InnoDB, а это значит мы можем существенно увеличить производительность MySQL, подстроив ряд параметров (файл my.cnf) под наше железо:

Размер буфера InnoDB лучше поставить в половину доступной оперативной памяти:

Не забываем включить кеширование MySQL:

Кеширование

Это наиболее важный пункт. Кеширование может дать значительное ускорение сайта и экономию ресурсов сервера. Для наглядности будем использовать ab от Apache. Проверим стандартную установку WordPress без кеширования. Запросы направляем через локальную сеть, поэтому задержку ничего, кроме самого WordPress’a не создает:

Получаем среднее время на запрос около 50мс:

Хром показывает среднее ожидание ответа на уровне 150мс (сервер находится в Нидерландах):

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

WP Super Cache

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

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

С включенным WP Super Cache получаем уменьшение среднего времени на запрос в 25 раз(!):

Cреднее ожидание ответа в Хроме уменьшилось в 3 раза:

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

В качестве серверной альтернативы WP Super Cache можно использовать Varnish. Он позволяет снизить время на обработку запроса еще почти на порядок, но само решение менее гибкое (хорошо подойдет для блогов без элементов динамики).

Стили, скрипты и картинки

Минификация и сжатие

Минификация CSS/JS может сэкономить 10. 15% их размера. Для включения минификации статики есть модуль WP Minify. Качайте, активируйте и модуль начнет работать. Gzip позволит уменьшить размер текстовых файлов в несколько раз. В Nginx’e включается так:

Оптимизация картинок

Картинки могут составлять очень большую часть общего размера страницы. Lossless сжатие картинок может сэкономить 30. 40% их размера. Это умеет делать модуль EWWW Image Optimizer. Для его работы понадобится установить imagemagick и библиотеку gd:

Хорошие практики и опыт

В результате

У нас получилось голую установку WordPress разогнать почти в 100 раз по времени генерации страницы (мы включили Varnish) и увеличить показатель по Pagespeed с 76 до 93:

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

Полезные инструменты и ресурсы

Профайлер P3 покажет множество узких мест Вашей текущей установки WordPress. Удобный интерактивный чеклист по оптимизации WordPress позволит не держать все в голове, но ничего не упустить.

Кстати, анализ sevenpercentcatherine.wordpress.com (хостится на wordpress.com) набирает 83 из 100 по Pagespeed. Из проблем — нет минификации и слишком большой ответ от сервера (350мс).

Делитесь своим опытом и инструментарием ускорения WordPress’a в комментариях.

Источник

Файл wp-config.php — подробное описание настроек WordPress

И снова я вас приветствую!

Все, у кого есть свой сайт на WordPress, знают о таком файле как wp-config.php, но не все знают как правильно его настроить. 90% пользователей вписывают в него только данные для подключения к базе.

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

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

Одним из наиболее важных файлов установки WordPress является файл конфигурации. Он находится в корневом каталоге и содержит постоянные определения и инструкции PHP, которые заставляют WordPress работать так, как вы хотите.

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

Базовый файл wp-config.php

Когда вы впервые устанавливаете WordPress, вас просят ввести необходимую информацию, такую как сведения о базе данных и префикс таблицы. Иногда ваш хостер настроит WordPress для вас, и вам не нужно будет запускать настройку вручную. Но когда вы запускаете 5-минутную установку вручную, вам будет предложено ввести некоторые наиболее важные данные, хранящиеся в wp-config.

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

Вот основной файл wp-config.php:

Обычно этот файл генерируется автоматически при запуске установки, но иногда WordPress не имеет прав для записи в папку установки. В этой ситуации вы должны создать пустой файл wp-config.php, скопировать и вставить содержимое из wp-config-sample.php и установить правильные значения для всех определенных констант. Когда вы закончите, загрузите ваш файл в корневую папку и запустите установку WordPress.

Сначала приведу определения констант базы данных, которые вы должны были получить от своего хостера:

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

Переменная «$table_prefix» хранит префикс всех таблиц WordPress. К сожалению, любой знает его значение по умолчанию, и это может открыть базу данных WordPress для уязвимости, которую можно легко исправить, установив пользовательское значение «$table_prefix» при запуске установки.

Чтобы изменить префикс таблицы на работающем веб-сайте, необходимо выполнить несколько запросов к базе данных, а затем вручную отредактировать файл wp-config.php. Если у вас нет доступа к базе данных или вы не обладаете необходимыми знаниями для создания пользовательских запросов, вы можете установить плагин, такой как Change Table Prefix (правда он давно не обновлялся), который будет переименовывать таблицы базы данных и имена полей, а также обновлять файл конфигурации без риска.

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

Базовая конфигурация: редактирование файловой системы

Файловая система WordPress хорошо известна пользователям и хакерам. По этой причине вы можете рассмотреть возможность изменения встроенной файловой структуры путем перемещения определенных папок в произвольных местах и установки соответствующих URL-адресов и путей в файле wp-config.

Во-первых, мы можем переместить папку содержимого, определив две константы. Первый устанавливает полный путь к каталогу:

Второй устанавливает новый URL каталога:

Мы можем переместить только папку плагинов, определив следующие константы:

Таким же образом мы можем переместить папку загрузки, установив новый путь к каталогу:

Когда закончите, расставьте папки и перезагрузите WordPress.

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

Невозможно переместить папку /wp-content/themes из файла wp-config, но мы можем зарегистрировать новый каталог темы в плагине или файле functions.php темы.

Возможности для разработчиков: режим отладки и сохранение запросов

Если вы разработчик (как и я), вы можете заставить WordPress отображать ошибки и предупреждения, которые помогут вам в отладке тем и плагинов. Чтобы включить режим отладки, вам просто нужно установить «WP_DEBUG» в значение «true», как показано ниже:

«WP_DEBUG» по умолчанию имеет значение «false». Если вам нужно отключить режим отладки, вы можете просто удалить определение или установить значение константы в «false».

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

В таких ситуациях вы можете заставить WordPress вести таблицу ошибок и предупреждений в файле «debug.log», расположенном в папке /wp-content. Чтобы включить эту функцию, скопируйте и вставьте следующий код в файл wp-config.php:

Чтобы эта функция работала, сначала нужно включить режим отладки. Затем, установив «WP_DEBUG_LOG» в значение «true», мы заставляем WordPress хранить сообщения в файле «debug.log», а при определении «WP_DEBUG_DISPLAY» в «false» скрываем их с экрана. Наконец, мы устанавливаем в 0 значение переменной PHP — «display_errors» чтобы сообщения об ошибках не выводились на экран. Wp-config никогда не загружается из кеша. По этой причине это хорошее место для переопределения настроек «php.ini».

Другая константа отладки определяет версии скриптов и стилей для загрузки. Установите «SCRIPT_DEBUG» в значение «true», если вы хотите загружать несжатые версии:

Если ваша тема или плагин показывает данные, полученные из базы данных, вы можете сохранить сведения о запросе для последующего просмотра. Константа «SAVEQUERIES» заставляет WordPress хранить информацию о запросах в массиве «$wpdb->queries». Эти сведения будут напечатаны, добавив следующий код в шаблон подвала вашего сайта:

Настройки, связанные с контентом

Когда ваш сайт вырастет, вы можете захотеть уменьшить количество пост-редакций. По умолчанию WordPress автоматически сохраняет изменения каждые 60 секунд. Мы можем изменить это значение, установив пользовательский интервал в wp-config следующим образом:

Конечно, вы также можете уменьшить интервал автосохранения.

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

Если вы хотите отключить публикацию ревизий, определите следующую константу:

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

По умолчанию WordPress хранит удаленные сообщения, страницы, вложения и комментарии в течение 30 дней, а затем удаляет их навсегда. Мы можем изменить это значение с помощью следующей константы:

Мы даже можем отключить корзину, установив для нее значение 0, но учтите, что WordPress больше не позволит вам восстанавливать содержимое.

Разрешенный объем памяти

Иногда вы можете получить сообщение, подобное следующему:

Максимальный объем памяти зависит от конфигурации сервера. Если у вас нет доступа к файлу php.ini, вы можете увеличить ограничение памяти только для WordPress, установив константу «WP_MEMORY_LIMIT» в файле wp-config. По умолчанию WordPress пытается выделить 40 МБ для PHP для отдельных сайтов и 64 МБ для многосайтовой установки. Конечно, если выделенная PHP память превышает 40 МБ (или 64 МБ), WordPress примет максимальное значение.

При этом, вы можете установить пользовательское значение с помощью следующей строки:

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

Автоматические обновления

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

Вы можете отключить все автоматические обновления, определив следующую константу:

Возможно, не стоит отключать обновления безопасности, но это ваш выбор.

По умолчанию автоматические обновления не работают с основными выпусками, но вы можете включить любые основные обновления, определяя их «WP_AUTO_UPDATE_CORE» следующим образом:

Значение по умолчанию «minor»:

Дополнительная константа отключает автообновления (и любое обновление или изменение любого файла). Если вы установите «DISALLOW_FILE_MODS» в значение «true», все изменения файлов будут отключены, даже установки и обновления тем и плагинов. По этой причине его использование не рекомендуется.

Настройки безопасности

Мы можем использовать файл wp-config для повышения безопасности сайта. В дополнение к изменениям в файловой структуре, которые мы рассмотрели выше, мы можем заблокировать некоторые функции, которые могут открыть ненужные уязвимости. Прежде всего, мы можем отключить редактор файлов, представленный в панели администратора. Следующая константа скроет экран «Appearance Editor»:

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

Функцией безопасности является администрирование через SSL. Если вы приобрели сертификат SSL и он правильно настроен, вы можете заставить WordPress передавать данные через SSL при любом входе в систему и сеансе администратора. Используйте следующую константу:

Проверьте Кодекс, если вам нужна дополнительная информация об администрировании через SSL.

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

В этом примере мы сначала отключили все обращения с внешних хостов, затем перечислили разрешенные хосты, разделенные запятыми (подстановочные знаки разрешены).

Другие дополнительные настройки

«WP_CACHE» — значение «true» включает скрипт wp-content/advanced-cache.php. Эта константа действует только если вы устанавливаете постоянный плагин кэширования.

«CUSTOM_USER_TABLE» и «CUSTOM_USER_META_TABLE» используются для установки пользовательских таблиц, отличных от таблиц «wp_users» и «wp_usermeta» по умолчанию. Эти константы включают полезную функцию, которая позволяет пользователям сайта получать доступ к нескольким веб-сайтам только с одной учетной записью. Чтобы эта функция работала, все установки должны совместно использовать одну и ту же базу данных.

Начиная с версии 2.9, WordPress поддерживает автоматическую оптимизацию базы данных. Благодаря этой функции, установив «WP_ALLOW_REPAIR» в значение «true», WordPress автоматически восстановит поврежденную базу данных.

WordPress создает новый набор изображений каждый раз, когда вы редактируете изображение. Если вы восстановите исходное изображение, все созданные наборы останутся на сервере. Вы можете перезаписать это поведение, установив «IMAGE_EDIT_OVERWRITE» значение в «true», чтобы при восстановлении исходного изображения все изменения были удалены с сервера.

Блокировка wp-config.php

Если сайт работает на Nginx, вы можете добавить следующую директиву в файл конфигурации:

Если ваш сайт прошел несколько миграций или вы приобрели его у кого-то другого, рекомендуется создать новый набор ключей безопасности WordPress. Эти ключи представляют собой набор случайных величин, которые улучшают шифрование информации, хранящейся в файлах «cookie» пользователя. Начиная с WordPress 2.7, было 4 разных ключа: «AUTH_KEY», «SECURE_AUTH_KEY», «LOGGED_IN_KEY» и «NONCE_KEY».

По умолчанию они генерируются случайным образом для вас. Но на самом деле WordPress имеет бесплатный инструмент, который вы можете использовать для генерации новых случайных ключей. Затем вы можете просто обновить ваши текущие ключи, которые хранятся в вашем файле wp-config.php.

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

И наконец, вы должны дважды проверить и убедиться, что ваши права доступа усилены в вашем файле wp-config.php. Обычно для файлов в корневом каталоге сайта WordPress устанавливается значение 644, что означает, что файлы доступны для чтения и записи для владельца файла и для чтения пользователями в группе, владеющей этим файлом, и для чтения всеми остальными. Согласно документации WordPress, разрешения для файла wp-config.php должны быть установлены на 440 или 400, чтобы другие пользователи на сервере не могли его прочитать. Вы можете легко изменить это с вашим FTP-клиентом.

Настройки php для wordpress. Смотреть фото Настройки php для wordpress. Смотреть картинку Настройки php для wordpress. Картинка про Настройки php для wordpress. Фото Настройки php для wordpress

Резюме

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

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

Источник

Настройка nginx и PHP для работы WordPress

Краткая инструкция по настройки конфигурации виртуального хоста nginx для работы CMS WordPress с использованием постоянных ссылок, а также некоторые настройки PHP для корректной работы WordPress.

Данная инструкция была опробована на ОС Gentoo GNU/Linux, но подойдёт для любых операционных систем Linux и FreeBSD.

Перед тем, как выполнить все действия, которые описаны ниже, необходимо установить и настроить стек LEMP. Выберите ОС, в которой он будет (или уже) развёрнут и перейдите по ссылке:

Затем открываем файл php.ini и при необходимости исправляем в нём следующие параметры:

max_execution_time — параметр максимального времени выполнения скрипта (по умолчанию 30 секунд) — если у вас сервер достаточной мощности, можно оставить по умолчанию, если нет — увеличиваем время до 60 или даже до 120 секунд

memory_limit — ограничение оперативной памяти для выполнения скрипта (по умолчанию 128 MB) — если скрипты тяжёлые — лучше увеличить, например 256 или 512 MB

upload_max_filesize — максимальный размер файла, который может быть загружен с использованием PHP (по умолчанию 2 MB) — при использовании WordPress выставить значение хотя-бы 20 MB

По окончании необходимо будет перезапустить службу php-fpm.

Теперь открываем файл конфигурации виртуального хоста nginx и дописываем и/или изменяем следующие параметры:

На выходе конфигурация виртуального хоста должна выглядеть примерно так:

Готово! Теперь WordPress должен работать без проблем.

Если не получилось — пишите в комментариях, разберёмся.

Источник

PHP в WordPress. Что нужно знать? Прямо ну вообще с нуля.

Весь WordPress написан на PHP. Поэтому для того, чтобы создавать или редактировать темы, или писать плагины, вам нужно знать некоторые вещи.

На моем блоге также есть пост про использование MySQL в WordPress — о том, как правильно создавать запросы, используя предназначенный для этого класс $wpdb.

Это немного дополненный старый пост, поэтому тут уже сотня комментов 🙂

Конечно, очень наивно полагать, что возможно охватить все основы PHP в одной статье, но я очень постараюсь.

Одна простая истина. Или даже две.

Вам ничего не стоит создать у себя на рабочем столе текстовый файл, назвать его file.html и начать фигачить туда HTML код страницы. И у вас всё получится, в браузере всё откроется, но вот только если там будет содержаться PHP-код, то он не выполнится! JavaScript выполнится, вы уже знаете, а вот PHP нет.

Это была первая истина.

Функции. Часть 1.

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

В общем, функция phpinfo() просто выведет инфу о сервере. Понятную и не очень.

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

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

Числа, строки и…

Да, начнём с функции echo (вы заметили, что она без скобочек? да, ей скобки не нужны). Выведем какое-то число:

Для строк (это по сути текст) нам просто нужно обрамлять их в двойные или одинарные кавычки. Например:

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

Переменные

Для тех, кто совсем-совсем начинающий, что такое переменные?

Теперь мы уже можем вывести не число, а именно переменную:

И ещё один супер-пример. Предположим. Что нам нужно вывести число 7 раз! Не уверен, что такое понадобится, но предположим!

А теперь скажите, какой вариант кода вам нравится больше — первый или второй.

Ну что? А если я скажу вам изменить это число, то где вы быстрее внесёте изменения — в первом куске кода или во втором?

Действия с переменными
Обычные действия: присвоение, сложение, умножение, деление, вычитание.

Не забывайте в конце каждого действия в PHP ставить точку с запятой, иначе вылезет ошибка.

… и массивы

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

Например 1, 2, ‘текст’, 98 — это массив из четырех элементов, при этом отсчет начинается с нуля — нулевой элемент равен единице, первый — двойке, третий — строке текста и т.д.

Давайте зададим этот нехитрый массив в переменную:

Что с ним делать-то теперь? На самом деле много чего, в документации PHP вы можете посмотреть функции, которые могут удалять элементы массива, сортировать их и т д, а мы же выведем из него второй элемент — двойку.

Давайте добавим ему пятый элемент:

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

А теперь представляю вам ассоциативные массивы! Это когда помимо числового индекса, у элементов есть ещё и строковый индекс, ключ. Зададим массив.

Думаю не нужно объяснять, что названия ключей должны быть уникальны. И небольшой пример вывода по ключу:

А ещё мы можем изменить значение элемента:

Ну всё, говорю же, старался покороче 🙂 Если есть вопросы — скидывайте в комментарии к посту.

Функции. Часть 2.

Как вы уже возможно поняли, функции в PHP выглядят следующим образом:

В PHP и в WordPress уже существует набор готовых функций, которые удобно использовать при создании блога. Также вы можете задавать и свои функции:

Примеры:

Функция echo выводит на экран то, что указано в ней, иногда пишется со скобками, но я пишу без. Да, знаю, что уже упоминал её, но практики лишней не будет.

Вот так всё это можно засунуть в HTML-код:

Зададим собственную функцию:

После того, как функция задана (в WordPress они все обычно задаются в файле functions.php в темах — для начала задавайте там, а потом разберетесь), её можно использовать в любой части сайта сколько угодно раз:

Теперь создадим функцию с параметрами:

Пример выполнения 1.

Пример выполнения 2, результат будет одинаковый.

Также существуют такие вещи как return true и return false — это логическое ДА и логическое НЕТ — они в основном нужны для условий, о них уже в следующей главе.

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *