apc quraşdırılır. Çaydan nöqteyi-nəzərindən Linux-da APC UPS-in ilkin quraşdırılması

sudo apt-get install php-apc - işləmir

Ubuntu 14.04-də APC artıq lazım deyil. APC PHP 5.5-də dəstəklənmir, bunun əvəzinə öz daxili Opcache keşi ilə gəlir. Keşin aktiv olduğundan əmin olun, /etc/php5/apache2/php.ini faylını redaktə edin.
Əvəz edin:

;opcache.enable=0

Opcache.enable=1

Sonra php modulunun aktiv olduğundan əmin olun:

# php5enmod opcache

Nəhayət, Apache-ni yenidən başladın:

Xidmət apache2 yenidən başladın

İmtahan:

http:// /info.php

/var/www/html/ veb server kataloqunun kökündə aşağıdakı məzmunu olan info.php faylı yaradın.

Və onu brauzerinizdə açın. Orada siz PHP haqqında məlumat tapa bilərsiniz, o cümlədən keşin aktiv olub-olmaması. Bu faylı istehsal serverində qoymayın. Yoxladıqdan sonra çıxarın.
Görmək lazımdır:

Zend OPcache Opcode Keşləmə və İşləyən Optimallaşdırma Aktivdir və s.

Ubuntu 12.04-də Alternativ PHP Keşini (APC) Necə Quraşdırmaq olar

PECL-dən quraşdırma

Ubuntu deposundan quraşdırmaq üçün aşağıya baxın.

APC haqqında.
APC, saytınızı sürətləndirməyə kömək edə bilən PHP üçün əla əməliyyat kodu keşləmə sistemidir. PHP hər səhifə sorğusu ilə server tərəfindən təhlil edilməli, tərtib edilməli və icra edilməli olan dinamik server tərəfi skript dilidir. Əksər hallarda sorğular eyni nəticələr verir, yəni bulud serveri onların hər biri üçün bütün bu addımları lazımsız olaraq təkrar etməlidir.
Burada APC işə düşür. Onun etdiyi şey PHP əməliyyat kodunu (əməliyyat kodu) RAM yaddaşında saxlamaq və yenidən tələb olunarsa, onu oradan icra etməkdir. Əslində, o, təhlil və tərtib addımlarını aşır və bulud serverində bəzi lazımsız yükləri minimuma endirir.

Kök imtiyazları və LAMP quraşdırılmış öz VPS-niz olduğu güman edilir.

Əvvəlcə paketləri quraşdırın:

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

İndi pecl əmrindən istifadə edərək APC quraşdıra bilərsiniz:

Sudo pecl quraşdırma apc

Sizdən bir neçə suala cavab verməyiniz istəniləcək, lakin dəqiq cavabı bilənə qədər Enter düyməsini basaraq standartdan istifadə edin.

Növbəti və son addım php.ini faylını redaktə etməkdir

sonuna sətir əlavə edin:

Extension=apc.so

Faylı saxla və Apache-ni yenidən başladın:

Sudo xidməti apache2 yenidən başladın

APC-nin aktiv olub olmadığını yoxlamaq üçün PHP məlumat səhifəsini yoxlayın. Əgər sizdə yoxdursa, /var/www qovluğunda birini yaradın:

Nano /var/www/info.php

və kodu yapışdırın:

Onu brauzerinizdə açın. Orada siz PHP haqqında məlumat tapa bilərsiniz, o cümlədən keşin aktiv olub-olmaması. Bu faylı istehsal serverində qoymayın. Yoxladıqdan sonra çıxarın.

APC-nin qurulması

Siz APC quraşdırmısınız və o, standart parametrlərlə işləyir. Bilməli olduğunuz ən azı iki parametr var. Artıq redaktə etdiyiniz php.ini-ni açın:

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

APC-ni aktivləşdirdiyiniz xəttin altına əlavə edin:

Apc.shm_size = 64

Bu, APC-yə keşləmə üçün 64 MB RAM istifadə etməyə imkan verəcək. Konfiqurasiyanızdan asılı olaraq bu dəyəri dəyişə bilərsiniz.
Əlavə ediləcək növbəti sətir:

Apc.stat = 0

apc.stat parametri hər sorğuda skriptin dəyişib-dəyişmədiyini yoxlayır. Skript dəyişibsə, APC onu yenidən tərtib edəcək və yeni versiyanı önbelleğe alacaq. Bu, quraşdırmadan sonra APC-nin standart davranışıdır. Parametr dəyərini 0-a təyin etməklə biz APC-yə skript dəyişikliklərini yoxlamamağı deyirik. Bu, performansı yaxşılaşdırır, lakin skript dəyişdirilibsə, dəyişikliklər server yenidən işə salınana qədər tətbiq edilməyəcək. Beləliklə, 0 dəyərinin yalnız daimi kod dəyişikliklərinin olmadığı bir istehsal serverində istifadə edilməsi tövsiyə olunur.

APC monitorinqi
APC önbelleğinin vəziyyətini və performansını izləmək üçün kiçik bir skript var.

