Инсталиране на apc. Първоначална настройка на APC UPS в 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:

Рестартиране на услугата apache2

Преглед:

http:// /info.php

Създайте файл info.php със следното съдържание в корена на директорията на уеб сървъра /var/www/html/

И го отворете в браузъра си. Там ще намерите информация за PHP, включително дали кешът е активиран. Не оставяйте този файл на производствения сървър. Отстранете го след проверка.
Трябва да видите:

Zend OPcache Opcode Кеширане и стартиране на оптимизация Активирано и т.н.

Как да инсталирате алтернативен PHP кеш (APC) на Ubuntu 12.04

Инсталиране от PECL

За да инсталирате от хранилището на Ubuntu, вижте по-долу.

Относно APC.
APC е страхотна система за кеширане на оперативен код за PHP, която може да помогне за ускоряване на вашия сайт. PHP е динамичен сървърен скриптов език, който трябва да бъде анализиран, компилиран и изпълнен от сървъра с всяка заявка за страница. В много случаи обаче заявките дават точно същите резултати, което означава, че облачният сървър трябва ненужно да повтаря всички тези стъпки за всяка от тях.
Това е мястото, където APC влиза в действие. Това, което прави, е да записва кода на операцията на PHP (операционния код) в RAM паметта и ако бъде поискано отново, го изпълнява от там. По същество той заобикаля стъпките за анализ и компилиране и минимизира някои ненужни натоварвания на облачния сървър.

Предполага се, че имате собствен VPS с root привилегии и инсталиран LAMP.

Първо инсталирайте пакетите:

Sudo apt-get инсталирате php-pear php5-dev make libpcre3-dev

Сега можете да инсталирате APC с помощта на командата pecl:

Sudo pecl инсталирайте apc

Ще бъдете помолени да отговорите на няколко въпроса, но докато не разберете точния отговор, използвайте стандартния, като натиснете Enter.

Следващата и последна стъпка е да редактирате файла php.ini

добавяне на реда в края:

Разширение=apc.so

Запазете файла и рестартирайте Apache:

Рестартирайте услугата Sudo apache2

За да проверите дали APC е активиран, проверете страницата с информация за PHP. Ако нямате такъв, създайте го в директорията /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 проверява скрипта при всяка заявка, за да види дали се е променил или не. Ако скриптът е променен, 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 --заместващи символи apcu*/apc.php

Сега отворете този файл от браузър:

http:// /apc.php

Трябва да видите статистика на APC. Моля, обърнете внимание, че APC има достатъчно памет и няма голяма фрагментация.
Добър знак би бил висок процент на кеша, около 95% след няколко заявки.

Инсталиране на APC кеш от хранилището на Ubuntu

$ sudo apt-get инсталирайте 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

грешка:
Няма налична информация за кеша. APC изглежда не работи.

се появява, ако в кода на apc.php не е зададена парола.
Редактирайте файла apc.php:

# vi /var/www/apc.php

и задайте потребителско име и парола:

Defaults("ADMIN_USERNAME","apc"); // Admin Username defaults("ADMIN_PASSWORD","pass"); // Admin Password - ПРОМЕНЕТЕ ТОВА, ЗА ДА АКТИВИРАТЕ!!!

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. Ако GD е активиран в PHP, тогава този скрипт също ще показва полезни графики. Разбира се, първото нещо, което ще бъде интересно, е дали APC кешира нещо. Ако APC работи, тогава стойността Пълен брой на кеша(вляво) ще покаже колко пъти кешът е бил напълно пълен и е бил принуден да премахне принудително записи, които не са били последно достъпвани apc.ttlсекунди Колкото по-ниско е това число, толкова по-добре е конфигуриран кешът. Ако този брой непрекъснато нараства, тогава APC трябва постоянно да почиства стари записи и целият смисъл на кеширането се губи. Най-добрият начин да намалите този брой е да добавите памет към APC. Ако това не може да стане, тогава трябва да преконфигурирате apc.филтриза ограничаване на набора от кеширани скриптове.

Ако APC е изграден с поддръжка на mmap (картиране на паметта), той ще използва само един сегмент от паметта, но ако, напротив, APC е изграден с поддръжка на SHM (SysV споделена памет), той ще използва няколко сегмента. 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.оптимизация "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.филтри НУЛА PHP_INI_SYSTEM
apc.mmap_file_mask НУЛА PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM Предлага се с APC 3.0.0. Преди APC 3.1.4, стойност по подразбиране "0" (хора с увреждания).
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.сериализатор "по подразбиране" 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 "качване_" PHP_INI_SYSTEM
apc.rfc1867_име „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 НУЛА 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, можете просто да коментирате реда разширение V php.ini.

