Акселератор PHP APCu в Linux

Опубликовано admin - пн, 02/20/2023 - 14:31

В Linux альтернативный кэш PHP APCu — бесплатная, открытая и надёжная платформа для кэширования и оптимизации промежуточного кода PHP.

Установка и настройка акселератора PHP APCu

Содержание

Установка PHP APCu

Сначала необходимо установить расширение акселератора.

На сервере Ubuntu:

$ sudo apt install php-apcu

На сервере Arch Linux:

$ yay -S php-apcu

Теперь в корне сайта создаём файл, например, info.php:

mensh@139-162-132-20:/var/www/linuxcookbook.ru/web$ sudo touch info.php
mensh@139-162-132-20:/var/www/linuxcookbook.ru/web$

Содержимое файла:

mensh@139-162-132-20:/var/www/linuxcookbook.ru/web$ cat info.php
<?php
print phpinfo();
?>
mensh@139-162-132-20:/var/www/linuxcookbook.ru/web$

Смотрим в браузере страницу с установленным info.php:

Установка и настройка акселератора PHP APCu

Расширение APCu присутствует в конфигурации PHP.

Теперь можем удалить файл info.php.

Настройка

На сервере Ubuntu файл инициализации apcu.ini находится в каталоге /etc/php/8.1/mods-available

mensh@139-162-132-20:/etc/php/8.1/mods-available$ cat apcu.ini
extension=apcu.so
apc.shm_size=64M
mensh@139-162-132-20:/etc/php/8.1/mods-available$ 

На сервере Arch Linux файл инициализации apcu.ini находится в каталоге /etc/php/conf.d

oleg@mobile:/etc/php/conf.d:$ cat apcu.ini
extension=apcu.so
apc.shm_size=64M
oleg@mobile:/etc/php/conf.d:$ 

Прямо под строкой, которой был включен акселератор, было добавлено apc.shm_size = 64.

По умолчанию размер кэша составляет 32M. Установить его следует такого размера, чтобы попадания в кэш составляли не менее 95%.

Возможно, что на продакш-сервере, где нет постоянных изменений кода, можно будет добавить ещё одну строку:

apc.stat = 0

По умолчанию параметр apc.stat = 1. При изменениях скрипта он перекомпилируется и кэширует новую версию. При установке параметра в 0 изменения скрипта не проверяются до перезагрузки сервера, что улучшает производительность.

Остальные параметры в большинстве случаев можно не изменять.

С более тонкими настройками можно ознакомиться здесь https://www.php.net/manual/ru/apcu.configuration.php

Мониторинг

Скачиваем отсюда https://github.com/krakjoe/apcu скрипт apc.php и помещаем его в корень сайта, либо в созданный в корне каталог, например apc.

Конфигурируется скрипт весьма просто:

mensh@139-162-132-20:/var/www/linuxcookbook.ru/web$ cat apc.php
<?php
/*
  +----------------------------------------------------------------------+
  | APC                                                                  |
  +----------------------------------------------------------------------+
  | Copyright (c) 2006-2011 The PHP Group                                |
  +----------------------------------------------------------------------+
  | This source file is subject to version 3.01 of the PHP license,      |
  | that is bundled with this package in the file LICENSE, and is        |
  | available through the world-wide-web at the following url:           |
  | http://www.php.net/license/3_01.txt                                  |
  | If you did not receive a copy of the PHP license and are unable to   |
  | obtain it through the world-wide-web, please send a note to          |
  | license@php.net so we can mail you a copy immediately.               |
  +----------------------------------------------------------------------+
  | Authors: Ralf Becker <beckerr@php.net>                               |
  |          Rasmus Lerdorf <rasmus@php.net>                             |
  |          Ilia Alshanetsky <ilia@prohost.org>                         |
  +----------------------------------------------------------------------+
   All other licensing and usage conditions are those of the PHP Group.
 */

////////// READ OPTIONAL CONFIGURATION FILE ////////////
if (file_exists("apc.conf.php")) include("apc.conf.php");
////////////////////////////////////////////////////////

////////// BEGIN OF DEFAULT CONFIG AREA ///////////////////////////////////////////////////////////

defaults('USE_AUTHENTICATION',1);           // Use (internal) authentication - best choice if
                                            // no other authentication is available
                                            // If set to 0:
                                            //  There will be no further authentication. You
                                            //  will have to handle this by yourself!
                                            // If set to 1:
                                            //  You need to change ADMIN_PASSWORD to make
                                            //  this work!
defaults('ADMIN_USERNAME','apc');           // Admin Username
defaults('ADMIN_PASSWORD','password');      // Admin Password - CHANGE THIS TO ENABLE!!!

// (beckerr) I'm using a clear text password here, because I've no good idea how to let
//           users generate a md5 or crypt password in a easy way to fill it in above

...

По умолчанию используются логин и пароль (apc и password). Измените их.

Тот, кто не желает этим пользоваться может установить идентификацию в 0:

defaults('USE_AUTHENTICATION',0);

Теперь ззаходим по адресу https://linuxcookbook.ru/apc.php и смотрим статистику:

Установка и настройка акселератора PHP APCu

На представленном скрине видно, что попадания в кэш составляют 99,1%.

Заключение

Из этой короткой статьи следует, что установка и начальная настройка PHP APCu в Linux вполне доступны начинающим администраторам, даже тем, которые администрируют лишь свой VDS сервер.

Поделиться с друзьями