Siz apc.php faylını /usr/share/php/ ünvanından veb serverin iş kataloquna köçürə bilərsiniz, məsələn /vwr/www:

Cp /usr/share/php/apc.php /var/www - pecl-dən quraşdırılmış üçün

Və ya yükləyin:

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

İndi bu fayla brauzerdən daxil olun:

http:// /apc.php

APC statistikasını görməlisiniz. Qeyd edək ki, APC kifayət qədər yaddaşa malikdir və çox parçalanma yoxdur.
Yaxşı bir əlamət, bir neçə sorğudan sonra təxminən 95% keş hitlərinin yüksək faizi olardı.

Ubuntu deposundan APC keşinin quraşdırılması

$ sudo apt-get install php-apc

Apache-ni yenidən başladın və info.php-ə baxın. APC (Enabled On) bölməsi görünməlidir.
Monitorinq üçün çatdırılma dəstinə daxil olan yardım proqramından istifadə edin:

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

apc.php faylını, məsələn, /var/www
Fayla brauzerdən daxil olun:

http:// /apc.php

Xəta:
Keş məlumatı yoxdur. APC işləmir.

apc.php kodunda heç bir parol göstərilmədikdə görünür.
apc.php faylını redaktə edin:

# vi /var/www/apc.php

və istifadəçi adı və parol təyin edin:

Defolt ("ADMIN_USERNAME","apc"); // Admin İstifadəçi adı defoltları("ADMIN_PASSWORD","keçid"); // Admin Şifrə - AKTİV EDİLMƏK ÜÇÜN BUNU DƏYİŞTİRİN!!!

Defolt ("USE_AUTHENTICATION",0);

/etc/php5/apache2/conf.d/apc.ini-də əlavə seçimlər

;apc.enabled=1 – uyğun deyil;apc.enable_cli=1 – uyğun deyil;apc.shm_size=64M # default 32M ;apc.stat = 0

Bu funksiyaların davranışı php.ini-dəki parametrlərdən asılıdır.

Defolt APC parametrləri əksər quraşdırmalar üçün uyğun olsa da, bəzi proqramlar daha dəqiq tənzimləmə tələb edə bilər.

APC-ni konfiqurasiya edərkən iki əsas məqama diqqət yetirmək lazımdır. Birincisi, APC-yə nə qədər yaddaş təqdim etməkdir, ikincisi, APC-nin hər sorğuda faylın dəyişdirilib-deyişdirilmədiyini yoxlayıb-yoxlayamayacağıdır. Bu parametrlər parametrlər tərəfindən idarə olunur apc.shm_sizeapc.stat, müvafiq olaraq. Zəhmət olmasa, bu parametrlərin təyin edilməsi ilə bağlı bölmələri çox diqqətlə oxuyun.

Server işə salındıqdan sonra skript apc.php, bu genişləndirmə ilə təchiz edilmiş, "docroot"a kopyalanmalı və ona olan hüquqlar onun brauzer vasitəsilə işə salınmasına imkan verməlidir. Bu skript APC-nin necə işləməsi haqqında ətraflı məlumat verir. PHP-də GD aktivləşdirilibsə, bu skript də faydalı qrafiklər göstərəcək. Əlbəttə ki, maraqlı olacaq ilk şey APC-nin hər hansı bir şeyi önbelleğe almasıdır. APC işləyirsə, dəyər Keşin tam sayı(solda) önbelleğin neçə dəfə tam dolduğunu və sonuncu daxil edilməmiş girişləri zorla silmək məcburiyyətində qaldığını göstərəcək apc.ttl saniyə Bu rəqəm nə qədər az olsa, keş daha yaxşı konfiqurasiya edilmiş olar. Bu rəqəm daim artırsa, APC daim köhnə girişləri təmizləməlidir və bütün önbelleğe alma nöqtəsi itir. Bu rəqəmi azaltmağın ən yaxşı yolu APC-yə yaddaş əlavə etməkdir. Bunu etmək mümkün deyilsə, yenidən konfiqurasiya etməlisiniz apc.filtrlər keşlənmiş skriptlər dəstini məhdudlaşdırmaq.

Əgər APC mmap (Memory Mapping) dəstəyi ilə qurulubsa, o, yalnız bir yaddaş seqmentindən istifadə edəcək, əksinə, APC SHM (SysV Shared Memory) dəstəyi ilə qurulubsa, bir neçə seqmentdən istifadə edəcək. Məhdud olan SHM-dən fərqli olaraq MMAP-ın maksimum həddi yoxdur /proc/sys/kernel/shmmax. Ümumiyyətlə MMAP-dan istifadə etmək tövsiyə olunur, çünki veb-server yenidən işə salındıqda yaddaşı daha sürətli ayırır, bu da serverin işə salınma sürətinə təsir göstərir.

