Встановлення apc. Початкове налаштування ДБЖ APC в Linux з точки зору чайника

sudo apt-get install php-apc - не працює

APC більше не потрібний в Ubuntu 14.04. APC не підтримується в PHP 5.5, що йде зі своїм вбудованим Opcache кешем замість цього. Переконайтеся, що кеш увімкнено, відредагуйте файл /etc/php5/apache2/php.ini .
Замініть:

;opcache.enable=0

Opcache.enable=1

Потім переконайтеся, що модуль php активований:

# php5enmod opcache

Нарешті, перезавантажте Apache:

Service apache2 restart

Перевірка:

Http:// /info.php

Створіть файл info.php наступного змісту в корені директорії веб-сервера /var/www/html/

І відкрийте його у браузері. Там ви знайдете інформацію про PHP, у тому числі і про включений кеш. Не залишайте цей файл на продакшн-сервері. Видаліть його після перевірки.
Повинні побачити:

Zend OPcache Opcode Caching Up and Running Optimization Enabled І т.д.

How To Install Alternative PHP Cache (APC) on Ubuntu 12.04

Установка з PECL

Для встановлення з репозиторію Ubuntu дивіться нижче.

About APC.
APC is a great operation code caching system for PHP, що може допомогти speed up your site. PHP є dynamickим сервером-сервером, що підписує мову, яка потребує перевіреного, складеного і виконаного на сервері з кожною page request. У багатьох випадках тому, що реакції дають винятково ті ж самі результати, які методи, що cloud server has unnecessarily repeat all these steps for each of them.
Це is where APC перебуває в play. What it does is save the PHP opcode (operation code) в RAM пам'яті і якщо ви потребували, executes it from there. У принципі, цевипадають пірсіння і пишання кроків і мінімізують деякі необхідні навантаження на cloud server.

Передбачається, що у вас є власний VPS з привілеями root і встановлений LAMP.

Для початку встановіть пакети:

Sudo apt-get install php-pear php5-dev make libpcre3-dev

Тепер ви можете встановити APC, використовуючи команду pecl:

Sudo pecl install apc

Вам буде запропоновано відповісти на кілька питань, але до тих пір, поки ви не дізнаєтеся точну відповідь, використовуйте значення за замовчуванням натискаючи Enter.

Наступний та останній крок – відредагуйте файл php.ini

додавши в кінець рядок:

Extension = apc.so

Збережіть файл і перезапустіть Apache:

Sudo service apache2 restart

Щоб перевірити чи увімкнено APC, перевірте сторінку PHP info. Якщо у вас немає цієї, створіть її в директорії /var/www:

Nano /var/www/info.php

та вставте код:

Відкрийте його у браузері. Там ви знайдете інформацію про PHP, у тому числі і про включений кеш. Не залишайте цей файл на продакшн-сервері. Видаліть його після перевірки.

Налаштування APC

Ви встановили APC і він запущений з стандартними налаштуваннями. Існує щонайменше два параметри, про які вам слід знати. Відкрийте php.ini, який ви вже редагували:

Sudo nano /etc/php5/apache2/php.ini

Під рядком, який ви увімкнули APC, додайте:

Apc.shm_size = 64

Це дозволить APC використовувати 64MB пам'яті RAM для кешування. Залежно від конфігурації, ви можете змінювати це значення.
Наступний рядок, який слід додати:

Apc.stat = 0

Параметр apc.stat перевіряє script кожного запиту, змінився він чи ні. Якщо скрипт змінився, APC перекомпілює його і кешує нову версію. Ця дефолтна поведінка APC після встановлення. Встановлюючи значення параметра в 0, ми говоримо APC не перевіряти зміни скрипту. Це покращує продуктивність, але при цьому, якщо скрипт був змінений, зміни не використовуються до перезавантаження сервера. Таким чином, значення 0 рекомендується використовувати тільки на продакшн сервері, де немає постійних змін коду.

Моніторинг APC
Існує невеликий скрипт для моніторингу статусу та продуктивності APC кешу.

