<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://178.140.10.58:8080/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://178.140.10.58:8080/feed.php">
        <title>Библиотека знаний - system:php</title>
        <description>Заметки IT программиста</description>
        <link>http://178.140.10.58:8080/</link>
        <image rdf:resource="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-17T10:35:27+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:php:chroot"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:php:libs"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:php:opcache"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:php:xcache"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Библиотека знаний</title>
        <link>http://178.140.10.58:8080/</link>
        <url>http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:php:chroot">
        <dc:format>text/html</dc:format>
        <dc:date>2013-01-15T19:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>php-fpm в chroot и некоторые трудности</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:php:chroot</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;php-fpm_в_chroot_и_некоторые_трудности&quot;&gt;php-fpm в chroot и некоторые трудности&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Относительно недавно я отказался от php-fcgi и apache и перевел все свои сервера под связку nginx + php-fpm, как-нибудь я напишу отдельно об этом. Сейчас же я хочу рассказать немного о php-fpm в chroot и некоторых проблемах, возникающих при помещении php-fpm в chroot.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;php-fpm \u0432 chroot \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;php-fpm_\u0432_chroot_\u0438_\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435_\u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-512&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;php-fpm_в_chroot_для_чего_это_нужно&quot;&gt;php-fpm в chroot – для чего это нужно?&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для начала хотелось бы пояснить, для чего я это сделал. Дело в том, что всем известно, что любая программа содержит ошибки, а php, как язык с очень большими допущениями и низким порогом вхождения, прямо-таки провоцирует программистов и тех, кто себя ошибочно таковыми считает, допускать серьезные ошибки при написании скриптов, что ведет к брешам в безопасности. К тому же мало кто пишет сам для себя, за частую используются коммерческие или бесплатные cms. 
&lt;/p&gt;

&lt;p&gt;
Любая более-менее крупная cms имеет массы возможностей, часто написанных разными людьми. И, соответственно, чем больше возможностей, тем больше потенциальных мест для уязвимостей. Теперь представим, что у вас на сервере размещено несколько проектов (а такое как правило и бывает, ибо делать отдельный сервер или пусть даже виртуальную машину для каждого сайта слишком расточительно). Или, быть может, вы даже решили предоставлять услугу shared hosting’а.
&lt;/p&gt;