APC Konfiqurasiya Parametrləri
ad Defolt Dəyişiklik yeri Dəyişikliklərin siyahısı
apc.enabled "1" PHP_INI_SYSTEM APC 2-də PHP_INI_SYSTEM. APC-də PHP_INI_ALL<= 3.0.12.
apc.shm_segments "1" PHP_INI_SYSTEM
apc.shm_size "32M" PHP_INI_SYSTEM
apc.shm_strings_bufer "4M" PHP_INI_SYSTEM APC 3.1.4 ilə mövcuddur.
apc.optimization "0" PHP_INI_ALL APC 2-də PHP_INI_SYSTEM. APC 3.0.13-də silindi.
apc.num_files_hint "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM APC 3.0.0 ilə mövcuddur.
apc.ttl "0" PHP_INI_SYSTEM APC 3.0.0 ilə mövcuddur.
apc.user_ttl "0" PHP_INI_SYSTEM APC 3.0.0 ilə mövcuddur.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_ALL APC-də PHP_INI_SYSTEM<= 3.0.12. Доступно с APC 3.0.0.
apc.filtrlər SIFIR PHP_INI_SYSTEM
apc.mmap_file_mask SIFIR PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM APC 3.0.0 ilə mövcuddur. APC 3.1.4-dən əvvəl, standart dəyər "0" (əlil).
apc.file_update_protection "2" PHP_INI_SYSTEM APC 3.0.6 ilə mövcuddur.
apc.enable_cli "0" PHP_INI_SYSTEM APC 3.0.7 ilə mövcuddur.
apc.max_file_size "1M" PHP_INI_SYSTEM APC 3.0.7 ilə mövcuddur.
apc.use_request_time "1" PHP_INI_ALL APC 3.1.3 ilə mövcuddur.
apc.stat "1" PHP_INI_SYSTEM APC 3.0.10 ilə mövcuddur.
apc.write_lock "1" PHP_INI_SYSTEM APC 3.0.11 ilə mövcuddur.
apc.report_autofilter "0" PHP_INI_SYSTEM APC 3.0.11 ilə mövcuddur.
apc.serializer "standart" PHP_INI_SYSTEM APC 3.1.0 ilə mövcuddur.
apc.include_once_override "0" PHP_INI_SYSTEM APC 3.0.12 ilə mövcuddur.
apc.rfc1867 "0" PHP_INI_SYSTEM APC 3.0.13 ilə mövcuddur.
apc.rfc1867_prefiks "yükləmək_" 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 ilə mövcuddur.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM APC 3.0.14 - 3.1.11-də mövcuddur.
apc.coredump_unmap "0" PHP_INI_SYSTEM APC 3.0.16 ilə mövcuddur.
apc.stat_ctime "0" PHP_INI_SYSTEM APC 3.0.13 ilə mövcuddur.
apc.preload_path SIFIR PHP_INI_SYSTEM APC 3.1.1 ilə mövcuddur.
apc.file_md5 "0" PHP_INI_SYSTEM APC 3.1.1 ilə mövcuddur.
apc.canonicalize "1" PHP_INI_SYSTEM APC 3.1.1 ilə mövcuddur.
apc.lazy_functions 0 PHP_INI_SYSTEM APC 3.1.3 ilə mövcuddur.
apc.lazy_classes 0 PHP_INI_SYSTEM APC 3.1.3 ilə mövcuddur.
PHP_INI_* sabitlərinin ətraflı təsviri üçün Konfiqurasiya Seçimlərinin Ayarlana biləcəyi bölməsinə baxın.

Konfiqurasiya direktivlərinin qısa izahı.

Quraşdırsanız apc.enabled 0-a təyin olunarsa, APC aktiv olmayacaq. Bu, APC PHP-də statik olaraq aktivləşdirildikdə və onun istifadəsini söndürmək üçün başqa seçimlər olmadıqda faydalıdır. Əgər APC DSO kimi qurulubsa, sadəcə olaraq xətti şərh edə bilərsiniz uzadılması V php.ini.

Apc.shm_segments tam

Keş üçün ayrılmış paylaşılan yaddaş seqmentlərinin sayı. Əgər APC bütün mövcud paylaşılan yaddaşdan istifadə edibsə və apc.shm_size sistemin imkan verdiyi qədər böyükdür, bu parametrin artırılması kömək edə bilər.

Apc.shm_size simli

Qısa notasiya ilə müəyyən edilmiş paylaşılan yaddaş seqmentinin ölçüsü (bu FAQ-a baxın). Varsayılan olaraq, bəzi sistemlər (əksər BSD variantları daxil olmaqla) bu dəyəri çox kiçik bir dəyərlə məhdudlaşdırır.

Apc.shm_strings_bufer simli

Daxili APC prosesləri tərəfindən istifadə edilən paylaşılan sətir keşinə ayrılmış yaddaş miqdarı. Ölçü müvafiq olaraq meqabayt və gigabaytları göstərmək üçün M və ya G şəkilçisi ilə dayandırılmalıdır. Bu seçimdən istifadə PHP-FPM işçi proseslərinin yaddaş izlərini azalda bilər, çünki eyni sətirlər yaddaşda yalnız bir dəfə saxlanılacaq və bütün işçi prosesləri tərəfindən istifadə oluna bilər.