Ви можете скопіювати файл apc.php з /usr/share/php/ до робочої директорії веб-сервера, наприклад /vwr/www:

Cp /usr/share/php/apc.php /var/www - для встановленого з pecl

Або скачати:

Wget http://pecl.php.net/get/APCu -O - | tar xz --wildcards apcu*/apc.php

Тепер зверніться до цього файлу з браузера:

Http:// /apc.php

Ви повинні побачити статистику APC. Зверніть увагу, що APC вистачає пам'яті та фрагментація не дуже велика.
Гарною ознакою буде високий відсоток потрапляння до кешу, близько 95% після кількох запитів.

Встановлення APC cache із репозиторію Ubuntu

$ sudo apt-get install php-apc

Перезапустити Apache і перегляньте info.php . З'явиться секція APC (Enabled On).
Для монітроїнгу використовуйте утиліту, що входить до комплекту постачання:

Cd /usr/share/doc/php-apc # gunzip apc.php.gz

Скопіюйте файл apc.php , наприклад, /var/www
Зверніться до файлу з браузера:

Http:// /apc.php

Помилка:
No cache info available. APC не appear to be running.

з'являється, якщо код apc.php не задано пароль.
Відредагуйте файл apc.php:

# vi /var/www/apc.php

та задайте ім'я користувача та пароль:

Defaults("ADMIN_USERNAME","apc"); // Admin Username defaults("ADMIN_PASSWORD","pass"); // Admin Password - CHANGE THIS TO ENABLE!

Defaults("USE_AUTHENTICATION",0);

Додаткові опції /etc/php5/apache2/conf.d/apc.ini

;apc.enabled=1 – не актуально;apc.enable_cli=1 – не актуально;apc.shm_size=64M # за замовчуванням 32M ;apc.stat = 0

Поведінка цих функцій залежить від установок у php.ini.

Незважаючи на те, що налаштування APC за замовчуванням підходять для більшості установок, для деяких завдань може знадобитися тонше налаштування.

При конфігуруванні APC є два основні моменти, на які потрібно звернути увагу. Перший - скільки пам'яті надати у розпорядження APC, а другий - чи APC перевірятиме, чи модифікувався файл, при кожному запиті. За ці налаштування відповідають параметри apc.shm_sizeі apc.statвідповідно. Вважно прочитайте розділи, які стосуються налаштування цих параметрів.

Як тільки сервер запущено, скрипт apc.php, що поставляється з цим розширенням, повинен бути скопійований в "docroot" і права на нього повинні дозволяти запустити його через браузер. Цей скрипт надає детальну інформацію щодо роботи APC. Якщо PHP дозволено GD, цей скрипт також показуватиме корисні графіки. Звичайно ж перше, що буде цікаво, це те, чи кешує APC що-небудь. Якщо APC працює, то значення Cache full count(ліворуч) показуватиме, скільки разів кеш повністю заповниться і був змушений примусово видалити записи, до яких не зверталися останні apc.ttlсекунд. Чим менше це число - тим краще налаштований кеш. Якщо це число постійно зростає, отже, APC доводиться постійно очищати старі записи і значить втрачається весь сенс кешування. Найкращий спосіб зменшити це число - це додати пам'ять APC. Якщо зробити цього не можна, то треба переналаштувати apc.filters, щоб обмежити набір скриптів, що кешуються.

Якщо APC зібраний з підтримкою mmap (Memory Mapping), він буде використовувати лише один сегмент пам'яті, якщо ж навпаки, APC зібраний з підтримкою SHM (SysV Shared Memory), він використовуватиме кілька сегментів. MMAP не має максимального обмеження, на відміну від SHM, який обмежується /proc/sys/kernel/shmmax. Зазвичай рекомендується використовувати MMAP, тому що він швидше виділяє пам'ять при перезавантаженні веб-сервера, що позначається на швидкості запуску сервера.