Apc.shm_segments цяло число

Броят споделени сегменти от паметта, разпределени за кеша. Ако APC е използвал цялата налична споделена памет и apc.shm_sizeколкото позволява системата, увеличаването на този параметър може да помогне.

Apc.shm_size низ

Размерът на сегмент от споделена памет, посочен в кратка нотация (вижте този ЧЗВ). По подразбиране някои системи (включително повечето BSD варианти) ограничават тази стойност до изключително малка стойност.

Apc.shm_strings_buffer низ

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

Apc.оптимизация цяло число

Ниво на оптимизация. Нула деактивира оптимизацията. Колкото по-висока е тази стойност, толкова по-агресивна оптимизация ще се използва. Не очаквайте голямо увеличение на скоростта. Това е експериментална функционалност.

Apc.num_files_hint цяло число

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

Apc.user_entries_hint цяло число apc.file_update_protection цяло число

Когато даден файл се променя в движение, това трябва да се случи по атомен начин. Тоест първо трябва да се запише във временен файл и след това да се премести ( мв) до неговата целева позиция. Много текстови редактори cp, катрана други не правят това. Това може да доведе до заявяване на файла (и кеширане), докато се записва. Настройки apc.file_update_protectionзадава забавянето на кеширането за напълно нови файлове. По подразбиране е 2 секунди. Това означава, че ако клеймото за време на модификация на файла ( mtime) казва, че ако са изминали по-малко от 2 секунди от промяната на файла, той няма да бъде кеширан. Нещастникът, който се опита да получи достъп до наполовина запазения файл, ще изпита странно поведение, но поне няма да продължи дълго. Ако всички файлове на уеб сървъра се актуализират атомарно, като се използват методи като rsync(който се актуализира правилно), тогава това поведение може да бъде деактивирано чрез задаване на този параметър на нула. Ако системата е I/O претоварена, някои актуализации може да отнемат повече от две секунди и тази настройка трябва да се увеличи съответно.

Apc.enable_cli цяло число

Още за тестване и отстраняване на грешки. Тази настройка позволява APC за CLI версията на PHP. При нормална работа стартирането на APC, което ще създава, запълва и унищожава кеша всеки път, когато стартирате скрипт в конзолата, няма да е най-добрата идея. Но за целите на тестване и отстраняване на грешки можете лесно да активирате APC за CLI.

Apc.max_file_size цяло число

Не кешира файлове, по-големи от размера, определен от тази настройка. По подразбиране е 1M.

Apc.stat цяло число

Бъдете внимателни, когато променяте тази настройка. Това е активирано по подразбиране, което кара APC да проверява скриптовите файлове при всяка заявка, за да види дали са били модифицирани. Ако са били променени, те ще бъдат прекомпилирани и кеширани отново. Ако деактивирате тази настройка, APC няма да извърши такава проверка и ако файлът вече е бил кеширан и след това променен, тогава новата версия няма да влезе в кеша. Рекеширането ще изисква рестартиране на уеб сървъра. Моля, обърнете внимание, че уеб сървърите, конфигурирани да използват FastCGI, може да не изчистят кеша при рестартиране. В индустриални среди, където промените във файловете се случват много рядко, деактивирането на тази опция може значително да подобри производителността.

За файлове, заредени чрез включен/задължителен, тази опция работи чудесно, но имайте предвид, че ако включите файл в относителна пътека (на Unix, всеки път, който не започва с /), APC ще провери за уникалност. Ако се използват абсолютни пътища, APC ще пропусне тази проверка и ще използва абсолютния път като уникален файлов идентификатор.

Apc.write_lock булево

При силно натоварени сървъри, когато сървърът се стартира или когато много файлове се модифицират едновременно, APC може да се опита да компилира и кешира един и същи файл няколко пъти едновременно. Заключването при запис гарантира, че само един процес ще се опита да компилира и кешира некеширан файл. Други процеси, които трябва да използват този файл, ще използват некешираната му версия, вместо да чакат да се появи в кеша.

Apc.report_autofilter булево

Регистрира всички скриптове, които са били изключени от кеширане поради проблеми с ранно или късно свързване.

Apc.сериализатор низ

Казва на APC да използва сериализатор на трета страна.

Apc.include_once_override булево

Оптимизира разговорите включване_веднъжИ изисквам_веднъжза предотвратяване на скъпи системни повиквания.

внимание