&lt;p&gt;
Теперь представим, что один из проектов был скомпрометирован нехорошими людьми. Потенциально эти люди могут получить доступ к каждому из проектов, находящихся по соседству со взломанным сайтом. Даже если вы все, казалось бы, предусмотрели, проставили нужные права, включили кривой safe mode или черт-знает-что еще сделали для защиты, у опытных хакеров может оказаться туз в рукаве в виде только что открытой дырки в по, позволяющей обойти ваши защиты. Что же делать? На помощь приходит php-fpm с полезной опцией помещения исполняемых процессов в chroot.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;php-fpm \u0432 chroot \u2013 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;php-fpm_\u0432_chroot_\u0434\u043b\u044f_\u0447\u0435\u0433\u043e_\u044d\u0442\u043e_\u043d\u0443\u0436\u043d\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;513-3223&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;какие_возникают_трудности_при_помещении_php-fpm_в_chroot&quot;&gt;Какие возникают трудности при помещении php-fpm в chroot?&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u043a\u0438\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0438 php-fpm \u0432 chroot?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u043a\u0438\u0435_\u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442_\u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438_\u043f\u0440\u0438_\u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0438_php-fpm_\u0432_chroot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3224-3330&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;проблема_номер_один&quot;&gt;Проблема номер один&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Самая первая проблема, которая у меня возникла – это пропал коннект к mysql. Расследование показало, что невозможно отрезолвить доменные имена (dns не работал). Замена localhost на 127.0.0.1 проблему решила, но не полностью. Немного погуглив, я нашел решение, оно оказалось простым (элегантность, конечно, под вопросом). В папку /etc (отсчет от корня chroot) мы кладем файлы nsswitch.conf и resolv.conf. В папку lib (lib64 для 64-битных систем) кладем libnss_dns-2.X.so и делаем на него симлинк libnss_dns.so.2. Всё, после этого не забудьте сделать жесткий рестарт (restart) для php-fpm, т.к. мягкий рестарт (reload) не подгружает библиотеки.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u043e\u043c\u0435\u0440 \u043e\u0434\u0438\u043d&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430_\u043d\u043e\u043c\u0435\u0440_\u043e\u0434\u0438\u043d&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3331-4423&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;проблема_номер_два&quot;&gt;Проблема номер два&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Проблема номер два: перестали работать сессии. Решил я это очень просто: ведь нужен еще и временный каталог, а он остался за пределами chroot. Создаем /tmp (если у вас в php.ini другой путь для сессий, то либо создайте и его, либо исправьте на /tmp). Не забудьте назначить владельца и группу root для /tmp и сделать 777 + sticky bit. Для тех, кто не в курсе, sticky bit запрещает удаление чужих файлов в таком каталоге. Для чего это нужно, если у нас chroot? А для того, чтобы пользователь не мог удалить темп, мы создаем пустой файлик (н-р, .no_delete) с правами рута. Теперь юзер не может удалить .no_delete, а значит не может удалить и tmp – всё просто 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u043e\u043c\u0435\u0440 \u0434\u0432\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430_\u043d\u043e\u043c\u0435\u0440_\u0434\u0432\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4424-5566&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;проблема_номер_три&quot;&gt;Проблема номер три&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Проблема номер три: перестали работать некоторые самописные скрипты. Тут всё просто, в скриптах были прописаны абсолютные пути – меняем на относительные или на новые абсолютные с учетом chroot.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u043e\u043c\u0435\u0440 \u0442\u0440\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430_\u043d\u043e\u043c\u0435\u0440_\u0442\u0440\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5567-5964&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;проблема_номер_четыре&quot;&gt;Проблема номер четыре&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Проблема номер четыре: сломался mod_python для php. Поскольку я сомневаюсь, что его использует сколько-нибудь значимое число людей, я не буду вдаваться в подробности. Скажу лишь, что решение было некрасивым, но оно работает.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u043e\u043c\u0435\u0440 \u0447\u0435\u0442\u044b\u0440\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430_\u043d\u043e\u043c\u0435\u0440_\u0447\u0435\u0442\u044b\u0440\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5965-6413&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;проблема_номер_пять&quot;&gt;Проблема номер пять&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Проблема номер пять: перестала работать функция mail(). Дело в том, что sendmail (почтовик по умолчанию) оказался за пределами chroot. Копировать его, как libnss категорически неприемлемо, т.к. это потянет за собой кучу библиотек от libC. Такое решение неверно в корне. Однако, заокеанские друзья подсказали решение. Нужно поставить статически линкованный mini_sendmail. Но, чтобы им воспользоваться надо внести небольшое изменение в код mini_sendmail.
&lt;/p&gt;

&lt;p&gt;
Открываем mini_sendmail.c и ищем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;username = getlogin();
заменяем на:

username = &amp;quot;mini_sendmail&amp;quot;;&lt;/pre&gt;

&lt;p&gt;
Причем имя юзера может быть любым, даже несуществующим: это простая формальность, которая не влияет на работу mini_sendmail.
&lt;/p&gt;

&lt;p&gt;
Но это еще не все, для запуска sendmail придется поместить какой-нибудь шелл в chroot. Я последовал примеру из оригинала и статически скомпилировал busybox. Перед компиляцией я сделал make menuconfig и снял все галочки, кроме статической компиляции и ash. В бизибоксе есть еще sendmail, но почему-то он у меня не заработал. Времени разбираться особо не было, но если у кого-то получилось обойтись без mini_sendmail, то пишите свой рецепт в комментах. Скомпилировав busybox, я поместил его сюда /bin/sh в чруте. На всякий случай делаем restart для php-fpm. И, вуаля, mail() работает
&lt;/p&gt;