Конфігураційні параметри APC
Ім'я За замовчуванням Місце зміни список змін
apc.enabled "1" PHP_INI_SYSTEM PHP_INI_SYSTEM в APC 2. PHP_INI_ALL в APC<= 3.0.12.
apc.shm_segments "1" PHP_INI_SYSTEM
apc.shm_size "32M" PHP_INI_SYSTEM
apc.shm_strings_buffer "4M" PHP_INI_SYSTEM Доступно з APC 3.1.4.
apc.optimization "0" PHP_INI_ALL PHP_INI_SYSTEM в APC 2. Видалено в APC 3.0.13.
apc.num_files_hint "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM Доступно з APC 3.0.0.
apc.ttl "0" PHP_INI_SYSTEM Доступно з APC 3.0.0.
apc.user_ttl "0" PHP_INI_SYSTEM Доступно з APC 3.0.0.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_ALL PHP_INI_SYSTEM в APC<= 3.0.12. Доступно с APC 3.0.0.
apc.filters NULL PHP_INI_SYSTEM
apc.mmap_file_mask NULL PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM Доступно з APC 3.0.0. До APC 3.1.4 значення за замовчуванням "0" (Disabled).
apc.file_update_protection "2" PHP_INI_SYSTEM Доступно з APC 3.0.6.
apc.enable_cli "0" PHP_INI_SYSTEM Доступно з APC 3.0.7.
apc.max_file_size "1M" PHP_INI_SYSTEM Доступно з APC 3.0.7.
apc.use_request_time "1" PHP_INI_ALL Доступно з APC 3.1.3.
apc.stat "1" PHP_INI_SYSTEM Доступно з APC 3.0.10.
apc.write_lock "1" PHP_INI_SYSTEM Доступно з APC 3.0.11.
apc.report_autofilter "0" PHP_INI_SYSTEM Доступно з APC 3.0.11.
apc.serializer "default" PHP_INI_SYSTEM Доступно з APC 3.1.0.
apc.include_once_override "0" PHP_INI_SYSTEM Доступно з APC 3.0.12.
apc.rfc1867 "0" PHP_INI_SYSTEM Доступно з APC 3.0.13.
apc.rfc1867_prefix "upload_" PHP_INI_SYSTEM
apc.rfc1867_name "APC_UPLOAD_PROGRESS" PHP_INI_SYSTEM
apc.rfc1867_freq "0" PHP_INI_SYSTEM
apc.rfc1867_ttl "3600" PHP_INI_SYSTEM Доступно з APC 3.1.1.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM Доступно в APC 3.0.14 – 3.1.11.
apc.coredump_unmap "0" PHP_INI_SYSTEM Доступно з APC 3.0.16.
apc.stat_ctime "0" PHP_INI_SYSTEM Доступно з APC 3.0.13.
apc.preload_path NULL PHP_INI_SYSTEM Доступно з APC 3.1.1.
apc.file_md5 "0" PHP_INI_SYSTEM Доступно з APC 3.1.1.
apc.canonicalize "1" PHP_INI_SYSTEM Доступно з APC 3.1.1.
apc.lazy_functions 0 PHP_INI_SYSTEM Доступно з APC 3.1.3.
apc.lazy_classes 0 PHP_INI_SYSTEM Доступно з APC 3.1.3.
Для детального опису констант PHP_INI_*, зверніться до розділу Де можна встановити параметри конфігурації .

Коротке пояснення конфігураційних директив.

Якщо встановити apc.enabledрівним 0, то APC не буде включено. Це корисно, коли APC статично включений до PHP і немає інших варіантів для заборони його використання. Якщо APC зібрано як DSO, можна просто закоментувати рядок extensionв php.ini.

Apc.shm_segments integer

Кількість сегментів пам'яті, що розділяється, виділеної під кеш. Якщо APC використовував всю доступну пам'ять, що розділяється, а apc.shm_sizeтаким великим, як дозволяє система, збільшення цього параметра може допомогти.

Apc.shm_size string