Тази функционалност е ЕКСПЕРИМЕНТАЛЕН. Поведението на тази директива, нейното име и нейната документация може да се променят без предупреждение в бъдещи версии на APC. Използвайте го на свой собствен риск.

Apc.rfc1867 булево

Прихващачът на прогреса на изтегляне на файл RFC1867 е наличен само в APC, ако е изграден с PHP 5.2.0 или по-нова версия. Ако е позволено, тогава всеки файл, качен на сървъра, съдържащ във формуляра, преди полето за файл, поле с име APC_UPLOAD_PROGRESS, ще принуди APC автоматично да създаде персонализиран запис в кеша като upload_ ключ, Където ключе стойността на полето APC_UPLOAD_PROGRESS.

Не забравяйте, че скритото поле APC_UPLOAD_PROGRESSтрябва да отидете на полето с файла, в противен случай работата ще бъде неправилна.

Моля, обърнете внимание, че проследяването на изтегляне на файлове не е безопасно за нишки, така че ако по време на първото изтегляне има нов със същия ключ, проследяването на първото ще бъде спряно.

забележи, че процентще бъде достъпно само когато всички текущи изтегляния са завършени.

Пример #1 Пример за използване на apc.rfc1867

print_r (apc_fetch ( "качване_ $_POST [ APC_UPLOAD_PROGRESS ] " ));
?>

Резултатът от изпълнението на този пример ще бъде нещо подобно:

Масив ( => 1142543 => 1142543 => 1828068.8 => тест => файл => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix низ

Ключов префикс за използване в записа в потребителския кеш, създаден от функцията за проследяване на напредъка на изтегляне на rfc1867.

Apc.rfc1867_име низ

Указва име за скрито поле на формуляр, което ще активира процеса на изтегляне на APC и ще посочи суфикса на потребителския кеш ключ.

Apc.rfc1867_freq низ

Честотата, с която записът в кеша на потребителя ще се актуализира по време на изтегляне на файл. Може да се посочи като процент или чрез посочване на размера в байтове. Можете да използвате суфикси, ако желаете "к", "м"И "g"(без значение за малки и големи букви) съответно за килобайти, мегабайти и гигабайти. Ако посочите нула, актуализациите ще се извършват възможно най-бързо, но това може да забави времето за зареждане.

Apc.rfc1867_ttl цяло число

TTL за rfc1867 записи.

Apc.localcache булево

Активира неблокиращ кеш в сянка на локален процес, което намалява количеството на блокиране по време на записи в кеша.

Apc.localcache.size цяло число

Размерът на сенчестия кеш на локалния процес трябва да е доста голям, около половината от apc.num_files_hint.

Apc.coredump_unmap булево

Позволява на APC да прихваща сигнали като SIGSEGV, който записва coredump, когато бъде издаден. Когато се получат тези сигнали, APC ще се опита да освободи цялата споделена памет, за да не я включи в coredump. Тази настройка може да увеличи стабилността на системата, когато е получен критичен сигнал и APC е конфигуриран да използва голямо количество памет.

внимание

Тази функция е потенциално опасна. Освобождаването на сегменти от споделена памет при получаване на критичен сигнал може да доведе до непредсказуемо поведение.

Коментирайте:

Въпреки че някои ядра предоставят възможност за игнориране на някои споделени сегменти от паметта при писане на основен файл, тези реализации също могат да игнорират важни сегменти от паметта, като таблото с резултати на Apache.

apc.stat_ctime цяло число

Проверете чрез ctime, за да избегнете проблеми, причинени от програми като svn или rsync, като се уверите, че inode не се е променил от последното събиране на статистика. Обикновено APC проверява само mtime.

Apc.canonicalize bool

Ако е деактивирано, относителните пътища се преобразуват в канонични в режим без статистика. Ако е разрешено, тогава файловете, свързани чрез обвивката на потока, няма да бъдат кеширани, тъй като реален път ()не поддържа обвивки на потока.

Apc.preload_path низ

Не е задължително. Указва пътя, който APC използва за зареждане на кеширани данни по време на стартиране.

Apc.use_request_time bool

Използвайте начален час на SAPI заявка за TTL.

Apc.file_md5 bool

Напишете md5 хешове на файлове.

Apc.lazy_functions цяло число

Позволява бавно зареждане на функции.

Apc.lazy_classes цяло число

Позволява бавно зареждане на класове.

преди 10 години

Примерният код apc.rfc1867 по-горе е малко бърз и свободен за тези, работещи в среди, където APC RFC1867 може или не може да бъде наличен. Това е малко по-изразително:

// ако имаме PHP и 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 ) (
// ако APC и проследяването на качване е активирано
if (ini_get ("apc.enabled") && ini_get ("apc.rfc1867" )) (
// вземете статистиката
$key = ini_get ("apc.rfc1867_prefix" ) . $_REQUEST["apcid"];
$stats = apc_fetch($key);
}
}

