Технология

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

PHP является очень популярным языком для динамических сайтов, таких как те, которые используют WordPress. Разбор PHP-скриптов, их преобразование opcodeи повторное преобразование в машинный код может сильно нагружать процессор. Это в свою очередь влияет на скорость и производительность сайта. В своих предыдущих постах (это и это) я показал, как проверить скорость загрузки сайта, и описал несколько способов ее улучшения. В этом посте я собираюсь описать, как установить и использовать альтернативный кеш PHP (APC) для кэширования PHP файлов / кодов. Это приводит к ускорению выполнения, снижению нагрузки на процессор и повышению скорости работы сайта. Для тех, кто самостоятельно размещает свой сайт WordPress или чей хостинг-провайдер предлагает APC, я также собираюсь объяснить, как заставить APC работать с W3 Total Cache, лучшим плагином кеша WordPress.

Рекомендуемые руководства:

Как работает альтернативный PHP Cache

Кэши APC часто получают доступ к файлам и кодам PHP в opcodeформате, который является промежуточным кодом из проанализированных и скомпилированных сценариев PHP. Кэшированные коды операций находятся в разделяемой памяти и обслуживаются по мере необходимости, что снижает необходимость повторного анализа и компиляции PHP-кодов. В отличие от других систем кэширования, таких как memcachedAPC, хранятся как код операции, так и данные. Memcached хранит только те данные, к которым приложения получают доступ через TCP. Поэтому обычно (есть исключения), если у вас установлен и работает APC, он вам не нужен memcached.

Увеличьте свою оперативную памятьАльтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Шаг 1: Установите APC в Ubuntu

В отличие от предыдущих выпусков Ubuntu, установка APC в Lucid Lynx (10.04) и более поздних версиях чрезвычайно проста. Это доступно через репозиторий. Хотя вы можете скомпилировать и установить последнюю версию APC (репозиторий Ubuntu обычно немного устарел), я рекомендую в случае совместимости использовать маршрут установки репозитория. Вы можете установить APC с помощью следующей команды:

sudo apt-get install php-apc

В процессе установки вам будет задан ряд вопросов, касающихся активации экспериментальных модулей. Я рекомендую не включать экспериментальные модули. Вы можете нажать Enter, чтобы выбрать [по умолчанию]:

Enable internal debugging in APC [no]: Enable per request file info about files used from the APC cache [no]: Enable spin locks (EXPERIMENTAL) [no]: Enable memory protection (EXPERIMENTAL) [no]: Enable pthread mutexes (default) [yes]: Enable pthread read/write locks (EXPERIMENTAL) [no]:

Перезапустите Apache:

sudo service apache2 reload

Шаг 2. Проверьте установку APC

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

php -r "phpinfo();" | grep apc

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

Additional .ini files parsed => /etc/php5/cli/conf.d/apc.ini, apc MMAP File Mask => /tmp/apc.XXXXXX apc.cache_by_default => On => On apc.canonicalize => On => On apc.coredump_unmap => Off => Off apc.enable_cli => Off => Off apc.enabled => On => On apc.file_md5 => Off => Off apc.file_update_protection => 2 => 2 apc.filters => no value => no value apc.gc_ttl => 0 => 0 apc.include_once_override => Off => Off apc.lazy_classes => Off => Off apc.lazy_functions => Off => Off apc.max_file_size => 10M => 10M apc.mmap_file_mask => /tmp/apc.XXXXXX => /tmp/apc.XXXXXX apc.num_files_hint => 4096 => 4096 apc.preload_path => no value => no value apc.report_autofilter => Off => Off apc.rfc1867 => Off => Off apc.rfc1867_freq => 0 => 0 apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS apc.rfc1867_prefix => upload_ => upload_ apc.rfc1867_ttl => 3600 => 3600 apc.shm_segments => 1 => 1 apc.shm_size => 128 => 128 apc.stat => On => On apc.stat_ctime => Off => Off apc.ttl => 7200 => 7200 apc.use_request_time => On => On apc.user_entries_hint => 4096 => 4096 apc.user_ttl => 7200 => 7200 apc.write_lock => On => On

Шаг 3: Проверьте веб-интерфейс APC

APC поставляется с отличным веб-интерфейсом, который предоставляет множество информации. Это не включено по умолчанию. Чтобы включить его, вам нужно будет скопировать файл в корневой каталог вашего сайта:

sudo cp /usr/share/doc/php-apc/apc.php.gz /var/www sudo gzip -d /var/www/apc.php.gz sudo vim /var/www/apc.php

Мы еще не закончили. По соображениям безопасности я настоятельно рекомендую вам отредактировать apc.phpфайл и изменить имя пользователя и пароль по умолчанию (apcи password):

defaults('ADMIN_USERNAME','apc'); // Admin Username defaults('ADMIN_PASSWORD','password'); // Admin Password - CHANGE THIS TO ENABLE!!!

Кроме того, убедитесь, USE_AUTHENTICATIONчто установлено 1:

defaults('USE_AUTHENTICATION',1);

Теперь вы можете перейти к своему domainname.com/apc.php(если он у вас есть) 192.168.0.13/apc.php(если это сетевой IP-адрес вашего сервера, на котором работает APC), или localhost/apc.phpесли вы находитесь на компьютере, на котором работает APC. Ниже приведен скриншот очень информативного веб-интерфейса.

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Веб-интерфейс APC

Шаг 4. Настройка параметров APC

Настройки APC по умолчанию, сохраненные в, /etc/php5/conf.d/apc.iniмогут работать нормально, но рекомендуется настроить несколько значений. Подробное объяснение этих значений можно найти здесь.