&lt;p&gt;
Вот и все проблемы. Вкратце опишу, почему еще php-fpm, а не что-то иное. Прежде всего мы избавляемся от прожорливого и избыточного apache. Во-вторых, мы получаем фактически php-backend, поскольку php-fpm не вызывается динамически, а висит демоном постоянно. php-fpm контролирует выделение памяти и позволяет потенциально сократить расходы. Также это решение несколько ускоряет работу сервера за счет исключения затрат на запуск и выгрузку процессов php, если раньше вы использовали php-cgi/fcgi. По сравнению с php-cgi/fcgi php-fpm обеспечивает корректное завершение процессов по таймауту, и я стал гораздо реже получать 502-ошибку в логах.
&lt;/p&gt;

&lt;p&gt;
Оригинал: &lt;a href=&quot;http://linuxa.ru/blog/php-fpm-v-chroot-i-nekotorye-trudnosti&quot; class=&quot;urlextern&quot; title=&quot;http://linuxa.ru/blog/php-fpm-v-chroot-i-nekotorye-trudnosti&quot; rel=&quot;ugc nofollow&quot;&gt;http://linuxa.ru/blog/php-fpm-v-chroot-i-nekotorye-trudnosti&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u043e\u043c\u0435\u0440 \u043f\u044f\u0442\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430_\u043d\u043e\u043c\u0435\u0440_\u043f\u044f\u0442\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6414-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:php:libs">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-29T00:26:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Библиотеки для повседневного использования</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:php:libs</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:php&amp;amp;do=showtag&amp;amp;tag=php&quot; class=&quot;wikilink1&quot; title=&quot;tag:php&quot; rel=&quot;tag&quot;&gt;php&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:libs&amp;amp;do=showtag&amp;amp;tag=libs&quot; class=&quot;wikilink1&quot; title=&quot;tag:libs&quot; rel=&quot;tag&quot;&gt;libs&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:libraries&amp;amp;do=showtag&amp;amp;tag=libraries&quot; class=&quot;wikilink1&quot; title=&quot;tag:libraries&quot; rel=&quot;tag&quot;&gt;libraries&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;библиотеки_для_повседневного_использования&quot;&gt;Библиотеки для повседневного использования&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438_\u0434\u043b\u044f_\u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0433\u043e_\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;29-125&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;goutte&quot;&gt;Goutte&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Goutte используется для скрапинга веб-сайтов и извлечения данных. Лицензия — MIT. Предоставляет обширный &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; для обхода сайтов/блогов и извлечения данных из &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;/XML.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/FriendsOfPHP/Goutte&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/FriendsOfPHP/Goutte&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/FriendsOfPHP/Goutte&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Goutte&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;goutte&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;126-474&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;phpgeo&quot;&gt;PHPGeo&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
PHPGeo — простая библиотека для измерения расстояния между двумя координатами с высокой точностью. Она использует формулу Гаверсинуса и Винсента для вычисления расстояния. Вы можете интегрировать ее с любым приложением, связанным с картами или местоположениями.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/mjaschen/phpgeo&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/mjaschen/phpgeo&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/mjaschen/phpgeo&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PHPGeo&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;phpgeo&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;475-1012&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;geocoder&quot;&gt;Geocoder&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Если вы планируете разработать geo aware приложение, взгляните на Geocoder. Это расширяемая PHP-библиотека делится на 2 части: Provider и HttpAdapter. Она также предлагает дополнительный уровень абстракции для геокодирования.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://geocoder-php.org/Geocoder/&quot; class=&quot;urlextern&quot; title=&quot;http://geocoder-php.org/Geocoder/&quot; rel=&quot;ugc nofollow&quot;&gt;http://geocoder-php.org/Geocoder/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Geocoder&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;geocoder&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1013-1449&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;snappy&quot;&gt;Snappy&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Snappy позволяет создавать снимки, миниатюры и PDF по &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; или &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; страницы. Эта библиотека использует WebKit на основе wkhtmltoimage и wkhtmltopdf, доступна для Windows, OSX и Linux.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/KnpLabs/snappy&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/KnpLabs/snappy&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/KnpLabs/snappy&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Snappy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;snappy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1450-1780&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;ratchet_websocket&quot;&gt;Ratchet (websocket)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Ratchet — слабо связанная PHP библиотека, которая предлагает различные инструменты для разработки в режиме реального времени, двунаправленную связь приложения между сервером и клиентом через WebSockets. Есть много легкодоступных компонентов. Вы можете написать собственное приложение-чат за несколько минут.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://socketo.me/&quot; class=&quot;urlextern&quot; title=&quot;http://socketo.me/&quot; rel=&quot;ugc nofollow&quot;&gt;http://socketo.me/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ratchet (websocket)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ratchet_websocket&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1781-2388&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;html_purifier&quot;&gt;HTML Purifier&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; Purifier — библиотека для фильтрации &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, разработанная для удаления всего вредоносного кода. Может быть использована для защиты кода от XSS атак. Эта библиотека использует надежные белые списки, агрессивный разбор, и убеждается, что в результате разметка соответствует стандартам.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://htmlpurifier.org/&quot; class=&quot;urlextern&quot; title=&quot;http://htmlpurifier.org/&quot; rel=&quot;ugc nofollow&quot;&gt;http://htmlpurifier.org/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HTML Purifier&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;html_purifier&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2389-2955&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;imagine&quot;&gt;Imagine&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Imagine, это богатая объектно-ориентированная библиотека для работы с изображениями. Она может обрабатывать различные операции, такие как открытие, сохранение, создание, изменение размеров, водяные знаки, создать коллаж, делать отражение изображения и т.д. Система координат Imagine позволяет рисовать различные фигуры на изображениях. Класс для работы с цветом помогает создавать значения RGB для применения цветов к изображениям. Он также поддерживает слои и манипуляции для анимированных GIF.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://imagine.readthedocs.org/en/latest/&quot; class=&quot;urlextern&quot; title=&quot;http://imagine.readthedocs.org/en/latest/&quot; rel=&quot;ugc nofollow&quot;&gt;http://imagine.readthedocs.org/en/latest/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Imagine&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;imagine&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2956-3916&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;urlify&quot;&gt;URLify&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
A PHP port of URLify.js from the Django project. Handles symbols from Latin languages as well as Arabic, Azerbaijani, Czech, German, Greek, Latvian, Lithuanian, Polish, Romanian, Bulgarian, Russian, Serbian, Turkish, Ukrainian and Vietnamese. Symbols it cannot transliterate it will simply omit.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/jbroadway/urlify&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/jbroadway/urlify&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/jbroadway/urlify&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;URLify&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;urlify&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3917-4270&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;asyncphp&quot;&gt;AsyncPHP&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Библиотека для асинхронного запуска команд на php
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/asyncphp/doorman&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/asyncphp/doorman&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/asyncphp/doorman&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;AsyncPHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;asyncphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4271-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:php:opcache">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-20T01:53:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>OP Cache / Кеширование OP-кода</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:php:opcache</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:opcache&amp;amp;do=showtag&amp;amp;tag=opcache&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:opcache&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; opcache&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:xcache&amp;amp;do=showtag&amp;amp;tag=xcache&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:xcache&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; xcache&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:php&amp;amp;do=showtag&amp;amp;tag=php&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:php&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; php&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:cache&amp;amp;do=showtag&amp;amp;tag=cache&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:cache&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; cache&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;op_cache_кеширование_op-кода&quot;&gt;OP Cache / Кеширование OP-кода&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OP Cache \/ \u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 OP-\u043a\u043e\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;op_cache_\u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_op-\u043a\u043e\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;35-95&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;apc_-_умер&quot;&gt;APC - умер&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The Alternative PHP Cache[1] (APC) — бесплатный и открытый opcode кэшер для PHP. Он был задуман, как бесплатный, открытый и стабильный фреймворк для кэширования и оптимизации исходного кода PHP, также возможно кэширование пользовательских данных.
&lt;/p&gt;

