


Detaillierte Erläuterung der Konfigurations- und Nutzungsschritte des PHP-Beschleunigers eAccelerator
Dieses Mal werde ich Ihnen die Konfigurations- und Verwendungsschritte des PHP-Beschleunigers eAccelerator ausführlich erläutern. Was sind die Vorsichtsmaßnahmen für die Konfiguration und Verwendung des PHP-Beschleunigers eAccelerator? Fall, werfen wir einen Blick darauf.
Um die Leistung des Systems besser zu verbessern, sollten Sie über die Optimierung von PHP nachdenken. Ich war in den letzten zwei Jahren mit MMCache und eAccelerator in Berührung gekommen, und eAccelerator gefällt mir auch sehr gut .
Teilen Sie einige Dokumente zur eAccelerator-Konfiguration und -Optimierung.
1. Einführung in eAccelerator
1. Hintergrund
eAccelerator ist kostenlos und offen Quell-PHP Es handelt sich um ein Projekt zur Beschleunigung, Optimierung, Kompilierung und dynamischen Zwischenspeicherung, das die Leistung von PHP-Skripten verbessern kann, indem die Ergebnisse der PHP-Code-Kompilierung zwischengespeichert werden, wodurch das Problem der PHP-Skript-Kompilierung, das schon immer komplex und weit von uns entfernt war, vollständig gelöst wird . Durch die Verwendung von eAccelerator können Sie die Ausführungsgeschwindigkeit Ihres PHP-Codes optimieren, die Serverlast reduzieren und die Ausführungsgeschwindigkeit von PHP-Anwendungen um das Zehnfache erhöhen.
Das eAccelerator-Projekt entstand im Jahr 2004, als es als Zweig des Turck-MMCache-Projekts vorgeschlagen und entwickelt wurde. Turck MMCache wurde von Dmitry Stogov entwickelt. Es handelt sich um ein sehr hervorragendes PHP-Speicher-Cache-Beschleunigungssystem. Derzeit wird das Projekt noch nicht aktualisiert Die neueste PHP5.x-Unterstützung ist noch nicht verfügbar.
2. Prinzip
eAccelerator erreicht eine effiziente Beschleunigung, indem es den kompilierten PHP-Code im gemeinsamen Speicher zwischenspeichert und ihn direkt aufruft, wenn der Benutzer darauf zugreift. Es ist sehr effizient, von der Erstellung des gemeinsam genutzten Speichers bis zur Suche nach kompiliertem Code. Dateien und Codes, die nicht im gemeinsam genutzten Speicher zwischengespeichert werden können, können von eAccelerator auch auf der Systemfestplatte zwischengespeichert werden.
eAccelerator unterstützt auch die Kompilierung und Interpretation von PHP-Code. Sie können den PHP-Code über das Skript „encoder.php“ kompilieren, um den Code zu schützen, der in einer Umgebung ausgeführt werden muss, in der eAccelerator installiert ist. Der von eAccelerator kompilierte Code kann im Gegensatz zu einigen anderen Kompilierungstools, die dekompiliert werden können, nicht dekompiliert werden, wodurch der Code sicher und effizient wird.
2. eAccelerator-Installation und -Konfiguration
1. Da aAccelerator a Ein großer Teil der API basiert auf Shared Memory und wird daher auf der *nix-Plattform besser unterstützt. Obwohl auch eine Binärversion auf Basis der Windows-Plattform veröffentlicht wurde, werde ich nur Konfigurationen und Anweisungen bereitstellen, die auf der *nix-Plattform basieren Zu den unterstützten Plattformen gehören derzeit Linux, FreeBSD, OpenBSD, Mac OS X, Solaris, AIX und HP-UX.
2. Systemanforderungen
php4 oder php5
- autoconf
- automake
- libtool
- m4
- eAccelerator unterstützt nur die Verwendung von mod_php Oder PHP im Fastcgi-Modus installiert
3. Installation
Besuchen Sie zunächst die offizielle Website von eAccelerator, um die neueste Version des Quellcodepakets herunterzuladen: eaccelerator-0.9. 5-beta.tar.bz2
#tar -zxvf ./eaccelerator-0.9.5-beta2.tar.bz2 #cd eaccelerator-0.9.5-beta2 #export PHP_PREFIX="/usr/local" (把PHP安装目录导入到环境变量,FreeBSD默认是/usr/local) #$PHP_PREFIX/bin/phpize #./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config #make #make instal
4. INI-Dateikonfiguration
Die Installation ist abgeschlossen, beginnen wir mit der Konfiguration der php.ini-Datei zwei Konfigurations- und Aufrufmethoden wie folgt.
Im Zend-Erweiterungsmodus installiert:zend_extension="/usr/local/lib/php/20050922/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"Wenn Sie PHP im Thread-sicheren Modus installiert verwenden, müssen Sie „zend_extension_ts“ verwenden, um „zend_extension“ in der ersten Zeile zu ersetzen.Im PHP-Erweiterungsmodus installieren: (Dies ist die von den meisten verwendeten Methode)
extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
Detaillierte Konfigurationsanweisungen für die Datei php.ini finden Sie im README-Dokument im Quellcodeverzeichnis oder unter das offizielle Dokument: INI-Einstellung
Nach Abschluss der Installationskonfiguration müssen wir endlich das Cache-Verzeichnis erstellen
#mkdir /tmp/eaccelerator #chmod 777 /tmp/eaccelerator
5. Überprüfen Sie die Installationsergebnisse
Greifen Sie über die Browserseite auf phpinfo() zu oder führen Sie php -i aus, um die PHP-Konfigurationsinformationen abzurufen. Wenn Sie Informationen wie die folgenden sehen, ist die Installation erfolgreich.
This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAcceleratorZend Optimizer3.0.1 ist auch auf meinem Computer installiert, daher sehe ich folgende Informationen:
This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator with Zend Extension Manager v1.0.10, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v3.0.1, Copyright (c) 1998-2006, by Zend TechnologiesWenn Sie die Debug-Option von eAccelerator aktivieren, können Sie so etwas sehen aus den Protokollinformationen unten
#tail /var/log/httpd/eAccelerator_log EACCELERATOR hit: "/var/www/toplee.com/blog/index.php" EACCELERATOR hit: "/var/www/toplee.com/blog/wp-blog-header.php" EACCELERATOR hit: "/var/www/toplee.com/blog/wp-config.php" EACCELERATOR hit: "/var/www/toplee.com/blog/wp-settings.php" EACCELERATOR hit: "/var/www/toplee.com/blog/wp-content/plugins/wp-cache/wp-cache-phase1.php"
以上信息表示文件都得到了缓存和命中。
至此,完成了全部的安装和配置,好好享受eAccelerator带给你的惊喜吧,根据Michael的测试,效果的确相当的好。
三、在PHP中可以使用eAccelerator的API开发
1、API和文档说明:
eAccelerator提供了便捷便捷而又稳定的本机缓存实现方式,由于大部分代码实现基于共享内存,所以只能在*nix平台中使用,Windows平台Michael就暂时不知道何时有这方面的支持了。
eAccelerator提供如下的API接口和文件:(下述文件均在源码包的doc/php/目录下)
文件列表:
cache.php dasm.php encoder.php info.php loader.php session.php shared_memory.php
接口列表
array eaccelerator_cached_scripts () void eaccelerator_cache_output (string $key, string $eval_code, [int $ttl = 0]) void eaccelerator_cache_page (string $key, [int $ttl = 0]) void eaccelerator_cache_result (string $key, string $code, [int $ttl = 0]) void eaccelerator_caching (boolean $flag) void eaccelerator_clean () void eaccelerator_clear () array eaccelerator_dasm_file (mixed $filename) mixed eaccelerator_encode (mixed $src, [mixed $prefix = ''], [string $pre_content = ''], [string $post_content = '']) void eaccelerator_gc () mixed eaccelerator_get (string $key) array eaccelerator_info () array eaccelerator_list_keys () void eaccelerator_load () boolean eaccelerator_lock (string $key) void eaccelerator_optimizer (boolean $flag) void eaccelerator_purge () boolean eaccelerator_put (string $key, mixed $value, [int $ttl = 0]) array eaccelerator_removed_scripts () boolean eaccelerator_rm (string $key) void eaccelerator_rm_page (string $key) boolean eaccelerator_set_session_handlers () boolean eaccelerator_unlock (string $key)
有关上述文档详细说明请参考官方文档:API Documents(http://bart.eaccelerator.net/doc/phpdoc/)
下面有部分网友翻译后的接口说明:
eaccelerator_put($key, $value, $ttl=0)
将 $value 以 $key 为键名存进缓存(php4下支持对像类型,看源码好像zend2里不支持了),$ttl 是这个缓存的生命周期,单位是秒,省略该参数或指定为 0 表示不限时,直到服务器重启清空为止。
eaccelerator_get($key) 根据 $key 从缓存中返回相应的 eaccelerator_put() 存进去的数据,如果这项缓存已经过期或不存在那么返回值是 NULL eaccelerator_rm($key) 根据 $key 移除缓存 eaccelerator_gc() 移除清理所有已过期的 key eaccelerator_lock($key) 为 $key 加上锁定操作,以保证多进程多线程操作时数据的同步。需要调用 eaccelerator_unlock($key) 来释放这个锁或等待程序请求结束时自动释放这个锁。
<?php eaccelerator_lock("count"); eaccelerator_put("count",eaccelerator_get("count")+1)); ?> eaccelerator_unlock($key)
根据 $key 释放锁
eaccelerator_cache_output($key, $eval_code, $ttl=0)
将 $eval_code 代码的输出缓存 $ttl 秒,($ttl参数同 eacclerator_put)
例如:
<?php eaccelerator_cache_output('test', 'echo time(); phpinfo();', 30); ?> eaccelerator_cache_result($key, $eval_code, $ttl=0)
将 $eval_code 代码的执行结果缓存 $ttl 秒,($ttl参数同 eacclerator_put),类似 cache_output
例如:
<?php eaccelerator_cache_result('test', ' time() . "Hello";', 30); ?> eaccelerator_cache_page($key, $ttl=0)
将当前整页缓存 $ttl 秒。
例如:
<?php eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30); echo time(); phpinfo(); ?> eaccelerator_rm_page($key)
删除由 eaccelerator_cache_page() 执行的缓存,参数也是 $key
2、PHP代码中使用eAccelerator加速
测试下eAccelerator强大的威力:(该代码在 cli 模式下可能无效)
<?php class test_cache { var $pro = 'hello'; function test_cache() { echo "Object Created!<br>\n"; } function func() { echo ', the world!'; } function now($t) { echo date('Y-m-d H:i:s', $t); } } $tt = eaccelerator_get("test_tt"); if (!$tt) { $tt = new test_cache; eaccelerator_put("test_tt", $tt); echo "no cached!<br>\n"; } else { echo "cached<br>\n"; } echo $tt->pro; $tt->func(); $tt->now(time() + 86400); ?>
另外,据说在著名的vBulletin 3.60Beta版里面已经集成了对eAccelerator的支持。
一段来自vBulletin里面的代码
<?php // ############################################################################# // eAccelerator /** * Class for fetching and initializing the vBulletin datastore from eAccelerator * * @package vBulletin * @version $Revision: 0.1 $ * @date $Date: 2005/06/12 13:14:18 $ */ class vB_Datastore_eAccelerator extends vB_Datastore { /** * Fetches the contents of the datastore from eAccelerator * * @param array Array of items to fetch from the datastore * * @return void */ function fetch($itemarray) { if (!function_exists('eaccelerator_get')) { trigger_error("eAccelerator not installed", E_USER_ERROR); } foreach ($this->defaultitems AS $item) { $this->do_fetch($item); } if (is_array($itemarray)) { foreach ($itemarray AS $item) { $this->do_fetch($item); } } $this->check_options(); // set the version number variable $this->registry->versionnumber =& $this->registry->options['templateversion']; } /** * Fetches the data from shared memory and detects errors * * @param string title of the datastore item * * @return void */ function do_fetch($title) { $data = eaccelerator_get($title); if ($data === null) { // appears its not there, lets grab the data, lock the shared memory and put it in $data = ''; $dataitem = $this->dbobject->query_first(" SELECT title, data FROM " . TABLE_PREFIX . "datastore WHERE title = '" . $this->dbobject->escape_string($title) ."' "); if (!empty($dataitem['title'])) { $data =& $dataitem['data']; $this->build($dataitem['title'], $dataitem['data']); } } $this->register($title, $data); } /** * Updates the appropriate cache file * * @param string title of the datastore item * * @return void */ function build($title, $data) { if (!function_exists('eaccelerator_put')) { trigger_error("eAccelerator not installed", E_USER_ERROR); } eaccelerator_lock($title); eaccelerator_put($title, $data); eaccelerator_unlock($title); } } ?>
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Konfigurations- und Nutzungsschritte des PHP-Beschleunigers eAccelerator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PHPSSIONS CANSTORESTRINGEN, ZUGNALTEN, ARRAYS, ANDOBjekte.1.