Если у вас установлен плагин W3 Total Cache для WordPress, он попадает apc.iniв wp-contentpluginsw3-total-cacheiniпапку с хорошими значениями по умолчанию. Я рекомендую вам все еще изменить следующие значения:

apc.stats

Во время разработки и тестирования установите значение «1» (включено). Когда установлено в единицу, изменения файла проверяются каждый раз, когда вызывается кэшированный код операции. Таким образом, любые изменения, которые вы делаете, сразу видны. W3 Total Cache будет работать только в том случае, если для этого значения установлено значение «1». После того, как вы закончили со всеми изменениями и изменениями, установите это значение на «0» (отключено), чтобы повысить производительность и скорость, так как APC будет навык перепроверять файлы при каждом запросе.

apc.shm_size

Это фактический размер кеша. По умолчанию 30 МБ (или 32 МБ, если вы используете apc.iniфайл W3 Total Cache ). Я рекомендую увеличить его, если у вас достаточно оперативной памяти. Я рекомендую увеличить его, скажем 128 MB, так, как я сделал. Рекомендуется выделять как минимум вдвое больше памяти, используемой APC. Контролируйте APC часто в течение нескольких часов (я следил за ним в течение 1 дня). Как показано на рисунке ниже (из веб-интерфейса APC), в среднем мой APC использовал около 45 МБ из выделенных 128 МБ. Поэтому мне нужно всего лишь выделить 90 МБ. Поскольку объем оперативной памяти для меня не важен, я оставлю его на 128 МБ.

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Диаграмма состояния хоста APC

Объем памяти, выделенной для apc.shm_sizeбудет влиять hits/misses, cache full countи fragmentation. Попадания / пропуски – это злые вещи в кеше, а не в кеше. Это нормально видеть некоторые промахи. Как показано на рисунке выше, мой уровень в значительной степени оставался выше 99% после нескольких минут работы APC. Если вы видите cache full count(как показано на скриншоте веб-интерфейса ниже) быстрое увеличение, то увеличьте выделенную память.

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Информация о кеше файла APC

Рекомендуемые руководства:

Если фрагментация достигает 100% и остается там, то может появиться «HTTP Error 500 Internal Server Error». Обычно наблюдается 100% фрагментация в первые несколько минут после включения APC. Со временем желательно иметь менее 50% фрагментации (в идеале около 10% или менее). Как показано на рисунке ниже, моя обычно остается около 10% или меньше.

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Использование памяти APC и фрагментация

Не забудьте перезапустить Apache после любого изменения. Ниже мой полный apc.iniфайл:

extension=apc.so apc.enabled = 1 apc.stat = 1 apc.shm_segments = 1 apc.shm_size = 128 apc.optimization = 0 apc.num_files_hint = 4096 apc.ttl = 7200 apc.user_ttl = 7200 apc.gc_ttl = 0 apc.cache_by_default = 1 apc.filters = "" apc.mmap_file_mask = "/tmp/apc.XXXXXX" apc.slam_defense = 0 apc.file_update_protection = 2 apc.enable_cli = 0 apc.max_file_size = 10M apc.write_lock = 1 apc.report_autofilter = 0 apc.include_once_override = 0 ;apc.rfc1867 = 0 ;apc.rfc1867_prefix = "upload_" ;apc.rfc1867_name = "APC_UPLOAD_PROGRESS" ;apc.rfc1867_freq = 0 apc.localcache = 0 apc.localcache.size = 512 apc.coredump_unmap = 0 apc.stat_ctime = 0

Шаг 5. Настройка общего кэша W3 для использования APC

W3 Total Cache – безусловно, лучший плагин кэширования для периода WordPress. Хотя я начал с Quick Cache, с тех пор я перешел на W3 Total Cache.

Сложная часть установки и настройки APC завершена. Настроить W3 Total Cache для использования APC очень просто. Все, что вам нужно сделать, это перейти с панели управления WordPress Performance->General Settingsи выбрать APC для кэша страниц (как показано на рисунке ниже), Minify, Object Cache и Database Cache:

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

W3 Total Cache – Общие настройки

Точно так же выберите APC для Minify, Object Cache и Database Cache. На самом деле, я рекомендую вам включить кэш базы данных, только если у вас запущен APC. Кэширование базы данных на диске может быть не лучшим для производительности (по крайней мере, так показали мои исследования).

Если вы получили сообщение об ошибке «Minify rewriting» не работает, проверьте настройки в .htaccess. Если вы по-прежнему видите ошибку, вы можете отключить функцию «Перезаписать структуру URL» в разделе «Минифицировать».

Увеличьте свою оперативную памятьАльтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Когда я искал установку и настройку APC, мне было трудно выяснить все детали. В этом посте обобщено все, что вам нужно знать, чтобы установить и настроить альтернативный PHP-кеш в Ubuntu и заставить его работать с W3 Total Cache для WordPress. В моем случае показатели GTMetrix и Pingdom немного увеличились после этого. Надеюсь это поможет. Если у вас есть другие идеи, пожалуйста, поделитесь с нами в разделе комментариев.

Источник записи: https://www.smarthomebeginner.com

Похожие записи
Технология

Как автоматически изменить размер AdSense в зависимости от размера окна браузера?

Технология

Полное руководство по настройке Pi Hole: лучший интернет без рекламы за 15 минут

Технология

Переместите UniFi Controller на новый хост без потери настроек

Технология

Как запустить PiHole в Docker на Ubuntu, без обратного прокси-сервера?

Sign up for our Newsletter and
stay informed
[mc4wp_form id="14"]

Политика конфиденциальности

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

Принять