&lt;p&gt;
Поддерживает PHP4 и PHP5, включая 5.3 и 5.4.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://github.com/addshore/apc-gui&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/addshore/apc-gui&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/addshore/apc-gui&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;APC - \u0443\u043c\u0435\u0440&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;apc_-_\u0443\u043c\u0435\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;96-648&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;apcu_-_без&quot;&gt;APCU - без&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/krakjoe/apcu&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/krakjoe/apcu&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/krakjoe/apcu&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;APCU - \u0431\u0435\u0437&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;apcu_-_\u0431\u0435\u0437&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;649-715&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;opcache_-_от_php_55&quot;&gt;OPCACHE - от PHP 5.5&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Zend OPcache (ранее назывался &amp;quot;Zend Optimizer+&amp;quot;) обеспечивает более быстрое выполнение PHP кода, посредством кэширования и оптимизации. Он улучшает PHP производительность, сохраняя скомпилированный байт-код в разделяемой памяти. Zend OPcache включен по умолчанию начиная с PHP 5.5.
&lt;/p&gt;

&lt;p&gt;
Как расширение PECL поддерживался в версииях 5.2, 5.3 и 5.4.
&lt;/p&gt;

&lt;p&gt;
Поддерживает PHP5, включая 5.6.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://github.com/PeeHaa/OpCacheGUI&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/PeeHaa/OpCacheGUI&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/PeeHaa/OpCacheGUI&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://github.com/rlerdorf/opcache-status&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/rlerdorf/opcache-status&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/rlerdorf/opcache-status&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://github.com/amnuts/opcache-gui&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/amnuts/opcache-gui&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/amnuts/opcache-gui&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OPCACHE - \u043e\u0442 PHP 5.5&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;opcache_-_\u043e\u0442_php_55&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;716-1511&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;zend_opcache&quot;&gt;Zend OPcache&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Реализация OpCache позволит обрабатывать больше запросов в секунду и возвращать ответ быстрее, чем без движка кэширования байт-кода. Так как OpCache довольно прост в установке и конфигурировании, вся настройка не займет у вас много времени.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Zend OPcache&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;zend_opcache&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1512-1967&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;ссылки&quot;&gt;Ссылки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://www.digitalocean.com/community/questions/enable-php-5-5-opcache-on-ubuntu-14-04-with-nginx-and-php-fpm&quot; class=&quot;urlextern&quot; title=&quot;https://www.digitalocean.com/community/questions/enable-php-5-5-opcache-on-ubuntu-14-04-with-nginx-and-php-fpm&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.digitalocean.com/community/questions/enable-php-5-5-opcache-on-ubuntu-14-04-with-nginx-and-php-fpm&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/&quot; class=&quot;urlextern&quot; title=&quot;https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1968-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:php:xcache">
        <dc:format>text/html</dc:format>
        <dc:date>2016-02-15T08:41:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>XCache  / Кеширование OP-кода</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:php:xcache</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:opcache&amp;amp;do=showtag&amp;amp;tag=opcache&quot; class=&quot;wikilink1&quot; title=&quot;tag:opcache&quot; rel=&quot;tag&quot;&gt;opcache&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:xcache&amp;amp;do=showtag&amp;amp;tag=xcache&quot; class=&quot;wikilink1&quot; title=&quot;tag:xcache&quot; rel=&quot;tag&quot;&gt;xcache&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:php&amp;amp;do=showtag&amp;amp;tag=php&quot; class=&quot;wikilink1&quot; title=&quot;tag:php&quot; rel=&quot;tag&quot;&gt;php&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:cache&amp;amp;do=showtag&amp;amp;tag=cache&quot; class=&quot;wikilink1&quot; title=&quot;tag:cache&quot; rel=&quot;tag&quot;&gt;cache&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h2 class=&quot;sectionedit1&quot; id=&quot;xcache_кеширование_op-кода&quot;&gt;XCache  / Кеширование OP-кода&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Поддерживает функции оптимизации скриптов, кэширование байт-кода в оперативную память, кэширование пользовательских данных в shared memory, простое профилирование работы скриптов. Имеет собственный &lt;abbr title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/abbr&gt;, наличие и использование которого, однако, не обязательно для функционирования пакета. Бесплатен. Автор всегда делал основной упор на &amp;quot;стабильность работы&amp;quot;.
