Инсталиране на 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 със следното съдържание в корена на директорията на уеб сървъра /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. Моля, обърнете внимание, че 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 изглежда не работи.
се появява, ако в кода на 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.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. |
Кратко обяснение на директивите за конфигурация.
Ако инсталирате 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 е конфигуриран да използва голямо количество памет.
внимание
Тази функция е потенциално опасна. Освобождаването на сегменти от споделена памет при получаване на критичен сигнал може да доведе до непредсказуемо поведение.
apc.stat_ctime цяло числоКоментирайте:
Въпреки че някои ядра предоставят възможност за игнориране на някои споделени сегменти от паметта при писане на основен файл, тези реализации също могат да игнорират важни сегменти от паметта, като таблото с резултати на Apache.
Проверете чрез 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 ще демонстрира способността си да изключи компютъра
Историята отнема много време, за да се разкаже, но не отнема много време, за да се свърши работата: вярвам, че потребителят ще извърши описаните действия след няколко минути. Надявам се тази статия да помогне на някой да свърже своя 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.