TostartaphpSession, useSession_start () atthescript'Sbeginning.1) PlaCEITBEFOREANYOUTPUTTOTHESESSIONSCOOKIE.2) useSsionsforuserDatalikeloginStatusOrShopingCarts

Die Sitzung der Sitzung bezieht sich auf die Generierung einer neuen Sitzungs -ID und die Ungültigmachung der alten ID, wenn der Benutzer sensible Vorgänge bei festgelegten Sitzungsangriffen ausführt. Die Implementierungsschritte umfassen: 1. Erkennen sensibler Vorgänge, 2. Erstellen neuer Sitzungs-ID, 3..

PHP -Sitzungen haben erhebliche Auswirkungen auf die Anwendungsleistung. Zu den Optimierungsmethoden gehören: 1. Verwenden Sie eine Datenbank, um Sitzungsdaten zu speichern, um die Antwortgeschwindigkeit zu verbessern; 2. Reduzieren Sie die Verwendung von Sitzungsdaten und speichern Sie nur die erforderlichen Informationen. 3.. Verwenden Sie einen nicht blockierenden Sitzungsprozessor, um die Parallelitätsfunktionen zu verbessern. 4. Passen Sie die Ablaufzeit der Sitzung an, um Benutzererfahrung und Serverbelastung auszugleichen. 5. Verwenden Sie persistente Sitzungen, um die Anzahl der Les- und Schreibzeiten zu verringern.