&lt;/p&gt;

&lt;p&gt;
Поддерживает PHP4 и PHP5, включая 5.6
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://xcache.lighttpd.net/wiki/XcacheIni&quot; class=&quot;urlextern&quot; title=&quot;http://xcache.lighttpd.net/wiki/XcacheIni&quot; rel=&quot;ugc nofollow&quot;&gt;http://xcache.lighttpd.net/wiki/XcacheIni&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
&lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_PHP_accelerators&quot; class=&quot;urlextern&quot; title=&quot;https://en.wikipedia.org/wiki/List_of_PHP_accelerators&quot; rel=&quot;ugc nofollow&quot;&gt;https://en.wikipedia.org/wiki/List_of_PHP_accelerators&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;XCache  \/ \u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 OP-\u043a\u043e\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xcache_\u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_op-\u043a\u043e\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;35-906&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;настройка&quot;&gt;Настройка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;co0&quot;&gt;; configuration for php Xcache module&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;xcache-common&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;;; non-Windows example:&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;extension&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; xcache.so&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;;; Windows example:&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; extension = php_xcache.dll&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;xcache.admin&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
xcache.admin.enable_auth &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; On&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; Configure this to use admin pages&lt;/span&gt;
xcache.admin.user &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;xcache&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; password01&lt;/span&gt;
xcache.admin.pass &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;;xcache.admin.pass = &amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;xcache&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; ini only settings, all the values here is default unless explained&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; select low level shm implemenation&lt;/span&gt;
xcache.shm_scheme &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;        &lt;span class=&quot;st0&quot;&gt;&amp;quot;mmap&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; to disable: xcache.size=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; to enable : xcache.size=64M etc (any size &amp;gt; 0) and your system mmap allows&lt;/span&gt;
xcache.size  &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;               128M&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; set to cpu count (cat /proc/cpuinfo |grep -c processor)&lt;/span&gt;
xcache.count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;                 2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; just a hash hints, you can always store count(items) &amp;gt; slots&lt;/span&gt;
xcache.slots &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;                8K&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; ttl of the cache item, 0=forever&lt;/span&gt;
xcache.ttl   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;                 0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; interval of gc scanning expired items, 0=no scan, other values is in seconds&lt;/span&gt;
xcache.gc_interval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;           0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; same as aboves but for variable cache&lt;/span&gt;
xcache.var_size  &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;            4M&lt;/span&gt;
xcache.var_count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;             1&lt;/span&gt;
xcache.var_slots &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;            8K&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; default value for $ttl parameter of xcache_*() functions&lt;/span&gt;
xcache.var_ttl   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;             0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; hard limit ttl that cannot be exceed by xcache_*() functions. 0=unlimited&lt;/span&gt;
xcache.var_maxttl   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;          0&lt;/span&gt;
xcache.var_gc_interval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;     300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; mode:0, const string specified by xcache.var_namespace&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; mode:1, $_SERVER[xcache.var_namespace]&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; mode:2, uid or gid (specified by xcache.var_namespace)&lt;/span&gt;
xcache.var_namespace_mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;    0&lt;/span&gt;
xcache.var_namespace &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;        &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; N/A for /dev/zero&lt;/span&gt;
xcache.readonly_protection &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; Off&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; for *nix, xcache.mmap_path is a file path, not directory. (auto create/overwrite)&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; Use something like &amp;quot;/tmp/xcache&amp;quot; instead of &amp;quot;/dev/*&amp;quot; if you want to turn on ReadonlyProtection&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; different process group of php won&#039;t share the same /tmp/xcache&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; for win32, xcache.mmap_path=anonymous map name, not file path&lt;/span&gt;
xcache.mmap_path &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;    &lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/zero&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
&amp;nbsp;
; Useful when XCache crash. leave it blank(disabled) or &amp;quot;/tmp/phpcore/&amp;quot; (writable by php)&lt;/span&gt;
xcache.coredump_directory &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;   &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; Windows only. leave it as 0 (default) until you&#039;re told by XCache dev&lt;/span&gt;
xcache.coredump_type &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;         0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; disable cache after crash&lt;/span&gt;
xcache.disable_on_crash &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;    Off&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; enable experimental documented features for each release if available&lt;/span&gt;
xcache.experimental &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;        Off&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; per request settings. can ini_set, .htaccess etc&lt;/span&gt;
xcache.cacher &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;               On&lt;/span&gt;
xcache.stat   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;               On&lt;/span&gt;
xcache.optimizer &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;           Off&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;xcache.coverager&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; enabling this feature will impact performance&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; enabled only if xcache.coverager == On &amp;amp;&amp;amp; xcache.coveragedump_directory == &amp;quot;non-empty-value&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; per request settings. can ini_set, .htaccess etc&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; enable coverage data collecting and xcache_coverager_start/stop/get/clean() functions&lt;/span&gt;
xcache.coverager &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;          Off&lt;/span&gt;
xcache.coverager_autostart &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;  On&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;
; set in php ini file only&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;; make sure it&#039;s readable (open_basedir is checked) by coverage viewer script&lt;/span&gt;
xcache.coveragedump_directory &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;907-3987&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit3&quot; id=&quot;xcache_админ_панель&quot;&gt;Xcache админ панель&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://xcache.lighttpd.net/wiki/InstallAdministration&quot; class=&quot;urlextern&quot; title=&quot;https://xcache.lighttpd.net/wiki/InstallAdministration&quot; rel=&quot;ugc nofollow&quot;&gt;https://xcache.lighttpd.net/wiki/InstallAdministration&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Xcache \u0430\u0434\u043c\u0438\u043d \u043f\u0430\u043d\u0435\u043b\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xcache_\u0430\u0434\u043c\u0438\u043d_\u043f\u0430\u043d\u0435\u043b\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3988-4087&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;статьи&quot;&gt;Статьи&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/&quot; class=&quot;urlextern&quot; title=&quot;https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://serverfault.com/questions/694385/how-to-upgrade-php-5-4-to-php-5-6-on-debian-gnu-linux-7-wheezy&quot; class=&quot;urlextern&quot; title=&quot;http://serverfault.com/questions/694385/how-to-upgrade-php-5-4-to-php-5-6-on-debian-gnu-linux-7-wheezy&quot; rel=&quot;ugc nofollow&quot;&gt;http://serverfault.com/questions/694385/how-to-upgrade-php-5-4-to-php-5-6-on-debian-gnu-linux-7-wheezy&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://stackoverflow.com/questions/17224798/how-to-use-php-opcache&quot; class=&quot;urlextern&quot; title=&quot;http://stackoverflow.com/questions/17224798/how-to-use-php-opcache&quot; rel=&quot;ugc nofollow&quot;&gt;http://stackoverflow.com/questions/17224798/how-to-use-php-opcache&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://seriyps.ru/blog/2009/08/08/tyuning-php-ustanovka-xcache-na-ubuntu/&quot; class=&quot;urlextern&quot; title=&quot;http://seriyps.ru/blog/2009/08/08/tyuning-php-ustanovka-xcache-na-ubuntu/&quot; rel=&quot;ugc nofollow&quot;&gt;http://seriyps.ru/blog/2009/08/08/tyuning-php-ustanovka-xcache-na-ubuntu/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://rtcamp.com/tutorials/php/apc-cache-with-web-interface/&quot; class=&quot;urlextern&quot; title=&quot;https://rtcamp.com/tutorials/php/apc-cache-with-web-interface/&quot; rel=&quot;ugc nofollow&quot;&gt;https://rtcamp.com/tutorials/php/apc-cache-with-web-interface/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://massivescale.blogspot.ru/2013/06/php-55-zend-optimiser-opcache-vs-xcache.html&quot; class=&quot;urlextern&quot; title=&quot;http://massivescale.blogspot.ru/2013/06/php-55-zend-optimiser-opcache-vs-xcache.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://massivescale.blogspot.ru/2013/06/php-55-zend-optimiser-opcache-vs-xcache.html&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://www.codestance.com/tips-archive/xcache-v3-0-1-more-performance-for-php-apps-340&quot; class=&quot;urlextern&quot; title=&quot;http://www.codestance.com/tips-archive/xcache-v3-0-1-more-performance-for-php-apps-340&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.codestance.com/tips-archive/xcache-v3-0-1-more-performance-for-php-apps-340&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0430\u0442\u044c\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0430\u0442\u044c\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4088-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
