Συνιστάται να εγκαταστήσετε έναν επιταχυντή σεναρίων php που θα μειώσει το φόρτο στον διακομιστή ιστού σας. Ο επιταχυντής συγκεντρώνει τα πιο συχνά χρησιμοποιούμενα σενάρια php και, όταν έχει πρόσβαση, φορτώνει όχι τον πηγαίο κώδικα, αλλά τη μεταγλωττισμένη του έκδοση. Λόγω της οποίας υπάρχει επιτάχυνση της εκτέλεσης και εμφάνισης του ιστότοπού σας. Αυτό είναι ιδιαίτερα αισθητό σε "βαριά" CMS όπως το Bitrix.

Για να εγκαταστήσετε τον επιταχυντή APC, πρέπει πρώτα να εγκαταστήσετε το XCode c με το στοιχείο γραμμή εντολών.

Μετά την ενημέρωση του Mac OS X στην έκδοση 10.9 Maverick, πρέπει να επανεγκαταστήσετε το στοιχείο γραμμής εντολών. Τώρα δεν έχει εγκατασταθεί μέσω GUI, και χρησιμοποιώντας τη γραμμή εντολών: xcode-select --install

Διαφορετικά, κατά την εγκατάσταση επεκτάσεων χρησιμοποιώντας pecl, θα λάβετε το σφάλμα "Το αρχείο php.h δεν βρέθηκε"

./configure make sudo make install

sudo pecl εγκατάσταση apc

Εάν όλα πήγαν καλά, τότε ελέγξτε την εγκατάσταση του APC με ένα σενάριο php με την εντολή phpinfo (). κατά την εκτέλεση της εντολής, ενδέχεται να υπάρχει πλήρης αποτυχία, σε αυτήν την περίπτωση, πρέπει να δοκιμάσετε τα εξής:

Εάν αυτή η εντολή αποτύχει, τότε πιθανότατα δεν έχετε εγκαταστήσει τα PEAR και PECL. Πρέπει να ληφθούν χρησιμοποιώντας την εντολή curl και να εγκατασταθούν

Curl -O http://pear.php.net/go-pear.phar sudo php -d detect_unicode=0 go-pear.phar

Όταν ερωτηθείτε για τη διαμόρφωση PEAR, πρέπει να διορθώσετε τις παραμέτρους 1 και 4. Όπου θα υπάρχουν

11. Όνομα αρχείου διαμόρφωσης:

1-11, "all" ή Enter για να συνεχίσετε:

Απαντήστε πρώτα 1. Και εισάγετε τη διεύθυνση:

/usr/local/pear

Στη συνέχεια, απαντήστε στο 4 και πληκτρολογήστε την παρακάτω διεύθυνση

Μετά από αυτό πατήστε enter. Το αχλάδι έχει εγκατασταθεί. Μπορείτε να ελέγξετε με την εντολή

Έκδοση με αχλάδι

Μετά δοκιμάστε ξανά

Αυτή τη φορά με απέρριψαν με το παρακάτω μήνυμα

Δεν είναι δυνατή η εύρεση της αυτόματης ρύθμισης. Ελέγξτε την εγκατάσταση αυτόματης ρύθμισης και το

Μεταβλητή περιβάλλοντος $PHP_AUTOCONF. Στη συνέχεια, εκτελέστε ξανά αυτό το σενάριο.

ΣΦΑΛΜΑ: Το 'phpize' απέτυχε

Για να διορθώσετε αυτό το σφάλμα, πρέπει να κάνετε λήψη και εγκατάσταση της αυτόματης διαμόρφωσης με τις ακόλουθες εντολές τερματικού

Curl http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz > autoconf.tar.gz tar -xvzf autoconf.tar.gz cd autoconf-* ./configure --prefix=/usr/local sudo make install

Μετά την εγκατάσταση του autoconfig η εντολή είναι:


sudo pecl εγκατάσταση apc

Όλες οι ερωτήσεις που τίθενται κατά τη μεταγλώττιση του APC απαντώνται με την προεπιλεγμένη είσοδο. Αν η ερώτηση

Ενεργοποίηση εσωτερικού εντοπισμού σφαλμάτων στο APC : y

Σε αυτήν την περίπτωση, κατά την εκτέλεση του κώδικα, ενδέχεται να λάβετε μηνύματα σφάλματος εκτέλεσης από το ίδιο το APC. Η σωστή απάντηση είναι όχι.

Η εγκατάσταση ήταν επιτυχής. Τώρα κάντε επανεκκίνηση του apache

επανεκκίνηση sudo apachectl

Εάν επανεγκαταστήσετε το APC μετά την ενημέρωση στο Mavericks, ενδέχεται να υπάρχει πρόβλημα που σχετίζεται με την ύπαρξη παλιά εκδοχή phpize. Σε αυτήν την περίπτωση, οι ακόλουθες εντολές μπορούν να βοηθήσουν στην ενημέρωση της διαμόρφωσης pecl sudo pear config-set php_ini /etc/php.ini sudo pecl config-set bin_dir /usr/bin/

Πρέπει να βεβαιωθείτε ότι υπάρχει μια γραμμή στο αρχείο /etc/php.ini και να την προσθέσετε εάν χρειάζεται.

Extension=apc.so

Και επανεκκινήστε ξανά το apache.

Έλεγχος στο phpinfo()


Το Bitrix απαιτεί εγκατάσταση επιπλέον επιλογές. Οι ρυθμίσεις APC βρίσκονται στο αρχείο

Έχω ορίσει τις παρακάτω επιλογές για τον εαυτό μου:

Apc.ttl=7200
apc.max_file_size=64M
apc.shm_size = 64M

Τι έδωσε η αλλαγή στην απόδοση (σύμφωνα με το Bitrix performance monitor) από 10,62 μονάδες σε 40,52)
Αυτό είναι όπως όλα.

Βασικές ρυθμίσεις APC

  • apc.enabled- σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε το APC
  • apc.shm_segmentsείναι ο αριθμός των κοινόχρηστων τμημάτων μνήμης που θα χρησιμοποιήσει η apc. Ορισμένα συστήματα περιορίζονται σε μέγιστο μέγεθοςτμήμα, ώστε να μπορείτε να διαμορφώσετε το apc ώστε να χρησιμοποιεί πολλά τμήματα.
  • apc.shm_sizeείναι το μέγεθος ενός τμήματος κοινόχρηστης μνήμης που χρησιμοποιείται από το apc.
  • apc.ttl– πόσα δευτερόλεπτα δεν πρέπει να έχει πρόσβαση σε μια καταχώρηση κρυφής μνήμης πριν την αντικαταστήσει η apc.
  • apc.user_ttl- η περιγραφή είναι ίδια με το apc.ttl. Συνήθως ορίζεται σε apc.ttl.
  • apc.stat- υποδεικνύει εάν το apc πρέπει να ελέγχει τον χρόνο τροποποίησης του σεναρίου php. Εάν οριστεί σε 0, το apc δεν θα ελέγξει για αλλαγές στο δίσκο και θα παράγει ένα αντίγραφο στην κρυφή μνήμη.

