- How to Install the PHP APCu Extension
- Installing APCu on PHP 7 and PHP 8
- Installing APCu on PHP 5.6
- Verifying the Installation
- Uninstalling the APCu Extension
- Акселератор PHP APCu в Linux
- Установка PHP APCu
- Настройка
- Мониторинг
- Заключение
- How To Install php-apcu on Ubuntu 20.04
- What is php-apcu
- Install php-apcu Using apt-get
- Install php-apcu Using apt
- Install php-apcu Using aptitude
- How To Uninstall php-apcu on Ubuntu 20.04
- Uninstall php-apcu And Its Dependencies
- Remove php-apcu Configurations and Data
- Remove php-apcu configuration, data, and all of its dependencies
- References
- Summary
- Установка PHP расширений на Linux
- Установка расширений через панель ISPmanager
- Коротко о pecl
- Установка расширений через apt, yum и pecl
- mcrypt
- ssh2
- redis
- lzf
- igbinary
How to Install the PHP APCu Extension
APCu is the official replacement for the outdated APC extension. APC provided both opcode caching (opcache) and object caching. Once PHP began including its own opcache, APC was no longer compatible and its opcache functionality became useless. The developers of APC then created APCu, which offers only the object caching functionality (they removed the outdated opcache).
Installing APCu on PHP 7 and PHP 8
To install this extension on PHP 7 or PHP 8, SSH in to your server as root and run these commands:
sudo apt-get -y install gcc make autoconf libc-dev pkg-config sudo peclX.Y-sp install apcu
When asked the following question, press Enter.
Enable internal debugging in APCu [no] :
Once installed, create a configuration file for the extension and restart PHP by running the following commands as root
sudo bash -c "echo extension=apcu.so > /etc/phpX.Y-sp/conf.d/apcu.ini" sudo service phpX.Y-fpm-sp restart
APCu for PHP 7+ does not support an option for full backwards compatibility with APC. If you require full backwards compatibility with APC and you’re using PHP 7+, you’ll also need to install the APCu Backwards Compatibility (apcu-bc) extension.
Installing APCu on PHP 5.6
To install this extension on PHP 5.6, SSH in to your server as root and run these commands:
sudo apt-get -y install gcc make autoconf libc-dev pkg-config sudo pecl5.6-sp install apcu-4.0.11
When asked the following questions, press Enter.
Enable full APC compatibility [yes] : Enable internal debugging in APCu [no] :
Once installed, create a configuration file for the extension and restart PHP by running the following command as root:
sudo bash -c "echo extension=apcu.so > /etc/php5.6-sp/conf.d/apcu.ini" sudo service php5.X-fpm-sp restart
Verifying the Installation
You can verify APCu is installed correctly by running the command:
You should see output like the following:
Additional .ini files parsed => /etc/phpX.Y-sp/conf.d/apcu.ini, apcu
Uninstalling the APCu Extension
To uninstall this extension, as root run the commands:
sudo rm /etc/phpX.Y-sp/conf.d/apcu.ini sudo peclX.Y-sp uninstall apcu
Next, restart PHP-FPM with the command:
sudo service phpX.Y-fpm-sp restart
Акселератор PHP APCu в Linux
В Linux альтернативный кэш PHP APCu — бесплатная, открытая и надёжная платформа для кэширования и оптимизации промежуточного кода PHP.
Установка 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 mensh@139-162-132-20:/var/www/linuxcookbook.ru/web$
Смотрим в браузере страницу с установленным info.php :
Расширение 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 = 1 . При изменениях скрипта он перекомпилируется и кэширует новую версию. При установке параметра в 0 изменения скрипта не проверяются до перезагрузки сервера, что улучшает производительность.
Остальные параметры в большинстве случаев можно не изменять.
Мониторинг
Скачиваем отсюда https://github.com/krakjoe/apcu скрипт apc.php и помещаем его в корень сайта, либо в созданный в корне каталог, например apc .
Конфигурируется скрипт весьма просто:
mensh@139-162-132-20:/var/www/linuxcookbook.ru/web$ cat apc.php | | Rasmus Lerdorf | | Ilia Alshanetsky | +----------------------------------------------------------------------+ 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 и смотрим статистику:
На представленном скрине видно, что попадания в кэш составляют 99,1%.
Заключение
Из этой короткой статьи следует, что установка и начальная настройка PHP APCu в Linux вполне доступны начинающим администраторам, даже тем, которые администрируют лишь свой VDS сервер.
How To Install php-apcu on Ubuntu 20.04
In this tutorial we learn how to install php-apcu on Ubuntu 20.04.
What is php-apcu
The APCu is userland caching: APC (Alternative PHP Cache) stripped of opcode caching after the deployment of Zend OpCache in PHP 5.5 as the primary solution to opcode caching in future versions of PHP.
The APCu is a fast solution for userland caching (and dumping) of PHP variables locally, it is not distributed like MemcacheD, but they can be used together for optimal caching. Description-md5: 0d7462c8f566c71b65f0d4bcf7806445
There are three ways to install php-apcu on Ubuntu 20.04. We can use apt-get , apt and aptitude . In the following sections we will describe each method. You can choose one of them.
Install php-apcu Using apt-get
Update apt database with apt-get using the following command.
After updating apt database, We can install php-apcu using apt-get by running the following command:
sudo apt-get -y install php-apcu
Install php-apcu Using apt
Update apt database with apt using the following command.
After updating apt database, We can install php-apcu using apt by running the following command:
sudo apt -y install php-apcu
Install php-apcu Using aptitude
If you want to follow this method, you might need to install aptitude first since aptitude is usually not installed by default on Ubuntu. Update apt database with aptitude using the following command.
After updating apt database, We can install php-apcu using aptitude by running the following command:
sudo aptitude -y install php-apcu
How To Uninstall php-apcu on Ubuntu 20.04
To uninstall only the php-apcu package we can use the following command:
sudo apt-get remove php-apcu
Uninstall php-apcu And Its Dependencies
To uninstall php-apcu and its dependencies that are no longer needed by Ubuntu 20.04, we can use the command below:
sudo apt-get -y autoremove php-apcu
Remove php-apcu Configurations and Data
To remove php-apcu configuration and data from Ubuntu 20.04 we can use the following command:
sudo apt-get -y purge php-apcu
Remove php-apcu configuration, data, and all of its dependencies
We can use the following command to remove php-apcu configurations, data and all of its dependencies, we can use the following command:
sudo apt-get -y autoremove --purge php-apcu
References
Summary
In this tutorial we learn how to install php-apcu package on Ubuntu 20.04 using different package management tools: apt, apt-get and aptitude.
Установка PHP расширений на Linux
Дополнительно расскажем о том, как подключить расширения в консоли.
Установка расширений через панель ISPmanager
Для начала нужно определить, на какой версии работает наш сайт. Для этого переходим в раздел Домены — WWW-домены , выбираем нужный домен и смотрим последний столбец Версия PHP :
После этого переходим в раздел Настройки web-сервера — PHP , выбираем нужную версию php, расширения:
Далее воспользуемся поиском в верхнем правом углу — вводим туда название расширения. Если оно найдено, выбираем его. По необходимости устанавливаем и включаем:
Коротко о pecl
Прежде чем перейти к установке расширений с помощью пакетных менеджеров и альтернативного репозитория модулей, пару слов скажем о том, с какими ситуациями вы можете столкнуться во время работы с pecl. Ниже будут описаны некоторые из них:
Пример 1. Представим, что у нас две версии php:
Нативная (native) — /usr/bin/php
Альтернативная (alt) — /opt/php73/bin/php — альтернативная версия php 7.3 в панели ISPmanager.
Чтобы установить расширения php, для нативной и альтернативной версии необходимо использовать разные команды.
pecl install Название_расширения
Для альтернативной, php 7.3, так:
/opt/php73/bin/pecl install Название_расширения
Поэтому важно помнить — необходимо указывать полный путь к бинарному файлу pecl. Ниже будут указаны команды установки, без полного пути, так как они могут отличаться, вам нужно иметь это ввиду.
Пример 2. Если вы используете не самую свежую версию php, то во время установки расширения можете получить сообщение о ее несоответствии требованиям — по умолчанию выбираются расширения последних версий, которые часто требуют свежих версий php. Пример уведомления:
requires PHP (version >= 7.0.0, versionВ уведомлении указано, что версия php должна быть не ниже 7.0.0 и не выше 7.1.0, а мы пытаемся установить расширение на версию 5.6.40.
Чтобы понять, какая версия расширения нужна для установки на имеющуюся версию php (в данном случае 5.6.40), обратимся за помощью на официальный сайт. Ищем нужное расширение, переходим на его страницу:
Переходим в список изменений:
Находим в списке изменений, что последней версией расширения, поддерживающей php ниже 7 версии, является redis 2.2.8:
Из этого следует, что для установки нам нужно указать redis-2.2.8, например так (не забудьте поставить знак - между названием расширения и его версией):
/opt/php56/bin/pecl install redis-2.2.8После установки любого из расширений нужно перезапускать apache2/httpd или php-fpm. Также не забудьте проверить, подключилось ли расширение:
/opt/php56/bin/php -m | grep название_расширенияО том, как установить популярное расширение ioncube, читайте в нашей инструкции
Установка расширений через apt, yum и pecl
Ниже описаны установки расширений для всех версий php — от установки зависимостей до подключения. Описание разделено на версию ОС и версию php: нативную (native) или альтернативную (alt). Будьте внимательны при установке расширений для альтернативной версии через pecl.
mcrypt
Во время установки на вопрос “libmcrypt prefix? [autodetect]” жмём Enter.
yum install libmcrypt-devel php-mcryptssh2
apt install libssh2-1-dev php-ssh2redis
Во время установки могут быть заданы вопросы:
enable igbinary serializer support? [no] : «Включить поддержку сериализации через igbinary?»
enable lzf compression support? [no] : «Включить поддержку сжатия через алгоритм lzf?»
enable zstd compression support? [no] : «Включить поддержку сжатия через алгоритм zstd?»
yes - да, no - нетДля выбора yes, должны быть установлены соответствующие модули.
lzf
Во время установки будет задан вопрос:
Sacrifice speed in favour of compression ratio? [no] : «Жертвовать скоростью в пользу степени сжатия?»
yes - да, no - нетПри положительном ответе, будет высокая степень сжатия, но низкая скорость загрузки.
igbinary