Розмір сегмента пам'яті, що розділяється, заданий в короткій нотації (див. цей FAQ). За замовчуванням деякі системи (включаючи більшість варіантів BSD) обмежують це вкрай малим значенням.

Apc.shm_strings_buffer string

Розмір пам'яті відданий під рядковий кеш, що розділяється, використовуваний внутрішніми процесами APC. Розмір повинен завершуватися суфіксом M або G для позначення мегабайт та гігабайт відповідно. Використання цього параметра може скоротити розмір пам'яті робочих процесів PHP-FPM, оскільки однакові рядки будуть збережені в пам'яті лише один раз і зможуть використовуватися всіма робочими процесами.

Apc.optimization integer

Рівень оптимізації. Нуль забороняє оптимізації. Чим вище це значення, тим паче агресивна оптимізація буде використана. Не чекайте великого приросту у швидкості. Це експериментальна функціональність.

Apc.num_files_hint integer

Підказка щодо кількості унікальних файлів, які використовуються у вашому сайті. Встановіть рівним нулю або взагалі не вказуйте, якщо не впевнені. Ця настройка корисна, коли у вас багато тисяч файлів.

Apc.user_entries_hint integer apc.file_update_protection integer

Коли файл змінюється на ходу, це має відбуватися атомним чином. Тобто спочатку його треба записати в тимчасовий файл, а потім перемістити ( mv) з його цільову позицію. Багато текстових редакторів, cp, tarта інші не роблять цього. Це може призвести до того, що файл буде запитаний (і закешований) під час запису. Налаштування apc.file_update_protectionзадає затримку кешування для нових файлів. За промовчанням 2 секунди. Це означає, що якщо тимчасова мітка модифікації файлу ( mtime) каже, що з моменту зміни файлу пройшло менше 2 секунд, він не буде кешований. Нещасна людина, яка спробує звернутися до напівзбереженого файлу, спостерігатиме дивну поведінку, але, принаймні, вона триватиме не довго. Якщо всі файли веб-сервера будуть оновлюватися атомарно, за допомогою таких методів, як rsync(який робить оновлення коректно), це поведінка можна відключити встановимо цей параметр рівним нулю. Якщо система перевантажена по вводу/виводу, деякі оновлення можуть тривати більше двох секунд і це налаштування має бути відповідно збільшення.

Apc.enable_cli integer

Більше для тестування та налагодження. Ця установка дозволяє APC для CLI-версії PHP. При звичайній роботі запускати APC, який створюватиме, наповнюватиме і знищуватиме кеш при кожному запуску сценарію в консолі, буде далеко не найкращою ідеєю. Але з метою тестування та налагодження можна легко включити APC для CLI.

Apc.max_file_size integer

Не кешує файли більшого розміру, ніж задане цим налаштуванням. Типово 1M.

Apc.stat integer

Будьте обережні змінюючи це налаштування. За замовчуванням вона увімкнена, змушуючи APC перевіряти файли скриптів при кожному запиті на предмет, чи не були вони змінені. Якщо вони були змінені, вони будуть перекомпілювані і закешовані заново. Якщо ж це налаштування відключити, то APC таку перевірку проводити не буде і якщо файл вже був закеширован, а після цього змінено, то нова версія в кеш не потрапить. Для перекешування потрібно перезавантажити веб-сервер. Зверніть увагу, що веб-сервера, налаштовані для використання FastCGI, можуть не очищати кеш при перезапуску. У промислових середовищах, де зміни файлів відбуваються дуже рідко, відключення цієї опції може значно підвищити продуктивність.

Для файлів завантажених через included/required ця опція працює чудово, але майте на увазі, що при включенні файлу по відносному шляху (у Unix це будь-який шлях, що не починається з /), APC перевірятиме його на унікальність. Якщо ж використовуються абсолютні шляхи, APC пропускатиме цю перевірку і використовувати абсолютний шлях як унікальний ідентифікатор файлу.

Apc.write_lock boolean