Πρόοδος μεταφόρτωσης Pecl εγκατάστασης

Είναι αλήθεια ότι ενδέχεται να απαιτούνται δικαιώματα υπερ-χρήστη (root).

sudo apt-get εγκατάσταση php-apc - δεν λειτουργεί

Το APC δεν χρειάζεται πλέον στο Ubuntu 14.04. Το APC δεν υποστηρίζεται στην PHP 5.5, η οποία έρχεται με τη δική της ενσωματωμένη μνήμη cache 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 Caching Up and Running Optimization Enabled κ.λπ.

Πώς να εγκαταστήσετε την εναλλακτική προσωρινή μνήμη PHP (APC) στο Ubuntu 12.04

Εγκατάσταση από PECL

Για εγκατάσταση από Αποθετήριο UbuntuΔες παρακάτω.

σχετικά με το APC.
Το APC είναι ένα εξαιρετικό σύστημα προσωρινής αποθήκευσης κώδικα λειτουργίας για PHP που μπορεί να βοηθήσει στην επιτάχυνση του ιστότοπού σας. Η PHP είναι μια δυναμική γλώσσα δέσμης ενεργειών από την πλευρά του διακομιστή που πρέπει να αναλύεται, να μεταγλωττίζεται και να εκτελείται από τον διακομιστή με κάθε αίτημα σελίδας. Σε πολλές περιπτώσεις όμως, τα αιτήματα παράγουν ακριβώς τα ίδια αποτελέσματα, πράγμα που σημαίνει ότι ο διακομιστής cloud πρέπει να επαναλαμβάνει άσκοπα όλα αυτά τα βήματα για καθένα από αυτά.
Εδώ μπαίνει στο παιχνίδι το APC. Αυτό που κάνει είναι να αποθηκεύει τον PHP opcode (κωδικό λειτουργίας) στη μνήμη RAM και αν ζητηθεί ξανά, τον εκτελεί από εκεί. Ουσιαστικά, παρακάμπτει τα βήματα ανάλυσης και μεταγλώττισης και ελαχιστοποιεί ορισμένα περιττά φορτία στον διακομιστή cloud.

Υποτίθεται ότι έχετε το δικό σας VPS με δικαιώματα root και εγκατεστημένο το LAMP.

Αρχικά, εγκαταστήστε τα πακέτα:

sudo apt-get install 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 να χρησιμοποιήσει 64 MB μνήμης RAM για την προσωρινή αποθήκευση. Ανάλογα με τη διαμόρφωση, μπορείτε να αλλάξετε αυτήν την τιμή.
Επόμενη γραμμή για προσθήκη:

apc.stat = 0

Η επιλογή apc.stat ελέγχει το σενάριο σε κάθε αίτημα για να δει αν έχει αλλάξει ή όχι. Εάν το σενάριο έχει αλλάξει, το APC θα το μεταγλωττίσει ξανά και θα το αποθηκεύσει προσωρινά νέα έκδοση. Αυτή είναι η προεπιλεγμένη συμπεριφορά του APC μετά την εγκατάσταση. Ορίζοντας την τιμή της παραμέτρου σε 0, λέμε στο APC να μην κάνει έλεγχο για αλλαγές σεναρίου. Αυτό βελτιώνει την απόδοση, αλλά εάν το σενάριο έχει τροποποιηθεί, οι αλλαγές δεν θα εφαρμοστούν έως ότου γίνει επανεκκίνηση του διακομιστή. Έτσι, η τιμή 0 συνιστάται να χρησιμοποιείται μόνο σε διακομιστή παραγωγής όπου δεν υπάρχει συνεχής αλλαγήκώδικας.

Παρακολούθηση APC
Υπάρχει ένα μικρό σενάριο για την παρακολούθηση της κατάστασης και της απόδοσης της κρυφής μνήμης APC.

Μπορείτε να αντιγράψετε το αρχείο apc.php από το /usr/share/php/ στον κατάλογο εργασίας του διακομιστή web, για παράδειγμα /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

και ορίστε το όνομα χρήστη και τον κωδικό πρόσβασης:

Προεπιλογές("ADMIN_USERNAME","apc"); // Προεπιλογή ονόματος χρήστη διαχειριστή ("ADMIN_PASSWORD", "pass"); // Κωδικός πρόσβασης διαχειριστή - ΑΛΛΑΞΤΕ ΑΥΤΟ ΓΙΑ ΕΝΕΡΓΟΠΟΙΗΣΗ!!!

Προεπιλογές("USE_AUTHENTICATION",0);

Πρόσθετες επιλογές στο /etc/php5/apache2/conf.d/apc.ini

;apc.enabled=1 - μη σχετικό;apc.enable_cli=1 - μη σχετικό;apc.shm_size=64M # default 32M ;apc.stat = 0

APCείναι συντομογραφία του Εναλλακτική προσωρινή αποθήκευση PHP. Το ρωσικό κείμενο είναι μια εναλλακτική κρυφή μνήμη PHP. Σε τι χρησιμεύει? Όπως και άλλα δημοφιλή cacher όπως το XCache και το eAccelerator, χρησιμοποιείται για την επιτάχυνση των σεναρίων PHP. Εάν έχετε δικό σας διακομιστή και ανησυχείτε για την απόδοση των σεναρίων PHP, τότε το APC μπορεί να είναι η λύση στο πρόβλημά σας. Στο σημερινό άρθρο, θα μάθουμε περισσότερα για το APC, θα μάθουμε πώς να το εγκαταστήσουμε και να το δοκιμάσουμε, να χρησιμοποιήσουμε την προσωρινή αποθήκευση APC κατά τη σύνταξη σεναρίων PHP.

Σήμερα θα μάθουμε

Τι είναι ένας επιταχυντής APC;

ΕπιταχυντήςAPC(Alternative PHP Cache) είναι μια δωρεάν και ανοιχτή προσωρινή μνήμη opcode για την PHP. Σχεδιάστηκε ως ένα δωρεάν, ανοιχτό και σταθερό πλαίσιο προσωρινής αποθήκευσης και βελτιστοποίησης. πηγαίος κώδικας PHP. Η APC βρίσκεται στο στάδιο της ανάπτυξής της. Προς το παρόν υποστηρίζει PHP 4 και PHP 5, συμπεριλαμβανομένης της 5.3. Προφανώς θα συμπεριληφθεί στον τυπικό πυρήνα PHP της έκτης έκδοσης.