Apc.optimization tam

Optimallaşdırma səviyyəsi. Sıfır optimallaşdırmanı söndürür. Bu dəyər nə qədər yüksək olarsa, bir o qədər aqressiv optimallaşdırma istifadə olunacaq. Sürətdə böyük artım gözləməyin. Bu eksperimental funksionallıqdır.

Apc.num_files_hint tam

Saytınızda istifadə olunan unikal faylların sayına dair göstəriş. Sıfıra qoyun və ya əmin deyilsinizsə, ümumiyyətlə göstərməyin. Bu parametr minlərlə faylınız olduqda faydalıdır.

Apc.user_entries_hint tam apc.file_update_protection tam

Fayl tez dəyişdikdə, atomik şəkildə baş verməlidir. Yəni əvvəlcə müvəqqəti fayla yazılmalı, sonra köçürülməlidir ( mv) hədəf mövqeyinə. Bir çox mətn redaktorları cp, tar və başqaları bunu etmir. Bu, faylın yazılması zamanı onun tələb edilməsi (və keşləşdirilməsi) ilə nəticələnə bilər. Parametrlər apc.file_update_protection tamamilə yeni fayllar üçün keşləmə gecikməsini təyin edir. Defolt 2 saniyədir. Bu o deməkdir ki, əgər faylın dəyişdirilməsi vaxt möhürü ( saat) deyir ki, əgər fayl dəyişdirildikdən sonra 2 saniyədən az vaxt keçibsə, o, yaddaşda saxlanmayacaq. Yarım saxlanan fayla daxil olmağa çalışan bədbəxt adam qəribə davranışlarla qarşılaşacaq, lakin ən azı uzun sürməyəcək. kimi üsullardan istifadə edərək bütün veb server faylları atomik olaraq yenilənirsə rsync(düzgün yenilənir), onda bu parametri sıfıra təyin etməklə bu davranış aradan qaldırıla bilər. Sistem I/O həddən artıq yüklənibsə, bəzi yeniləmələr iki saniyədən çox çəkə bilər və bu parametr müvafiq olaraq artırılmalıdır.

Apc.enable_cli tam

Sınaq və sazlama üçün daha çox. Bu parametr PHP-nin CLI versiyası üçün APC-yə imkan verir. Normal işdə, konsolda hər dəfə bir skript işlətdiyiniz zaman önbelleği yaradacaq, dolduracaq və məhv edəcək APC-nin işlədilməsi ən yaxşı fikir olmayacaq. Lakin sınaq və sazlama məqsədləri üçün siz asanlıqla CLI üçün APC-ni aktivləşdirə bilərsiniz.

Apc.max_file_size tam

Bu parametrlə müəyyən edilmiş ölçüdən daha böyük faylları keş saxlamır. Defolt 1M-dir.

Apc.stat tam

Bu ayarı dəyişdirərkən diqqətli olun. Bu, defolt olaraq aktivdir və APC-nin hər sorğuda skript fayllarının dəyişdirilib-deyişilmədiyini yoxlamasına səbəb olur. Əgər onlar dəyişdirilibsə, onlar yenidən tərtib ediləcək və yenidən keşlənəcəklər. Bu parametri söndürsəniz, APC belə bir yoxlama aparmayacaq və fayl artıq keşlənibsə və sonra dəyişdirilibsə, yeni versiya önbelleğe daxil olmayacaq. Recashing veb serverin yenidən başlamasını tələb edəcək. Nəzərə alın ki, FastCGI-dən istifadə etmək üçün konfiqurasiya edilmiş veb serverlər yenidən işə salındıqda keşi təmizləməyə bilər. Fayl dəyişikliklərinin çox nadir hallarda baş verdiyi sənaye mühitlərində bu seçimi söndürmək performansı əhəmiyyətli dərəcədə yaxşılaşdıra bilər.

Daxil edilmiş/tələb olunan vasitəsilə yüklənmiş fayllar üçün bu seçim əla işləyir, lakin yadda saxlayın ki, faylı nisbi yola daxil etsəniz (Unix-də, / ilə başlamayan istənilən yol), APC unikallığı yoxlayacaq. Mütləq yollar istifadə edilərsə, APC bu yoxlamanı atlayacaq və mütləq yolu unikal fayl identifikatoru kimi istifadə edəcək.

Apc.write_lock boolean

Ağır yüklənmiş serverlərdə, server işə salındıqda və ya bir çox fayl eyni vaxtda dəyişdirildikdə, APC eyni faylı eyni anda bir neçə dəfə tərtib etməyə və keş etməyə cəhd edə bilər. Yazma kilidi yalnız bir prosesin keşlənməmiş faylı kompilyasiya etməyə və önbelleğe almağa cəhd etməsini təmin edir. Bu fayldan istifadə etməli olan digər proseslər onun keşdə görünməsini gözləmək əvəzinə, keşlənməmiş versiyasından istifadə edəcək.