PhpSessionsaresServer-Side, whilecookiesareclient-Side.1) SESSIsions Storedataontheserver, Aremoresecure und Handlelargerdata.2) CookieStoredataoneTheClient, AslosenSecure und LimitedInsiesindaSsibilitäts- und -Stasibilitäts- und -Stasibilitäts- und -Anssibilitäts- und -Anssibilitätsporsedataandcookiesefornonsesibel, adailliertes, adailliertes, adailliertes, adailliertes, adailliertes, addiertes-addiertes- und -Staillieren- und -Anssistieren, und -Anssibilitätsporsedaten- und -Sta- und addierta und -Anssibilitäts- und addiertes- und addailliert.

PhpidentifiesAsersSSessionUsingSSessionCookiesAndSessionIDs.1) WHANE Session_Start () iscalled, phpGeneratesAuniqueSessionIDStoredInacookienMamePhpSsidontonTheusers.2) thisidallowStoretrieVessionDataFromtheServer.

Die Sicherheit von PHP -Sitzungen kann durch folgende Maßnahmen erreicht werden: 1. Verwenden Sie Session_regenerate_id (), um die Sitzungs -ID zu regenerieren, wenn sich der Benutzer anmeldet oder eine wichtige Operation ist. 2. Verschlüsseln Sie die Übertragungssitz -ID durch das HTTPS -Protokoll. A. Verwenden Sie Session_save_path (), um das sichere Verzeichnis anzugeben, um Sitzungsdaten zu speichern und Berechtigungen korrekt festzulegen.

PhpSessionFilesArestoredinTHedRectorySpecifiedBySession.save_path, typischerweise/tmponunix-likesystemsorc: \ windows \ temponwindows


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Dreamweaver CS6
Visuelle Webentwicklungstools

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