Πώς επιτυγχάνεται η επιτάχυνση;PHP;

Όταν υπάρχει καθυστέρηση στη φόρτωση του ιστότοπού σας, τίθεται το ερώτημα - Γιατί; Το γεγονός είναι ότι όταν εκτελείτε μια τυπική κλήση σε ένα σενάριο PHP, κάθε φορά μεταγλωττίζεται εκ νέου. Δηλαδή η ίδια δουλειά γίνεται πολλές φορές. Εάν πρόκειται για ένα μικρό έργο, οι επιβραδύνσεις μπορεί να είναι μικρές, ακόμη και αόρατες. Αλλά εάν έχετε ένα μεγάλο έργο (ιστότοπο), τότε έχετε παρατηρήσει ότι όταν αποκτάτε πρόσβαση σε αυτό, υπάρχει καθυστέρηση στη φόρτωση της σελίδας, παρά το γεγονός ότι ο ιστότοπος είναι καλά βελτιστοποιημένος από άποψη και . Για λόγους σαφήνειας, ας δούμε πώς εκτελείται ένα τυπικό ερώτημα χωρίς Χρήση PHPεπιταχυντές:

Ταυτόχρονα, η εκτέλεση συλλογή κώδικασε κάθε αίτημα. Χρειάζεται πολύς χρόνος για την επεξεργασία του αιτήματος και επομένως επιβραδύνεται. Για να το παρακάμψουν αυτό, κατέληξαν σε επιταχυντές, εκπρόσωπος των οποίων είναι η APC. Αποθηκεύουν προσωρινά τον μεταγλωττισμένο κώδικα στο δίσκο, μετά τον οποίο εκτυπώνει το αποτέλεσμα. Αυτό αυξάνει την ταχύτητα PHP δουλειά. Το APC μπορεί να λειτουργήσει σε δύο λειτουργίες, οι οποίες είναι ρυθμισμένες στο αρχείο /etc/php.d/apc.ini, μεταβλητή apc.stat. Η μεταβλητή μπορεί να πάρει τις τιμές 1 και 0 (apc.stat=0 ή apc.stat=1). Η χρήση της λειτουργίας apc.stat=1 επιβραδύνει λίγο τα σενάρια καθώς ελέγχει την τροποποίηση του αρχείου, αλλά έτσι αποφεύγονται προβλήματα κατά την αλλαγή του κώδικα και η έξοδος του αποτελέσματος παραμένει η ίδια. Επομένως, σας συμβουλεύω να ορίσετε την τιμή της μεταβλητής σε 1.

Μετά την εγκατάσταση του επιταχυντή APC, το σχήμα εκτέλεσης ερωτήματος θα έχει ως εξής:

Εγκατάσταση APC

Το APC είναι πολύ εύκολο στην εγκατάσταση. Μπορεί να εγκατασταθεί τόσο σε Debian/Ubuntu όσο και σε άλλες διανομές.

Εγκατάσταση APC σε CentOS, RHEL, Fedora:

Θα εγκαταστήσουμε μέσω PECL. Αρχικά, συμπεριλαμβάνουμε το .repo, το οποίο περιέχει το πραγματικό APC. Δείτε παράδειγμα παρακάτω:

wget http://rpm.scwlab.com/el/php/yum.conf -O /etc/yum.repos.d/stalwart.repo

yum εγκατάσταση php-pecl-apc

Τώρα, αλλάξτε τις ρυθμίσεις του αρχείου /etc/php.d/apc.ini σύμφωνα με τις προτιμήσεις σας και επανεκκινήστε τον διακομιστή.

Εγκατάσταση APC σε Debian, Ubuntu

apt-get install apache2-threaded-dev php5-dev php5-pear make gcc g++

pecl εγκατάσταση apc

Μετά τη λήψη, ανοίξτε το αρχείο στο /etc/php5/apache2/php.ini, προσθέστε την παράμετρο επέκταση=apc.soκαι επανεκκινήστε τον διακομιστή.

Όπως μπορείτε να δείτε, η εγκατάσταση του APC στο Debian ή στο Ubuntu είναι αρκετά απλή, πρέπει να πληκτρολογήσετε την εντολή στην κονσόλα sudo aptitude εγκατάσταση php-apc. Μπορείτε επίσης να εγκαταστήσετε αυτήν την επέκταση μέσω συναπτικός. Εάν έχετε διαφορετική διανομή, τότε μπορείτε να εγκαταστήσετε το πακέτο APC από την PECL. Για να το κάνετε αυτό, εκτελέστε την ακόλουθη εντολή στην κονσόλα sudo pecl εγκατάσταση apc.

Έλεγχος εάν υπάρχει πακέτοAPC

Εάν υπάρχει γραμμή φόρτωσης πακέτου στο αρχείο ρυθμίσεων php.ini επέκταση=apc.so. Ή έχει δημιουργηθεί ένα αρχείο apc.ini με την ίδια γραμμή, στο φάκελο διαμόρφωσης των επεκτάσεων PHP. Κάθε διανομή έχει τη δική της διεύθυνση. Για το Debian, αυτό είναι το /etc/php5/apache2/conf.d/.

Εάν ελέγξατε και βεβαιωθείτε ότι όλα είναι εντάξει, επανεκκινήστε τον διακομιστή. Τώρα ας ελέγξουμε τις πληροφορίες σχετικά με το ίδιο το πακέτο APC. Για να το κάνετε αυτό, βρείτε το φάκελο όπου εγκαταστάθηκε η επέκταση. Στο φάκελο θα βρείτε το αρχείο με το όνομα apc.php. Αυτό το αρχείο υπάρχει επίσης στο αρχείο εγκατάστασης. Αντιγράψτε το σε οποιονδήποτε κατάλογο από τους ιστότοπους του διακομιστή σας..php. Εάν το πακέτο εγκαταστάθηκε με επιτυχία, τότε όταν κάνετε λήψη αυτού του αρχείου, θα δείτε τον ακόλουθο πίνακα πληροφοριών σχετικά με το τρέχον πακέτο APC.



Χρήση APC στην PHP

Η χρήση της επέκτασης APC κατά τη σύνταξη κώδικα PHP είναι πολύ απλή και βολική. Τώρα θα το δείτε μόνοι σας.