На високонавантажених серверах, коли сервер стартує, або коли безліч файлів змінюються одночасно, APC може спробувати скомпілювати і закешувати той самий файл кілька разів одночасно. Блокування запису гарантує, що лише один процес намагатиметься компілювати та кешувати некешований файл. Інші процеси, яким потрібно використовувати цей файл, будуть використовувати його некешовану версію, замість того, щоб чекати на його появу в кеші.

Apc.report_autofilter boolean

Логує будь-які скрипти, які були виключені з кешування через проблеми раннього чи пізнього зв'язування.

Apc.serializer string

Вказує APC на використання стороннього серіалізатора.

Apc.include_once_override boolean

Оптимізує виклики include_onceі require_onceдля запобігання дорогим системним викликам.

Увага

Цей функціонал є ЕКСПЕРЕМЕНТАЛЬНИМ. Поведінка цієї директиви, її ім'я та документація на неї можуть бути змінені без попередження в майбутніх версіях APC. Використовуйте її на свій страх та ризик.

Apc.rfc1867 boolean

Перехоплювач прогресу завантаження файлів RFC1867 доступний в APC, тільки якщо він зібраний з PHP 5.2.0 і вище. Якщо дозволено, то будь-який файл, що завантажується на сервер, що містить у формі, перед полем з файлом, поле з ім'ям APC_UPLOAD_PROGRESS, буде змушувати APC автоматично створювати запис користувача в кеші виду upload_ key, де key- це значення поля APC_UPLOAD_PROGRESS.

Пам'ятайте, що приховане поле APC_UPLOAD_PROGRESSмає йти до поля з файлом, інакше робота буде некоректною.

Зверніть увагу, що відстеження завантаження файлу є потоконебезпечним, так що якщо під час першого завантаження відбудеться нове, з тим же ключем, відстеження першого буде припинено.

Зверніть увагу, що rateбуде доступний лише тоді, коли всі поточні завантаження завершено.

Приклад #1 Приклад використання apc.rfc1867

print_r (apc_fetch ("upload_ $_POST [APC_UPLOAD_PROGRESS]"));
?>

Результатом виконання цього прикладу буде щось подібне:

Array ( => 1142543 => 1142543 => 1828068.8 => test => file => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix string

Префікс ключа для використання в записі кеша користувача, що створюється функціоналом відстеження прогресу завантаження rfc1867.

Apc.rfc1867_name string

Задає ім'я для прихованого поля форми, яке активуватиме процес завантаження APC і вказуватиме суфікс ключа користувача кеша.

Apc.rfc1867_freq string

Частота, з якою буде оновлюватися запис користувача в кеші під час завантаження файлу. Може задаватися як у відсотках, і зазначенням розміру в байтах. За бажання можна використовувати суфікси "k", "m"і "g"(реєстронезалежно) для кілобайт, мегабайт та гігабайт, відповідно. Якщо вказати нуль, оновлення будуть відбуватися так швидко, як тільки можливо, але це може сповільнити завантаження.

Apc.rfc1867_ttl integer

TTL для записів rfc1867.

Apc.localcache boolean

Дозволяє неблокуючий локальний тіньовий кеш процесів, що зменшує кількість блокувань під час запису кешу.

Apc.localcache.size integer

Розмір локального тіньового кешу процесів повинен бути досить великим приблизно в половину apc.num_files_hint .

Apc.coredump_unmap boolean

Дозволяє APC перехоплювати сигнали, такі як SIGSEGV, який записує coredump, коли подано. Коли ці сигнали будуть отримані, APC спробує звільнити всю пам'ять, що розділяється, щоб не включати її в coredump. Ця настройка може збільшити стабільність системи, коли критичний сигнал було отримано, а APC налаштований використання великого обсягу пам'яті.

Увага

Ця можливість потенційно небезпечна. Звільнення сегментів пам'яті при отриманні критичного сигналу може призвести до непередбачуваної поведінки.

Зауваження:

Хоча деякі ядра надають можливість ігнорувати деякі сегменти пам'яті, що розділяється при записі core-файлу, ці реалізації можуть також ігнорувати важливі сегменти пам'яті, такі як Apache scoreboard.

apc.stat_ctime integer

Перевірка по ctime для уникнення проблем, породжених такими програмами як svn або rsync, переконавшись, що inode не змінився з останнього збору статистики. Зазвичай APC перевіряє лише mtime.

Apc.canonicalize bool

Якщо заборонено, то відносні шляхи наводяться до канонічних у режимі no-stat. Якщо дозволено, то файли, підключені через потокову обгортку не кешуватимуться, оскільки realpath()не підтримує потокові обгортки.

Apc.preload_path string

Опціонально. Вказує шлях, який використовується APC для завантаження кешованих даних під час запуску.

Apc.use_request_time bool

Використовувати час старту запиту SAPI для TTL.

Apc.file_md5 bool

Записувати хеші md5 файлів.

Apc.lazy_functions integer

Дозволяє ліниве підвантаження функцій.

Apc.lazy_classes integer

Дозволяє ліниве підвантаження класів.

10 років тому

apc.rfc1867 example code above is a little fast and loose for thos running in environments where APC RFC1867 може або не може бути наявним. This is a little more expressive:

// if we have PHP and APC
$havePHP = (1 === version_compare (PHP_VERSION , "5.2.0" ) ? true : false );
$haveAPC = (extension_loaded ("apc") && 1 === version_compare (phpversion ("apc"), "3.0.13") ? true : false );
if ($havePHP && $haveAPC ) (
// if APC and upload tracking is enabled
if (ini_get ("apc.enabled" ) && ini_get ("apc.rfc1867" )) (
// get the stats
$key = ini_get ("apc.rfc1867_prefix") . $_REQUEST ["apcid"];
$stats = apc_fetch ($key);
}
}

Конфігураційний файл розташовується найчастіше /etc/php.d/apcu.ini. Приклад файлу конфігурації для сервера з 8 ГБ оперативної пам'яті:

extension=apcu.so
apc.enable_cli = 1
apc.shm_segments = 1
apc.shm_size = 512M
apc.stat = 1
apc.ttl = 0
apc.user_ttl = 0
apc.max_file_size = 1M
apc.num_files_hint = 16384
apc.user_entries_hint = 16384
apc.file_update_protection=10

При використанні PHP 5.3 вказується extension=apc.so

FastCGI зауваження : The popular APC opcode cache for PHP cannot share a cache between PHP FastCGI processes unless PHP manages the child processes. Thus, effectiveness of cache is limited with mod_fcgid; concurrent PHP requests will use different opcode caches.

Опис основних атрибутів конфігурації APCu

apc.shm_segments Кількість сегментів пам'яті, що виділяються. Багато BSD системи мають низькі ліміти на виділений сегмент пам'яті. За замовчуванням 1.
apc.shm_size Розмір сегмента пам'яті, що спільно використовується, встановлюється в мегабайтах. Мінімально ми рекомендуємо встановлювати 128M, для сервера з 8Гб – 512M, з 16Гб – 1024M. У разі використання кількох сегментів розмір пам'яті необхідно ділити на кількість сегментів.
apc.stat За допомогою цієї опції можна вимикати та вмикати APC. Значення 1 - увімкнено, 0 - вимкнено.
apc.ttl Час кешування php-файлів. При установці 0 дозволяє очищати кеш цілком у разі заповнення виділеної пам'яті.
apc.user_ttl Час кешування даних користувача. При установці 0 дозволяє очищати кеш цілком у разі заповнення виділеної пам'яті.
apc.max_file_size Максимальний розмір файлу, що кешується.
apc.num_files_hint Використовується APC для оптимізації організації зберігання даних файлів у пам'яті. Рекомендуємо встановити значення більше 10000.
apc.user_entries_hint Використовується APC для оптимізації організації зберігання власних змінних у пам'яті. Рекомендуємо встановити значення більше 10000.
apc.file_update_protection Не кешувати файли, створені менш ніж вказані секунди тому. Дозволяє уникнути кешування частково записаного файлу.

Помилка Unable to allocate memory for pool

Помилка include(): Unable to allocate memory for pool виникає при сильній фрагментації пам'яті, мінімізувати фрагментацію пам'яті допомагає встановлення в нуль значення опції apc.ttl та apc.user_ttl .

лицар зі стволом 9 липня 2011 о 23:03

Початкове налаштування ДБЖ APC в Linux з точки зору чайника

  • Чулан *

Купивши джерело безперебійного живлення від APC (а саме – APC Back-UPS ES 550VA), я з подивом виявив, що «з коробки» він не може похвалитися тісною дружбою з Linux. Звичайно, XFCE Power Manager, що входить до складу XFCE 4.4, підхопив і розпізнав UPS, але все, на що він виявився спроможним - відображення у треї рівня заряду. Будь-які налаштування були відсутні повністю, не можна було навіть задати вимкнення ПК при досягненні певного рівня заряду.

Звернувшись за консультацією в Гугл, я дізнався про існування чудового демона apcupsd, чия роль полягає в - ніколи не повірите - управлінні ДБЖ від APC. Але, як виявилося, практично всі посібники з його початкового настроювання були відверто застарілими - включаючи, як не дивно, офіційний мануал. Спіткнутися доводилося вже на початку про «cat /proc/bus/usb/devices». Поговоривши з гуглом серйозним і довірчим тоном, я домігся від нього посилання на мануал, що діє, художнім перекладом якого з доповненнями з інших джерел ця стаття і є.

Отже, почнемо з установки самого apcupsd:

Sudo apt-get install apcupsd

Зрозуміло, вищесказане справедливо для Debian та його похідних, включаючи Ubuntu. Якщо у вашому дистрибутиві не використовується apt-get – гадаю, ви все одно знаєте, як поставити необхідний пакет. Сподіваюся на це.

Тепер ми редагуємо конфігураційний файл apcupsd:

Sudo gedit /etc/apcupsd/apcupsd.conf

У цьому випадку нас цікавлять лише три параметри:

  • UPSCABLE – вказуємо тип кабелю, яким наш UPS підключений до ПК. У коментарях зазначені можливі типи – simple, smart, ether, usb. Нинішні домашні моделі підключаються через USB - отже, достатньо дописати usb
  • UPSTYPE – тип підключеного UPS. У коментарях перераховані можливі типи та відповідні їм значення параметра DEVICE, а наш вибір - тип usb
  • DEVICE - закоментуємо цей рядок, поставивши перед нею знак # - для USB-пристроїв вона не потрібна
Зберігаємо змінений конфігураційний файл, відкриваємо наступний:

Sudo gedit /etc/default/apcupsd

Замінюємо ISCONFIGURED=noна ISCONFIGURED=yes, Зберігаємо, закриваємо. Відтепер apcupsd знатиме, що ми не забули його налаштувати.

Тепер достатньо запустити apcupsd:

Sudo /etc/init.d/apcupsd start

Якщо він уже був запущений – замість start нам, зрозуміло, треба буде писати restart.

Все, ваш ПК тепер пов'язаний з новим ДБЖ міцними узами дружби.

А тепер трохи про те, що ми можемо налаштувати в широкому /etc/apcupsd/apcupsd.conf:

  • ONBATTERYDELAY - час (в секундах), що визначає затримку між виявленням збою електроживлення та відсиланням події набатерії. Типово - 6
  • BATTERYLEVEL - рівень заряду батареї (у відсотках), у якому ініціюється вимкнення комп'ютера. Типово - 5
  • MINUTES - розрахунковий час залишкової роботи (у хвилинах), при досягненні якого ініціюється вимкнення комп'ютера. Типово - 3
  • TIMEOUT – параметр актуальний для старих ДБЖ, нездатних визначати свій рівень заряду. Задає час (в секундах) між збоєм електроживлення та вимкненням комп'ютера. Для сучасного ДБЖ параметр варто залишити на 0, але виставлення іншого значення може бути зручним для тестування роботи ДБЖ. Наприклад, якщо виставити 30 і висмикнути шнур із розетки, вже через півхвилини apcupsd продемонструє своє вміння вимикати комп'ютер
Виконання однієї з умов (BATTERYLEVEL, MINUTES або TIMEOUT) достатньо для вимкнення комп'ютера. Більш тонка настройка не описується, бо її необхідність домашнього користувача дуже сумнівна.

Довго казка дається взнаки, та недовго справа робиться: вважаю, описані дії користувач зробить за пару хвилин. Сподіваюся, дана стаття допоможе комусь подружити його ДБЖ APC з Linux, заощадивши час і не зав'язавши в застарілих мануалах.

apc, apcupsd, ups, дбп, linux

Квітень 9, 2015 12:12 пп 1 889 views | коментарів немає

Що таке APC?

APC – це система кешування PHP-кодів, яка дозволяє прискорити сайт. PHP – це динамічна серверна мова сценаріїв, яку потрібно аналізувати, компілювати та запускати на сервері при кожному запиті сторінки. Однак у багатьох випадках запити повторюються, тому хмарному серверу доводиться повторно обробляти кожен із них.

У цьому випадку на допомогу приходить APC або Alternative PHP Cache. Цей інструмент зберігає PHP-код в операційній пам'яті і при необхідності витягує його. По суті, він обходить обробку та компіляцію коду, що дозволяє звести до мінімуму навантаження на сервер.

Цей посібник продемонструє встановлення та налаштування APC.

Примітка: Для виконання посібника потрібно попередньо з привілеями root, а також .

Встановлення APC

Перш ніж встановлювати кешер APC, потрібно встановити деякі його залежності. Для цього використовуйте наступну команду:

sudo apt-get install php-pear php5-dev make libpcre3-dev

Потім можна встановити APC за допомогою команди pecl:

sudo pecl install apc

На завершення установки потрібно відредагувати файл php.ini:

додавши до кінця наступний рядок:

extension = apc.so

Збережіть і закрийте файл, а потім перезапустіть Apache:

sudo service apache2 restart

Щоб дізнатися, чи включено APC, відкрийте info-сторінку PHP. Якщо такої немає, створіть порожній php-файл у папці /var/www:

nano /var/www/info.php

І внесіть до нього такий код:

phpinfo();
?>

Збережіть та закрийте файл, а потім відкрийте браузер. На екрані з'явиться вся інформація про поточну установку PHP. Якщо APC увімкнено, сторінка повідомить про це. Загалом залишати цей файл не рекомендується, оскільки він може надати доступ до конфіденційних даних стороннім користувачам. Видаліть його після перевірки.

Налаштування APC

Після встановлення кешер APC запускається за замовчуванням. У його конфігураціях є два дуже важливі параметри. Отже, відкрийте файл php.ini:

sudo nano /etc/php5/apache2/php.ini

Під раніше доданим рядком, який включає APC, внесіть наступний рядок:

apc.shm_size = 64

Це виділить 64MB оперативної пам'яті для кешування APC. Залежно від вимог або обмежень віртуального виділеного сервера, це значення може змінюватися.

Нижче потрібно додати ще один рядок:

Налаштування apc.stat перевіряє скрипт при кожному запиті, щоб перевірити його зміни. Якщо його було змінено, вона повторно скомпілює його і кешує нову версію. Це стандартна поведінка APC. Значення 0 цього рядка скаже APC не перевіряти скрипт на наявність змін. Це покращує продуктивність, але є і зворотний бік: якщо в скрипті PHP з'явилися зміни, вони не будуть внесені до перезапуску сервера хмар. Тому встановлювати значення 0 рекомендується лише на сайтах, що знаходяться на стадії виробництва.

Тепер, коли кешер APC встановлено та запущено, можна перевірити його стан та продуктивність. Знайдіть файл apc.php у папці /usr/share/php/ і перемістіть його до папки, доступної для браузера – наприклад, у www.



Подібні публікації