Конфигурационният файл най-често се намира в /etc/php.d/apcu.ini. Примерен конфигурационен файл за сървър с 8 GB RAM:

разширение=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: Популярният APC кеш за код за PHP не може да споделя кеш между PHP FastCGI процеси, освен ако PHP не управлява дъщерните процеси. По този начин ефективността на кеша е ограничена с mod_fcgid; едновременните PHP заявки ще използват различни кешове на операционния код.

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

apc.shm_segments Брой разпределени сегменти на паметта. Много BSD системи имат ниски ограничения на сегментите на паметта. По подразбиране е 1.
apc.shm_size Размерът на сегмента на споделената памет е зададен в мегабайти. Препоръчваме да зададете минимума на 128M, за сървър с 8GB - 512M, за сървър с 16GB - 1024M. Ако се използват множество сегменти, размерът на паметта трябва да бъде разделен на броя на сегментите.
apc.stat Тази опция ви позволява да деактивирате или активирате APC. Стойност 1 - разрешено, 0 - забранено.
apc.ttl Време за кеширане на PHP файл. Когато е зададено на 0, позволява изчистване на целия кеш, когато разпределената памет е пълна.
apc.user_ttl Време за кеширане на потребителски данни. Когато е зададено на 0, позволява изчистване на целия кеш, когато разпределената памет е пълна.
apc.max_file_size Максималният размер на кеширания файл.
apc.num_files_hint APC се използва за оптимизиране на организацията на съхраняване на файлови данни в паметта. Препоръчваме да зададете стойност, по-голяма от 10 000.
apc.user_entries_hint APC се използва за оптимизиране на организацията на съхраняване на потребителски променливи в паметта. Препоръчваме да зададете стойност, по-голяма от 10 000.
apc.file_update_protection Не кеширайте файлове, създадени преди по-малко от посочените секунди. Позволява ви да избегнете кеширането на частично записан файл.

Грешка Не може да се разпредели памет за пул

Грешката include(): Unable to allocate memory for pool възниква, когато фрагментацията на паметта е сериозна;

рицар с пистолет 9 юли 2011 г. в 23:03 ч

Първоначална настройка на APC UPS в Linux от гледна точка на чайник

  • Дървена стая *

След като закупих непрекъсваемо захранване от APC (а именно APC Back-UPS ES 550VA), бях изненадан да открия, че извън кутията не може да се похвали с близко приятелство с Linux. Разбира се, XFCE Power Manager, включен в XFCE 4.4, вдигна и разпозна UPS, но всичко, на което беше способен, беше да покаже нивото на зареждане в тавата. Нямаше никакви настройки, дори не беше възможно да настроите компютъра да се изключва при достигане на определено ниво на зареждане.

След като се консултирах с Google, научих за съществуването на прекрасен демон apcupsd, чиято роля е - никога няма да повярвате - управление на UPS от APC. Но, както се оказа, почти всички ръководства за първоначалната му настройка бяха откровено остарели - включително, колкото и да е странно, официалното ръководство. Трябваше да се спъна в самото начало за „cat /proc/bus/usb/devices“. След разговор с Google в сериозен и поверителен тон, получих от него линк към текущото ръководство, на което тази статия е литературен превод с добавки от други източници.

И така, нека започнем с инсталирането на самия apcupsd:

Sudo apt-get install apcupsd

Разбира се, горното е вярно за Debian и неговите производни, включително Ubuntu. Ако вашата дистрибуция не използва apt-get, мисля, че все още знаете как да инсталирате необходимия пакет. Надявам се.

Сега ще редактираме конфигурационния файл apcupsd:

Sudo gedit /etc/apcupsd/apcupsd.conf

В този случай се интересуваме само от три параметъра:

  • UPSCABLE - посочва вида на кабела, с който нашият UPS е свързан към компютъра. В коментарите са посочени възможните типове - прост, интелигентен, етер, usb. Текущите домашни модели са свързани чрез USB - следователно е достатъчно да добавите USB
  • UPSTYPE - вид свързан UPS. Коментарите изброяват възможните типове и съответните стойности на параметъра DEVICE, но нашият избор е типът USB
  • УСТРОЙСТВО - коментирайте този ред, като поставите знак пред него # - не е необходимо за USB устройства