Apc.report_autofilter boolean

Erkən və ya gec əlaqə problemlərinə görə keşləmədən çıxarılan hər hansı skriptləri qeyd edir.

Apc.serializer simli

APC-yə üçüncü tərəf serializatorundan istifadə etməsini bildirir.

Apc.include_once_override boolean

Zəngləri optimallaşdırır bir dəfə daxil edinbir dəfə tələb edin bahalı sistem zənglərinin qarşısını almaq üçün.

Diqqət

Bu funksionallıqdır EKSPERİMENTAL. Bu direktivin davranışı, onun adı və sənədləri APC-nin gələcək versiyalarında xəbərdarlıq edilmədən dəyişə bilər. Öz riskinizlə istifadə edin.

Apc.rfc1867 boolean

RFC1867 faylın endirilməsinin irəliləyişinin qarşısının alınması yalnız PHP 5.2.0 və ya daha yüksək versiya ilə qurulduğu halda APC-də mövcuddur. İcazə verilirsə, serverə yüklənmiş hər hansı bir fayl formada, fayl sahəsindən əvvəl, adı olan bir sahəni ehtiva edir APC_UPLOAD_PROGRESS, APC-ni avtomatik olaraq upload_ kimi fərdi keş girişi yaratmağa məcbur edəcək açar, Harada açar sahə dəyəridir APC_UPLOAD_PROGRESS.

Gizli sahə olduğunu unutmayın APC_UPLOAD_PROGRESS fayl ilə sahəyə getməlidir, əks halda iş səhv olacaq.

Nəzərə alın ki, faylın endirilməsinin izlənməsi mövzu üçün təhlükəsiz deyil, ona görə də ilk yükləmə zamanı eyni açarla yenisi varsa, birincinin izlənilməsi dayandırılacaq.

qeyd edin ki dərəcəsi yalnız bütün cari endirmələr tamamlandıqda mövcud olacaq.

Nümunə №1 apc.rfc1867 istifadə nümunəsi

print_r (apc_fetch ("yüklə_ $_POST [ APC_UPLOAD_PROGRESS ] " ));
?>

Bu nümunəni işlətməyin nəticəsi belə olacaq:

Massiv ( => 1142543 => 1142543 => 1828068.8 => test => fayl => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefiks simli

rfc1867 endirmə tərəqqisini izləmə funksiyası tərəfindən yaradılan istifadəçi keş girişində istifadə ediləcək açar prefiksi.

Apc.rfc1867_name simli

APC yükləmə prosesini aktivləşdirəcək və istifadəçi keş açarı şəkilçisini təyin edəcək gizli forma sahəsinin adını müəyyən edir.

Apc.rfc1867_freq simli

Faylın endirilməsi zamanı istifadəçinin keş girişinin yenilənmə tezliyi. O, ya faizlə, ya da ölçüsü baytla göstərməklə göstərilə bilər. İstədiyiniz halda şəkilçilərdən istifadə edə bilərsiniz "k", "m""g" müvafiq olaraq kilobayt, meqabayt və gigabayt üçün (hərfsiz). Sıfırı qeyd etsəniz, yeniləmələr mümkün qədər tez baş verəcək, lakin bu, yükləmə vaxtlarını ləngidə bilər.

Apc.rfc1867_ttl tam

rfc1867 qeydləri üçün TTL.

Apc.localcache boolean

Bloklanmayan yerli proses kölgə keşini aktivləşdirir, bu da keş yazmaları zamanı bloklanmanın miqdarını azaldır.

Apc.localcache.size tam

Yerli proses kölgə keşinin ölçüsü olduqca böyük olmalıdır, apc.num_files_hint-in təxminən yarısı.

Apc.coredump_unmap boolean

APC-yə SIGSEGV kimi siqnalları ələ keçirməyə imkan verir ki, bu da buraxıldıqda coredump yazır. Bu siqnallar qəbul edildikdə, APC onu coredump-a daxil etməmək üçün bütün paylaşılan yaddaşı boşaltmağa çalışacaq. Bu parametr kritik siqnal qəbul edildikdə və APC böyük həcmdə yaddaşdan istifadə etmək üçün konfiqurasiya edildikdə sistemin sabitliyini artıra bilər.

Diqqət

Bu xüsusiyyət potensial təhlükəlidir. Kritik siqnal qəbul edildikdə paylaşılan yaddaş seqmentlərinin azad edilməsi gözlənilməz davranışla nəticələnə bilər.

Şərh:

Bəzi ləpələr əsas fayl yazarkən bəzi paylaşılan yaddaş seqmentlərinə məhəl qoymamaq qabiliyyətini təmin etsə də, bu tətbiqlər Apache hesab lövhəsi kimi mühüm yaddaş seqmentlərini də nəzərə almaya bilər.

apc.stat_ctime tam

Svn və ya rsync kimi proqramların yaratdığı problemlərin qarşısını almaq üçün ctime ilə yoxlayın, statistik məlumatlar sonuncu dəfə toplanandan bəri inodun dəyişmədiyinə əmin olun. Tipik olaraq APC yalnız mtime yoxlayır.

Apc.canonicalize bool

Deaktiv edilərsə, nisbi yollar qeyri-stat rejimində kanonikə çevrilir. Aktivləşdirilərsə, axın paketi vasitəsilə qoşulmuş fayllar keşlənməyəcək, çünki realpath() axın sarğılarını dəstəkləmir.

Apc.preload_path simli

Könüllü. Başlanğıc zamanı APC-nin keşlənmiş məlumatları yükləmək üçün istifadə etdiyi yolu müəyyən edir.

Apc.use_request_time bool

TTL üçün SAPI sorğunun başlama vaxtını istifadə edin.

Apc.file_md5 bool

Faylların md5 heşlərini yazın.

Apc.lazy_functions tam

Funksiyaların tənbəl yüklənməsinə imkan verir.

Apc.lazy_classes tam

Dərslərin tənbəl yüklənməsinə imkan verir.

10 il əvvəl

Yuxarıdakı apc.rfc1867 nümunə kodu APC RFC1867-nin mövcud və ya olmaya biləcəyi mühitlərdə işləyənlər üçün bir az sürətli və sərbəstdir. Bu bir az daha ifadəlidir:

// əgər bizdə PHP və APC varsa
$havePHP = (1 === versiya_müqayisə (PHP_VERSION, "5.2.0" ) ? doğru : yanlış );
$haveAPC = (uzatma_yüklənmişdir ("apc" ) && 1 === versiya_müqayisə (phpversion ( "apc" ), "3.0.13" ) ? doğru : yanlış );
əgər ($havePHP && $haveAPC ) (
// APC və yükləmə izləmə aktivdirsə
əgər (ini_get ("apc.enabled" ) && ini_get ("apc.rfc1867" )) (
// statistik məlumatları əldə edin
$key = ini_get ("apc.rfc1867_prefix") . $_REQUEST["apcid"];
$stats = apc_fetch($key);
}
}

Konfiqurasiya faylı ən çox /etc/php.d/apcu.ini-də yerləşir. 8 GB RAM ilə server üçün nümunə konfiqurasiya faylı:

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 istifadə edərkən, extension=apc.so yazın

FastCGI qeydi: PHP üçün məşhur APC əməliyyat kodu keşi, PHP uşaq prosesləri idarə etmədikcə, PHP FastCGI prosesləri arasında keşi paylaşa bilməz. Beləliklə, keşin effektivliyi mod_fcgid ilə məhdudlaşır; paralel PHP sorğuları müxtəlif əməliyyat kodu keşlərindən istifadə edəcək.

Əsas APCu konfiqurasiya atributlarının təsviri

apc.shm_segments Ayrılmış yaddaş seqmentlərinin sayı. Bir çox BSD sistemləri aşağı yaddaş seqment məhdudiyyətlərinə malikdir. Defolt 1-dir.
apc.shm_size Paylaşılan yaddaş seqmentinin ölçüsü meqabaytlarla müəyyən edilir. Minimum 128M, 8GB - 512M olan bir server üçün, 16GB - 1024M olan bir server üçün təyin etməyi tövsiyə edirik. Bir neçə seqment istifadə edilərsə, yaddaş ölçüsü seqmentlərin sayına bölünməlidir.
apc.stat Bu seçim sizə APC-ni söndürməyə və ya aktivləşdirməyə imkan verir. Dəyər 1 - aktiv, 0 - qeyri-aktiv.
apc.ttl PHP faylının keşləmə vaxtı. 0-a təyin edildikdə, ayrılmış yaddaş dolu olduqda bütün keşin təmizlənməsinə imkan verir.
apc.user_ttl İstifadəçi məlumatlarının keşləmə vaxtı. 0-a təyin edildikdə, ayrılmış yaddaş dolu olduqda bütün keşin təmizlənməsinə imkan verir.
apc.max_file_size Keşlənmiş faylın maksimum ölçüsü.
apc.num_files_hint APC fayl məlumatlarının yaddaşda saxlanmasının təşkilini optimallaşdırmaq üçün istifadə olunur. 10000-dən çox dəyər təyin etməyi tövsiyə edirik.
apc.user_entries_hint APC istifadəçi dəyişənlərinin yaddaşda saxlanmasının təşkilini optimallaşdırmaq üçün istifadə olunur. 10000-dən çox dəyər təyin etməyi tövsiyə edirik.
apc.file_update_protection Göstərilən saniyədən az əvvəl yaradılmış faylları keş etməyin. Qismən yazılmış faylı önbelleğe almamağa imkan verir.

Xəta Hovuz üçün yaddaş ayırmaq mümkün deyil

Daxildir(): Yaddaşın parçalanması ciddi olduqda apc.ttl və apc.user_ttl parametrlərinin sıfırlanması yaddaşın parçalanmasını minimuma endirməyə kömək edir.

silah ilə cəngavər 9 iyul 2011-ci il, saat 23:03

Çaydan nöqteyi-nəzərindən Linux-da APC UPS-in ilkin quraşdırılması

  • Taxta otaq *

APC-dən fasiləsiz enerji təchizatı (yəni APC Back-UPS ES 550VA) aldıqdan sonra onun Linux ilə yaxın dostluğu ilə öyünə bilməyəcəyinə təəccübləndim. Əlbəttə ki, XFCE 4.4-ə daxil olan XFCE Power Manager UPS-i götürdü və tanıdı, lakin onun bacardığı tək şey qabda yükləmə səviyyəsini göstərmək idi. Heç bir parametr yox idi; müəyyən bir şarj səviyyəsinə çatdıqda kompüteri söndürmək belə mümkün deyildi.

Google ilə məsləhətləşdikdən sonra mən UPS-i APC-dən idarə etmək olan - heç vaxt inanmayacaqsınız - əla bir apcupsd demonunun mövcudluğu haqqında öyrəndim. Ancaq məlum oldu ki, onun ilkin quraşdırılması üçün demək olar ki, bütün təlimatlar açıq şəkildə köhnəlmişdir - qəribə də olsa, rəsmi təlimat da daxil olmaqla. Mən “cat /proc/bus/usb/devices” haqqında ən başlanğıcda büdrəməli oldum. Google ilə ciddi və məxfi bir tonda danışdıqdan sonra mən ondan bu məqalənin digər mənbələrdən əlavələr ilə bədii tərcümə olduğu cari təlimata keçid aldım.

Beləliklə, apcupsd proqramını quraşdırmaqla başlayaq:

Sudo apt-get install apcupsd

Əlbəttə ki, yuxarıda qeyd olunanlar Debian və onun törəmələri, o cümlədən Ubuntu üçün doğrudur. Dağıtımınız apt-get-dən istifadə etmirsə, məncə, siz hələ də tələb olunan paketi necə quraşdıracağınızı bilirsiniz. Ümid edirəm.

İndi apcupsd konfiqurasiya faylını redaktə edəcəyik:

Sudo gedit /etc/apcupsd/apcupsd.conf

Bu vəziyyətdə bizi yalnız üç parametr maraqlandırır:

  • UPSCABLE - UPS-in kompüterə qoşulduğu kabel növünü göstərin. Şərhlər mümkün növləri göstərir - sadə, smart, efir, usb. Mövcud ev modelləri USB vasitəsilə birləşdirilir - buna görə də əlavə etmək kifayətdir usb
  • UPSTYPE - qoşulmuş UPS növü. Şərhlər DEVICE parametrinin mümkün növlərini və müvafiq dəyərlərini sadalayır, lakin bizim seçimimiz növüdür. usb
  • CİHAZ - qarşısında işarə qoyaraq bu sətri şərh edin # - USB cihazları üçün lazım deyil
Dəyişdirilmiş konfiqurasiya faylını yadda saxlayın və aşağıdakı faylı açın:

Sudo gedit /etc/default/apcupsd

Əvəz edirik ISCONFIGURED=yox haqqında ISCONFIGURED=bəli, saxla, bağla. Bundan sonra apcupsd biləcək ki, biz onu konfiqurasiya etməyi unutmamışıq.

İndi sadəcə apcupsd-ni işə salın:

Sudo /etc/init.d/apcupsd başlayın

Əgər o, artıq işə salınıbsa, başlamaq əvəzinə, əlbəttə ki, restart yazmalıyıq.

Budur, kompüteriniz indi möhkəm dostluq bağları ilə tamamilə yeni UPS-ə qoşulub.

İndi geniş /etc/apcupsd/apcupsd.conf-da nəyi konfiqurasiya edə biləcəyimiz haqqında bir az:

  • ONBATTERYDELAY - Elektrik kəsilməsinin aşkarlanması ilə batareyanın boşaldılması hadisəsinin göndərilməsi arasındakı gecikməni təyin edən vaxt (saniyələrlə). Defolt - 6
  • BATTERYLEVEL - kompüterin bağlandığı batareyanın doldurulma səviyyəsi (faizlə). Defolt - 5
  • DƏQİQƏ - hesablanmış qalıq iş vaxtı (dəqiqələrlə), ona çatdıqdan sonra kompüter sönür. Defolt - 3
  • TIMEOUT - bu parametr şarj səviyyəsini təyin edə bilməyən köhnə UPS-lərə aiddir. Elektrik kəsilməsi ilə kompüterin bağlanması arasındakı vaxtı (saniyələrlə) müəyyən edir. Müasir bir UPS üçün parametr 0-da qalmalıdır, lakin fərqli bir dəyər təyin etmək UPS-in işini yoxlamaq üçün əlverişli ola bilər. Məsələn, onu 30-a təyin etsəniz və kabeli rozetkadan ayırsanız, yarım dəqiqə ərzində apcupsd kompüteri söndürmək qabiliyyətini nümayiş etdirəcək.
Şərtlərdən birinin yerinə yetirilməsi (BATTERYLEVEL, DƏQİQƏLƏR və ya TIMEOUT) kompüteri söndürmək üçün kifayətdir. Daha dəqiq tənzimləmə təsvir edilmir, çünki ev istifadəçisi üçün onun zəruriliyi çox şübhəlidir.

Hekayəni izah etmək çox vaxt aparır, lakin işi yerinə yetirmək çox vaxt çəkmir: istifadəçinin təsvir olunan hərəkətləri bir neçə dəqiqə ərzində yerinə yetirəcəyinə inanıram. Ümid edirəm ki, bu məqalə kiməsə APC UPS-ni Linux ilə birləşdirməyə kömək edəcək, vaxta qənaət edəcək və köhnəlmiş təlimatlara qapılmayacaq.

Teqlər: apc, apcupsd, ups, UPS, linux

9 aprel 2015-ci il, saat 12:12 1,889 baxış | Şərhsiz

APC nədir?

APC veb saytınızı sürətləndirməyə imkan verən PHP kodu keşləmə sistemidir. PHP dinamik server tərəfi skript dilidir və hər dəfə səhifə tələb olunanda serverdə təhlil edilməli, tərtib edilməli və icra edilməlidir. Lakin bir çox hallarda sorğular təkrarlanır və buna görə də bulud serveri onların hər birini yenidən emal etməli olur.

Bu halda APC və ya Alternativ PHP Cache köməyə gəlir. Bu alət PHP kodunu əməliyyat yaddaşında saxlayır və lazım olduqda onu geri alır. Əsasən, o, serverə yükü minimuma endirərək kodun işlənməsi və tərtibindən yan keçir.

Bu təlimat APC-nin quraşdırılmasını və konfiqurasiyasını nümayiş etdirəcək.

Qeyd: Bələdçini tamamlamaq üçün ilk növbədə kök hüquqlarınız olmalıdır, həmçinin .

APC quraşdırılması

APC keşini quraşdırmadan əvvəl onun bəzi asılılıqlarını quraşdırmalısınız. Bunu etmək üçün aşağıdakı əmrdən istifadə edin:

sudo apt-get quraşdırma php-armud php5-dev etmək libpcre3-dev

Daha sonra pecl əmrindən istifadə edərək APC quraşdıra bilərsiniz:

sudo pecl quraşdırma apc

Quraşdırmanı başa çatdırmaq üçün php.ini faylını redaktə etməlisiniz:

sonunda aşağıdakı sətir əlavə edin:

extension=apc.so

Faylı yadda saxlayın və bağlayın və sonra Apache-ni yenidən başladın:

sudo xidməti apache2 yenidən başladın

APC-nin aktiv olub olmadığını öyrənmək üçün PHP məlumat səhifəsini açın. Əgər yoxdursa, /var/www qovluğunda boş bir php faylı yaradın:

nano /var/www/info.php

Və bu kodu ona əlavə edin:

phpinfo();
?>

Faylı yadda saxlayın və bağlayın və sonra brauzerinizi açın. Cari PHP quraşdırması haqqında bütün məlumatlar ekranda görünəcək. APC aktivdirsə, səhifə bunu göstərəcək. Ümumiyyətlə, bu faylı tərk etmək tövsiyə edilmir, çünki o, icazəsiz istifadəçilərə həssas məlumatlara girişi təmin edə bilər. Yoxladıqdan sonra çıxarın.

APC-nin qurulması

Quraşdırıldıqdan sonra APC önbelleği standart parametrlərlə başlayır. Onun konfiqurasiyalarında iki çox vacib parametr var. Beləliklə, php.ini faylını açın:

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

APC daxil olan əvvəllər əlavə edilmiş sətir altına aşağıdakı sətri əlavə edin:

apc.shm_size = 64

Bu, APC önbelleği üçün 64 MB RAM ayıracaq. Virtual şəxsi serverin tələblərindən və ya məhdudiyyətlərindən asılı olaraq, bu dəyər dəyişə bilər.

Aşağıda daha bir sətir əlavə etməlisiniz:

apc.stat parametri dəyişiklikləri yoxlamaq üçün hər sorğuda skripti yoxlayır. Dəyişdirilibsə, onu yenidən tərtib edəcək və yeni versiyanı önbelleğe alacaq. Bu standart APC davranışıdır. Bu sətirdəki 0 dəyəri APC-yə skriptdə dəyişiklikləri yoxlamamağı deyəcək. Bu, performansı yaxşılaşdırır, lakin bir mənfi cəhət var: PHP skriptində dəyişikliklər olarsa, bulud serveri yenidən işə salınana qədər onlar edilməyəcək. Buna görə də, dəyəri 0-a təyin etmək yalnız istehsalda olan saytlarda tövsiyə olunur.

İndi APC önbelleği quraşdırılıb işlək vəziyyətdədir, siz onun vəziyyətini və performansını yoxlaya bilərsiniz. /usr/share/php/ qovluğunda apc.php faylını tapın və onu brauzerin əlçatan olduğu qovluğa köçürün - məsələn, www.



Əlaqədar nəşrlər