Αρχικά, θα γράψουμε μια κλάση για εργασία με τη μνήμη μέσω του συστήματος προσωρινής αποθήκευσης APC. Δημιουργήστε ένα αρχείο και βάλτε τον κώδικα εκεί στην ακόλουθη διεύθυνση:

classes/apc.caching.php

bEnabled = extension_loaded("apc"); ) // λήψη δεδομένων από τη συνάρτηση μνήμης getData($sKey) ( $bRes = false; $vData = apc_fetch($sKey, $bRes); επιστροφή ($bRes) ? $vData:null; ) // αποθήκευση δεδομένων στη λειτουργία μνήμης setData($sKey, $vData) ( return apc_store($sKey, $vData, $this->iTtl); ) // διαγραφή δεδομένων από τη συνάρτηση μνήμης delData($sKey) ( $bRes = false; apc_fetch($sKey, $ bRes); return ($bRes) ? apc_delete($sKey) : true; ) ) ?>

Η τάξη περιγράφει τι κάνει κάθε συνάρτηση. Τώρα ας δημιουργήσουμε ένα δοκιμαστικό αρχείο.

index.php

"τραπέζι", "χρώμα" => "καφέ", "μέγεθος" => πίνακας("x" => 200, "y" => 120, "z" => 150,), "δύναμη" => 10, ) require_once("classes/apc.caching.php"); $oCache = new CacheAPC(); echo "Δεδομένα:

"; // Ας δούμε τι έχουμε print_r($aData); echo "
"; if ($oCache->bEnabled) ( // Εάν το APC είναι διαθέσιμο $oCache->setData("my_object", $aData); // Αποθήκευση δεδομένων στη μνήμη $oCache->setData("our_class_object", $oCache) ; // Αποθήκευση του αντικειμένου κλάσης στη μνήμη echo "Θεωρητικά, έχουμε αποθηκεύσει τα δεδομένα στη μνήμη, κάντε κλικ εδώ για να ελέγξετε αν όλα είναι πραγματικά εκεί." θα δοκιμαστεί!";) ?>

Σε αυτό το αρχείο, έχουμε αποθηκεύσει 2 αντικείμενα στη μνήμη: έναν πίνακα και ένα αντικείμενο κλάσης. Τώρα ας δημιουργήσουμε το δεύτερο αρχείο.

index2.php