Запазете променения конфигурационен файл и отворете следния:

Sudo gedit /etc/default/apcupsd

Заменяме ISCONFIGURED=неНа ISCONFIGURED=да, запазване, затваряне. Отсега нататък apcupsd ще знае, че не сме забравили да го конфигурираме.

Сега просто стартирайте apcupsd:

Sudo /etc/init.d/apcupsd стартира

Ако вече е стартиран, вместо start ние, разбира се, ще трябва да напишем restart.

Това е всичко, вашият компютър вече е свързан с чисто новия UPS чрез силни връзки на приятелство.

А сега малко за това какво можем да конфигурираме в обширния /etc/apcupsd/apcupsd.conf:

  • ONBATTERYDELAY - Времето (в секунди), което определя закъснението между откриването на прекъсване на захранването и изпращането на събитието onbattery. По подразбиране - 6
  • BATTERYLEVEL - ниво на зареждане на батерията (в проценти), при което компютърът се изключва. По подразбиране - 5
  • МИНУТИ - очаквано остатъчно време на работа (в минути), при достигане на което компютърът се изключва. По подразбиране - 3
  • TIMEOUT - този параметър е подходящ за по-стари UPS устройства, които не могат да определят нивото на зареждане. Задава времето (в секунди) между прекъсване на захранването и изключване на компютъра. За модерен UPS параметърът трябва да бъде оставен на 0, но задаването на различна стойност може да е удобно за тестване на работата на UPS. Например, ако го зададете на 30 и извадите кабела от контакта, в рамките на половин минута apcupsd ще демонстрира способността си да изключи компютъра
Изпълнението на едно от условията (BATTERYLEVEL, MINUTES или TIMEOUT) е достатъчно, за да изключите компютъра. Повече фина настройка не е описана, тъй като необходимостта от нея за домашен потребител е много съмнителна.

Историята отнема много време, за да се разкаже, но не отнема много време, за да се свърши работата: вярвам, че потребителят ще извърши описаните действия след няколко минути. Надявам се тази статия да помогне на някой да свърже своя APC UPS с Linux, спестявайки време и не затъвайки в остарели ръководства.

Етикети: apc, apcupsd, ups, UPS, linux

9 април 2015 г. 12:12 ч 1889 гледания | без коментари

Какво е APC?

APC е система за кеширане на PHP код, която ви позволява да ускорите вашия уебсайт. PHP е динамичен скриптов език от страна на сървъра, който трябва да бъде анализиран, компилиран и изпълнен на сървъра всеки път, когато бъде поискана страница. В много случаи обаче заявките се повтарят и следователно облачният сървър трябва да обработва повторно всяка от тях.

В този случай APC или Alternative PHP Cache идва на помощ. Този инструмент съхранява PHP код в оперативната памет и го извлича, когато е необходимо. По същество той заобикаля обработката и компилирането на код, като минимизира натоварването на сървъра.

Това ръководство ще демонстрира инсталирането и конфигурацията на APC.

Забележка: За да завършите ръководството, първо трябва да имате root права, както и .

Инсталиране на APC

Преди да инсталирате APC кеша, трябва да инсталирате някои от неговите зависимости. За да направите това, използвайте следната команда:

sudo apt-get инсталирате php-pear php5-dev make libpcre3-dev

След това можете да инсталирате APC с помощта на командата pecl:

sudo pecl инсталирайте apc

За да завършите инсталацията, трябва да редактирате файла php.ini:

добавяне на следния ред в края:

разширение=apc.so

Запазете и затворете файла и след това рестартирайте Apache:

sudo service apache2 рестартиране

За да разберете дали APC е активиран, отворете страницата с информация за 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 RAM за APC кеширане. В зависимост от изискванията или ограниченията на виртуалния частен сървър тази стойност може да варира.

По-долу трябва да добавите още един ред:

Настройката apc.stat проверява скрипта при всяка заявка, за да провери за промени. Ако е бил променен, ще го прекомпилира и ще кешира новата версия. Това е стандартно поведение на APC. Стойност 0 на този ред ще каже на APC да не проверява скрипта за промени. Това подобрява производителността, но има недостатък: ако има промени в PHP скрипта, те няма да бъдат направени, докато облачният сървър не бъде рестартиран. Следователно задаване на стойност на 0 се препоръчва само на сайтове, които са в производство.

След като APC кешът е инсталиран и работи, можете да проверите състоянието и производителността му. Намерете файла apc.php в папката /usr/share/php/ и го преместете в папка, достъпна от браузъра - например www.



Свързани публикации