bEnabled) ( // Εάν το APC είναι διαθέσιμο $aMemData = $oCache->getData("my_object"); // Λήψη δεδομένων από τη μνήμη $aMemData2 = $oCache->getData("our_class_object"); // λήψη δεδομένων από τη μνήμη που στην τάξη echo "Δεδομένα στη μνήμη:

"; // ελέγξτε τι έχουμε στη μνήμη print_r($aMemData); echo "
"; echo "Όπως μπορείτε να δείτε, όλα τα δεδομένα είναι διαθέσιμα, τώρα ας τα ανακτήσουμε από τη μνήμη, για αυτό πάμε εδώ..."; ) else ( echo "Το πακέτο APC δεν είναι εγκατεστημένο, εγκαταστήστε το και μετά θα δοκιμάσετε αυτό!";) ?>

Σε αυτό το σενάριο, διαβάζουμε μόνο πληροφορίες από τη μνήμη. Όπως μπορείτε να δείτε, όλες οι πληροφορίες διαβάζονται τέλεια από τη μνήμη. Ας δούμε το τελευταίο παράδειγμα.

index3.php

bEnabled) ( // Εάν το APC είναι διαθέσιμο $oCache->delData("my_object"); // Ανάκτηση δεδομένων από τη μνήμη $oCache->delData("our_class_object"); // Ανάκτηση δεδομένων από τη μνήμη $aMemData = $oCache-> getData ("my_object"); // προσπάθεια ανάκτησης δεδομένων $aMemData2 = $oCache->getData("our_class_object"); echo "Δεδομένα από τη μνήμη:

"; // Ελέγξτε τι έχουμε στη μνήμη print_r($aMemData); echo "
"; echo "Δεδομένα από τη μνήμη του αντικειμένου κλάσης CacheAPC:
"; print_r($aMemData2); echo "
"; echo "Όπως μπορείτε να δείτε, όλα τα δεδομένα έχουν ανακτηθεί από τη μνήμη. Hooray!"; ) else ( echo "Το πακέτο APC δεν είναι εγκατεστημένο, εγκαταστήστε και δοκιμάστε αργότερα!"; ) ?>

συμπέρασμα

Σας ευχαριστώ για την προσοχή σας! Ελπίζω να σας άρεσε η ανάγνωση σχετικά με τη χρήσηAPCPHP. Εάν έχετε άλλες ιδέες σχετικά με τη χρήσηAPC όταν γράφετεΣενάρια PHP, γράψτε σχετικά στα σχόλια.


APCείναι συντομογραφία του Εναλλακτική προσωρινή αποθήκευση PHP. Το ρωσικό κείμενο είναι μια εναλλακτική κρυφή μνήμη PHP. Σε τι χρησιμεύει? Όπως και άλλα δημοφιλή cacher όπως το XCache και το eAccelerator, χρησιμοποιείται για την επιτάχυνση των σεναρίων PHP. Εάν έχετε δικό σας διακομιστή και ανησυχείτε για την απόδοση των σεναρίων PHP, τότε το APC μπορεί να είναι η λύση στο πρόβλημά σας. Στο σημερινό άρθρο, θα μάθουμε περισσότερα για το APC, θα μάθουμε πώς να το εγκαταστήσουμε και να το δοκιμάσουμε, να χρησιμοποιήσουμε την προσωρινή αποθήκευση APC κατά τη σύνταξη σεναρίων PHP.

Τι είναι ένας επιταχυντής APC;

ΕπιταχυντήςAPC(Alternative PHP Cache) είναι μια δωρεάν και ανοιχτή προσωρινή μνήμη opcode για την PHP. Σχεδιάστηκε ως ένα δωρεάν, ανοιχτό και σταθερό πλαίσιο για την προσωρινή αποθήκευση και τη βελτιστοποίηση του πηγαίου κώδικα PHP. Η APC βρίσκεται στο στάδιο της ανάπτυξής της. Προς το παρόν υποστηρίζει PHP 4 και PHP 5, συμπεριλαμβανομένης της 5.3. Προφανώς θα συμπεριληφθεί στον τυπικό πυρήνα PHP της έκτης έκδοσης.
Πώς επιτυγχάνεται η επιτάχυνση;PHP;
Όταν υπάρχει καθυστέρηση στη φόρτωση του ιστότοπού σας, τίθεται το ερώτημα - Γιατί; Το γεγονός είναι ότι όταν εκτελείτε μια τυπική κλήση σε ένα σενάριο PHP, κάθε φορά μεταγλωττίζεται εκ νέου. Δηλαδή η ίδια δουλειά γίνεται πολλές φορές. Εάν πρόκειται για ένα μικρό έργο, οι επιβραδύνσεις μπορεί να είναι μικρές, ακόμη και αόρατες. Αν όμως διαθέτετε μεγάλο έργο (ιστοσελίδα), τότε έχετε παρατηρήσει ότι όταν αποκτάτε πρόσβαση, υπάρχει καθυστέρηση στη φόρτωση της σελίδας, παρά το γεγονός ότι ο ιστότοπος είναι καλά βελτιστοποιημένος όσον αφορά τη συμπίεση html και τη συμπίεση css. Για λόγους σαφήνειας, ας δούμε πώς εκτελείται ένα τυπικό αίτημα χωρίς τη χρήση επιταχυντών PHP:

Ταυτόχρονα, η εκτέλεση συλλογή κώδικασε κάθε αίτημα. Χρειάζεται πολύς χρόνος για την επεξεργασία του αιτήματος και επομένως επιβραδύνεται. Για να το παρακάμψουν αυτό, κατέληξαν σε επιταχυντές, εκπρόσωπος των οποίων είναι η APC. Αποθηκεύουν προσωρινά τον μεταγλωττισμένο κώδικα στο δίσκο, μετά τον οποίο εκτυπώνει το αποτέλεσμα. Αυτό αυξάνει την ταχύτητα της PHP. Το APC μπορεί να λειτουργήσει σε δύο λειτουργίες, οι οποίες είναι ρυθμισμένες στο αρχείο /etc/php.d/apc.ini, μεταβλητή apc.stat. Η μεταβλητή μπορεί να πάρει τις τιμές 1 και 0 (apc.stat=0 ή apc.stat=1). Η χρήση της λειτουργίας apc.stat=1 επιβραδύνει λίγο τα σενάρια καθώς ελέγχει την τροποποίηση του αρχείου, αλλά έτσι αποφεύγονται προβλήματα κατά την αλλαγή του κώδικα και η έξοδος του αποτελέσματος παραμένει η ίδια. Επομένως, σας συμβουλεύω να ορίσετε την τιμή της μεταβλητής σε 1.
Μετά την εγκατάσταση του επιταχυντή APC, το σχήμα εκτέλεσης ερωτήματος θα έχει ως εξής:

Εγκατάσταση του APC Accelerator

Δεδομένου ότι σε απ ενημερωμένες εκδόσειςπροστέθηκε πολύ αργά. Επομένως, θα εγκαταστήσουμε το APC μέσω PECL:

sudo apt-get remove --purge php-apc sudo apt-get install libpcre3-dev sudo pecl install apc
Κατά την εγκατάσταση, ορίσαμε την ακόλουθη διαμόρφωση (YMMV):
Ενεργοποίηση εσωτερικού εντοπισμού σφαλμάτων στο APC : όχι Ενεργοποίηση πληροφοριών αρχείου ανά αίτημα σχετικά με αρχεία που χρησιμοποιούνται από την κρυφή μνήμη APC : όχι Ενεργοποίηση κλειδώματος περιστροφής (ΠΕΙΡΑΜΑΤΙΚΟ) : όχι Ενεργοποίηση προστασίας μνήμης (ΠΕΙΡΑΜΑΤΙΚΟ) : όχι Ενεργοποίηση mutexes pthread (προεπιλογή) : ναι Ενεργοποίηση ανάγνωσης/εγγραφής pthread κλειδαριές (ΠΕΙΡΑΜΑΤΙΚΟ) : όχι Τώρα πρέπει να ενεργοποιήσετε το APC στις ρυθμίσεις, γιατί. αυτό δεν γίνεται αυτόματα. Για αυτό δημιουργούμε αρχείο apc.ini στον κατάλληλο κατάλογο: sudo vim /etc/php5/conf.d/apc.ini και γράψτε τις ακόλουθες ρυθμίσεις σε αυτό το αρχείο (συνιστάται για εργασία με το Magento) extension=apc.so apc.enabled=1 apc.shm_size=512M apc.num_files_hint=10000 apc.user_entries_hint=10000 apc.max_file_size=5M apc.stat=0 apc.c.optimization=1. apc.cache_by_default=1 apc.include_once_override=1

Ενεργοποιήστε την υποστήριξη APC στο Magento

Ανοίξτε το αρχείο διαμόρφωσης Magento: vi app/etc/local.xml και προσθέστε τον ακόλουθο κώδικα στην καθολική ενότητα:


apc Αρχείο 0 1 MAGE_ ή βάση δεδομένων apc 0 1 MAGE_


Όπου μεταξύ των ετικετών "Πρόθεμα" υποδεικνύεται Σύντομη περιγραφήαποθήκευση για να μπορείτε να χρησιμοποιήσετε το APC για την κρυφή αποθήκευση πολλών καταστημάτων που έχουν δημιουργηθεί στο ίδιο Magento.

Πώς να ελέγξετε εάν το APC λειτουργεί;

Πρώτα απ 'όλα, πρέπει να το προσέξετε Σενάρια PHPΤο Magento να γίνει πιο γρήγορο. Χρήση Firebug και ένα πρόσθετο για αυτό, όπως το YSlow, για την αξιολόγηση της ταχύτητας του ιστότοπου. Μπορείτε να κατεβάσετε την επέκταση Firebug για τον Firefox εδώ. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το αρχείο apc.php αντιγράφοντας το από το φάκελο διανομής APC στο κοινό του έργου σας: sudo cp /usr/share/php/apc.php /η δημόσια διαδρομή σας Τώρα μπορείτε να ανοίξετε αυτό το αρχείο στο πρόγραμμα περιήγησής σας: http://yourhost.local/apc.php

Η συμπεριφορά αυτών των συναρτήσεων εξαρτάται από τις ρυθμίσεις στο php.ini.

Ενώ οι προεπιλεγμένες ρυθμίσεις APC είναι κατάλληλες για τις περισσότερες εγκαταστάσεις, ορισμένες εφαρμογές ενδέχεται να απαιτούν καλύτερο συντονισμό.

Κατά τη διαμόρφωση του APC, υπάρχουν δύο βασικά σημεία στα οποία πρέπει να προσέξετε. Το πρώτο είναι πόση μνήμη πρέπει να διαθέσει στο APC και το δεύτερο είναι εάν το APC θα ελέγξει για να δει εάν το αρχείο έχει τροποποιηθεί σε κάθε αίτημα. Αυτές οι ρυθμίσεις είναι οι παράμετροι apc.shm_sizeκαι apc.stat, αντίστοιχα. Διαβάστε πολύ προσεκτικά τις ενότητες που σχετίζονται με τη ρύθμιση αυτών των παραμέτρων.

Μόλις ξεκινήσει ο διακομιστής, το σενάριο apc.phpΤο , που παρέχεται με αυτήν την επέκταση, πρέπει να αντιγραφεί στο "docroot" και πρέπει να έχει δικαιώματα για να το εκτελεί μέσω του προγράμματος περιήγησης. Αυτό το σενάριο παρέχει λεπτομερείς πληροφορίες σχετικά με τη λειτουργία APC. Εάν το GD είναι ενεργοποιημένο στην PHP, τότε αυτό το σενάριο θα εμφανίζει επίσης χρήσιμα γραφήματα. Φυσικά το πρώτο πράγμα που πρέπει να ενδιαφέρει είναι αν το APC αποθηκεύει κάτι στην κρυφή μνήμη. Εάν το APC εκτελείται, τότε η τιμή Πλήρης αριθμός κρυφής μνήμης(αριστερά) θα εμφανίσει τον αριθμό των φορών που η κρυφή μνήμη γεμίζει εντελώς και αναγκάστηκε να διαγράψει αναγκαστικά καταχωρήσεις στις οποίες δεν έγινε πρόσβαση τελευταία apc.ttlδευτερόλεπτα. Όσο μικρότερος είναι αυτός ο αριθμός, τόσο καλύτερα διαμορφώνεται η κρυφή μνήμη. Εάν αυτός ο αριθμός αυξάνεται συνεχώς, τότε η APC πρέπει να καθαρίζει συνεχώς παλιές εγγραφές, και ως εκ τούτου χάνεται όλο το νόημα της προσωρινής αποθήκευσης. Πλέον Ο καλύτερος τρόποςΓια να μειώσετε αυτόν τον αριθμό, προσθέστε περισσότερη μνήμη για το APC. Εάν αυτό δεν μπορεί να γίνει, τότε πρέπει να κάνετε εκ νέου διαμόρφωση apc.filtersγια να περιορίσετε το σύνολο των αποθηκευμένων σεναρίων.

Εάν το APC είναι κατασκευασμένο με υποστήριξη mmap (Χαρτογράφηση μνήμης), θα χρησιμοποιεί μόνο ένα τμήμα μνήμης, εάν το αντίστροφο, το APC έχει δημιουργηθεί με υποστήριξη SHM (SysV Shared Memory), θα χρησιμοποιεί πολλά τμήματα. Το MMAP δεν έχει μέγιστο όριο, σε αντίθεση με το SHM που είναι περιορισμένο /proc/sys/kernel/shmmax. Συνιστάται γενικά η χρήση MMAP επειδή εκχωρεί τη μνήμη πολύ πιο γρήγορα κατά την επανεκκίνηση του διακομιστή web, γεγονός που επηρεάζει την ταχύτητα εκκίνησης του διακομιστή.

Παράμετροι διαμόρφωσης 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 "32 εκατ." 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 ΜΗΔΕΝΙΚΟ 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 "1 εκατ." 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 "Προκαθορισμένο" 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 ΜΗΔΕΝΙΚΟ PHP_INI_SYSTEM Διαθέσιμο από το APC 3.1.1.
apc.file_md5 "0" PHP_INI_SYSTEM Διαθέσιμο από το APC 3.1.1.
apc.κανονικοποιώ "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, μπορείτε απλά να σχολιάσετε τη γραμμή επέκτασησε php.ini.

Apc.shm_segments ακέραιος αριθμός

Αριθμός τμημάτων κοινόχρηστης μνήμης που έχουν εκχωρηθεί για προσωρινή μνήμη. Εάν το APC έχει εξαντλήσει όλη τη διαθέσιμη κοινόχρηστη μνήμη και apc.shm_sizeόσο το επιτρέπει το σύστημα, η αύξηση αυτής της ρύθμισης μπορεί να βοηθήσει.

Apc.shm_size σειρά

Μέγεθος τμήματος κοινόχρηστης μνήμης, που δίνεται σε συντομογραφία (δείτε αυτές τις Συνήθεις Ερωτήσεις). Από προεπιλογή, ορισμένα συστήματα (συμπεριλαμβανομένων των περισσότερων παραλλαγών BSD) περιορίζουν αυτήν την τιμή σε μια εξαιρετικά μικρή τιμή.

Apc.shm_strings_buffer σειρά

Η ποσότητα της μνήμης που εκχωρείται στην κοινόχρηστη κρυφή μνήμη συμβολοσειρών που χρησιμοποιείται από τις εσωτερικές διεργασίες του APC. Το μέγεθος πρέπει να τελειώνει με ένα επίθημα M ή G για να υποδηλώνει megabyte και gigabyte, αντίστοιχα. Η χρήση αυτής της επιλογής μπορεί να μειώσει το αποτύπωμα μνήμης των διεργασιών εργασίας PHP-FPM, καθώς οι ίδιες συμβολοσειρές θα αποθηκευτούν στη μνήμη μόνο μία φορά και μπορούν να χρησιμοποιηθούν από όλες τις διεργασίες εργασίας.

Βελτιστοποίηση εφαρμογών ακέραιος αριθμός

Επίπεδο βελτιστοποίησης. Το Zero απενεργοποιεί τη βελτιστοποίηση. Όσο υψηλότερη είναι αυτή η τιμή, τόσο πιο επιθετική βελτιστοποίηση θα χρησιμοποιηθεί. Μην περιμένετε μεγάλη ώθηση στην ταχύτητα. Αυτή είναι η πειραματική λειτουργία.

Apc.num_files_hint ακέραιος αριθμός

Υπόδειξη για τον αριθμό των μοναδικών αρχείων που χρησιμοποιούνται στον ιστότοπό σας. Ορίστε στο μηδέν ή μην προσδιορίσετε καθόλου εάν δεν είστε σίγουροι. Αυτή η ρύθμιση είναι χρήσιμη όταν έχετε πολλές χιλιάδες αρχεία.

Apc.user_entries_hint ακέραιος αριθμός apc.file_update_protection ακέραιος αριθμός

Όταν ένα αρχείο τροποποιείται εν κινήσει, πρέπει να γίνει ατομικά. Δηλαδή, πρώτα πρέπει να γραφτεί σε ένα προσωρινό αρχείο και μετά να μετακινηθεί ( mv) στη θέση στόχο του. Πολλοί επεξεργαστές κειμένου cp, πίσσακαι άλλοι όχι. Αυτό μπορεί να κάνει το αρχείο να ζητηθεί (και να αποθηκευτεί προσωρινά) τη στιγμή που γράφεται. Σύνθεση apc.file_update_protectionορίζει την καθυστέρηση προσωρινής αποθήκευσης για ολοκαίνουργια αρχεία. Η προεπιλογή είναι 2 δευτερόλεπτα. Αυτό σημαίνει ότι εάν η χρονική σήμανση τροποποίησης αρχείου ( mtime) λέει ότι αν έχουν περάσει λιγότερο από 2 δευτερόλεπτα από την τροποποίηση του αρχείου, δεν θα αποθηκευτεί προσωρινά. Ένα άτυχο άτομο που προσπαθεί να αποκτήσει πρόσβαση σε ένα μισο αποθηκευμένο αρχείο θα παρατηρήσει περίεργη συμπεριφορά, αλλά τουλάχιστον δεν θα διαρκέσει πολύ. Εάν όλα τα αρχεία διακομιστή ιστού θα ενημερωθούν ατομικά, χρησιμοποιώντας μεθόδους όπως π.χ rsync(το οποίο ενημερώνεται σωστά), τότε αυτή η συμπεριφορά μπορεί να απενεργοποιηθεί ορίζοντας αυτήν την παράμετρο στο μηδέν. Εάν το σύστημα είναι υπερφορτωμένο I/O, τότε ορισμένες ενημερώσεις ενδέχεται να διαρκέσουν περισσότερο από δύο δευτερόλεπτα και αυτή η ρύθμιση θα πρέπει να αυξηθεί ανάλογα.

Apc.enable_cli ακέραιος αριθμός

Περισσότερα για δοκιμή και εντοπισμό σφαλμάτων. Αυτή η ρύθμιση ενεργοποιεί το APC για την έκδοση CLI της PHP. Σε κανονική λειτουργία, η εκτέλεση ενός APC που θα δημιουργεί, θα συμπληρώνει και θα καταστρέφει τη μνήμη cache κάθε φορά που εκτελείτε ένα σενάριο στην κονσόλα δεν είναι η καλύτερη ιδέα. Αλλά για σκοπούς δοκιμής και εντοπισμού σφαλμάτων, μπορείτε εύκολα να ενεργοποιήσετε το APC για CLI.

Apc.max_file_size ακέραιος αριθμός

Δεν αποθηκεύει προσωρινά αρχεία μεγαλύτερα από αυτήν τη ρύθμιση. Η προεπιλογή είναι 1M.

Apc.stat ακέραιος αριθμός

Να είστε προσεκτικοί όταν αλλάζετε αυτήν τη ρύθμιση. Είναι ενεργοποιημένο από προεπιλογή, αναγκάζοντας το APC να ελέγχει τα αρχεία σεναρίου σε κάθε αίτημα για να δει αν έχουν τροποποιηθεί. Εάν έχουν αλλάξει, θα μεταγλωττιστούν εκ νέου και θα αποθηκευτούν ξανά στην προσωρινή μνήμη. Εάν αυτή η ρύθμιση είναι απενεργοποιημένη, τότε το APC δεν θα εκτελέσει τέτοιο έλεγχο και εάν το αρχείο έχει ήδη αποθηκευτεί στην προσωρινή μνήμη και στη συνέχεια έχει αλλάξει, τότε η νέα έκδοση δεν θα μπει στη μνήμη cache. Για επανασύνδεση, θα χρειαστεί να κάνετε επανεκκίνηση του διακομιστή web. Σημειώστε ότι οι διακομιστές ιστού που έχουν ρυθμιστεί να χρησιμοποιούν το FastCGI ενδέχεται να μην εκκαθαρίσουν την προσωρινή μνήμη κατά την επανεκκίνηση. Σε περιβάλλοντα παραγωγής όπου οι αλλαγές αρχείων είναι σπάνιες, η απενεργοποίηση αυτής της επιλογής μπορεί να βελτιώσει σημαντικά την απόδοση.

Για αρχεία που φορτώνονται μέσω του Συμπεριλαμβανόμενου/Απαιτούμενου, αυτή η επιλογή λειτουργεί άψογα, αλλά να γνωρίζετε ότι όταν συμπεριλαμβάνεται ένα αρχείο με σχετική διαδρομή (στο Unix, αυτή είναι οποιαδήποτε διαδρομή που δεν ξεκινά με /), το APC θα ελέγχει για μοναδικότητα. Εάν χρησιμοποιούνται απόλυτες διαδρομές, το APC θα παραλείψει αυτόν τον έλεγχο και θα χρησιμοποιήσει την απόλυτη διαδρομή ως μοναδικό αναγνωριστικό αρχείου.

Apc.write_lock boolean

Σε διακομιστές με μεγάλη φόρτωση, κατά την εκκίνηση του διακομιστή ή όταν αλλάζουν πολλά αρχεία ταυτόχρονα, η APC μπορεί να προσπαθήσει να μεταγλωττίσει και να αποθηκεύσει προσωρινά το ίδιο αρχείο πολλές φορές ταυτόχρονα. Ένα κλείδωμα εγγραφής διασφαλίζει ότι μόνο μία διεργασία θα επιχειρήσει να μεταγλωττίσει και να αποθηκεύσει προσωρινά ένα μη αποθηκευμένο αρχείο. Άλλες διεργασίες που πρέπει να χρησιμοποιήσουν αυτό το αρχείο θα χρησιμοποιήσουν τη μη αποθηκευμένη στην προσωρινή μνήμη έκδοση αντί να περιμένουν να εμφανιστεί στην κρυφή μνήμη.

Apc.report_autofilter boolean

Καταγράφει τυχόν δέσμες ενεργειών που εξαιρέθηκαν από την προσωρινή αποθήκευση λόγω προβλημάτων πρώιμης ή καθυστερημένης σύνδεσης.

Apc.serializer σειρά

Λέει στην APC να χρησιμοποιήσει σειριοποιητή τρίτου μέρους.

Apc.include_once_override boolean

Βελτιστοποιεί τις κλήσεις περιλαμβάνει_μια φοράκαι απαιτείται_μια φοράγια να αποτρέψετε ακριβές κλήσεις συστήματος.

Προσοχή

Αυτή η λειτουργικότητα είναι ΠΕΙΡΑΜΑΤΙΚΟΣ. Η συμπεριφορά αυτής της οδηγίας, το όνομά της και η τεκμηρίωσή της ενδέχεται να αλλάξουν χωρίς προειδοποίηση σε μελλοντικές εκδόσεις του APC. Χρησιμοποιήστε το με δική σας ευθύνη.

Apc.rfc1867 boolean

Το RFC1867 File Upload Progress Hook είναι διαθέσιμο μόνο σε APC όταν έχει κατασκευαστεί με PHP 5.2.0 και νεότερη έκδοση. Εάν είναι ενεργοποιημένο, οποιοδήποτε αρχείο μεταφορτώνεται στον διακομιστή και περιέχει στη μορφή, πριν από το πεδίο με το αρχείο, το πεδίο με το όνομα APC_UPLOAD_PROGRESS, θα αναγκάσει το APC να δημιουργήσει αυτόματα μια προσαρμοσμένη καταχώρηση προσωρινής μνήμης της φόρμας upload_ κλειδί, όπου κλειδίείναι η τιμή του πεδίου APC_UPLOAD_PROGRESS.

Θυμηθείτε ότι το κρυφό πεδίο APC_UPLOAD_PROGRESSπρέπει να πάει στο πεδίο με το αρχείο, διαφορετικά η εργασία θα είναι λανθασμένη.

Λάβετε υπόψη ότι η παρακολούθηση λήψης αρχείου είναι μη ασφαλής ως προς το νήμα, επομένως εάν εμφανιστεί ένα νέο με το ίδιο κλειδί κατά την πρώτη λήψη, το πρώτο θα σταματήσει να παρακολουθεί.

σημειώστε ότι τιμήθα είναι διαθέσιμο μόνο όταν ολοκληρωθούν όλες οι τρέχουσες λήψεις.

Παράδειγμα Beispiel #1 apc.rfc1867

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

Το αποτέλεσμα της εκτέλεσης αυτού του παραδείγματος θα είναι κάπως έτσι:

Πίνακας ( => 1142543 => 1142543 => 1828068.8 => δοκιμή => αρχείο => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix σειρά

Το πρόθεμα κλειδιού για χρήση στην καταχώριση προσωρινής μνήμης χρήστη που δημιουργήθηκε από τη λειτουργία παρακολούθησης προόδου λήψης rfc1867.

Apc.rfc1867_name σειρά

Καθορίζει ένα όνομα για ένα πεδίο κρυφής φόρμας που θα ενεργοποιήσει τη διαδικασία μεταφόρτωσης APC και θα καθορίσει το επίθημα κλειδιού προσωρινής μνήμης χρήστη.

Apc.rfc1867_freq σειρά

Η συχνότητα με την οποία θα ενημερώνεται η καταχώριση χρήστη στην κρυφή μνήμη κατά τη λήψη του αρχείου. Μπορεί να καθοριστεί τόσο ως ποσοστό όσο και προσδιορίζοντας το μέγεθος σε byte. Μπορείτε να χρησιμοποιήσετε επιθήματα αν θέλετε. "κ", "Μ"και "σολ"(χωρίς διάκριση πεζών-κεφαλαίων) για kilobyte, megabyte και gigabyte, αντίστοιχα. Εάν οριστεί στο μηδέν, οι ενημερώσεις θα πραγματοποιηθούν όσο το δυνατόν γρηγορότερα, αλλά αυτό μπορεί να επιβραδύνει τη λήψη.

Apc.rfc1867_ttl ακέραιος αριθμός

TTL για εγγραφές rfc1867.

Apc.localcache boolean

Ενεργοποιεί μια μη αποκλειστική σκιώδη προσωρινή μνήμη τοπικής διεργασίας, η οποία μειώνει τον αριθμό των κλειδωμάτων κατά τη διάρκεια της εγγραφής στην κρυφή μνήμη.

Apc.localcache.size ακέραιος αριθμός

Το μέγεθος της τοπικής κρυφής μνήμης σκιωδών διεργασιών θα πρέπει να είναι αρκετά μεγάλο, περίπου το μισό του apc.num_files_hint .

Apc.coredump_unmap boolean

Επιτρέπει στο APC να παρεμποδίζει σήματα όπως το SIGSEGV που γράφει ένα coredump όταν δίνεται. Όταν ληφθούν αυτά τα σήματα, το APC θα προσπαθήσει να ελευθερώσει όλη την κοινόχρηστη μνήμη έτσι ώστε να μην περιλαμβάνεται στο coredump. Αυτή η ρύθμιση μπορεί να αυξήσει τη σταθερότητα του συστήματος όταν έχει ληφθεί ένα κρίσιμο σήμα και το APC έχει ρυθμιστεί να χρησιμοποιεί μεγάλη ποσότητα μνήμης.

Προσοχή

Αυτή η πιθανότητα είναι δυνητικά επικίνδυνη. Η απελευθέρωση τμημάτων κοινής μνήμης όταν λαμβάνεται ένα κρίσιμο σήμα μπορεί να οδηγήσει σε απρόβλεπτη συμπεριφορά.

Σχόλιο:

Αν και ορισμένοι πυρήνες παρέχουν τη δυνατότητα να αγνοούνται ορισμένα τμήματα κοινόχρηστης μνήμης κατά τη σύνταξη ενός βασικού αρχείου, αυτές οι υλοποιήσεις μπορούν επίσης να αγνοήσουν σημαντικά τμήματα μνήμης, όπως τον πίνακα αποτελεσμάτων του Apache.

apc.stat_ctime ακέραιος αριθμός

Έλεγχος σε σχέση με το ctime για την αποφυγή προβλημάτων που προκαλούνται από προγράμματα όπως το svn ή το rsync, διασφαλίζοντας ότι το inode δεν έχει αλλάξει από την τελευταία συλλογή στατιστικών στοιχείων. Συνήθως το APC ελέγχει μόνο το mtime.

Apc.canonicalize bool

Εάν είναι απενεργοποιημένη, τότε οι σχετικές διαδρομές μετατρέπονται σε κανονικές σε λειτουργία χωρίς κατάσταση. Εάν είναι ενεργοποιημένο, τα αρχεία που συνδέονται μέσω του περιτυλίγματος ροής δεν θα αποθηκευτούν προσωρινά, επειδή realpath()δεν υποστηρίζει περιτυλίγματα ροής.

Apc.preload_path σειρά

Προαιρετικός. Καθορίζει τη διαδρομή που χρησιμοποιείται από το APC για τη φόρτωση δεδομένων προσωρινής αποθήκευσης κατά την εκκίνηση.

Apc.use_request_time bool

Χρησιμοποιήστε την ώρα έναρξης ερωτήματος SAPI για το TTL.

Apc.file_md5 bool

Γράψτε md5 hashes αρχείων.

Apc.lazy_functions ακέραιος αριθμός

επιτρέπει τεμπέλης φόρτωσηλειτουργίες.

Apc.lazy_classes ακέραιος αριθμός

Ενεργοποιεί τη φόρτωση τεμπέλης τάξης.