So installieren Sie die Libevent-Erweiterung für PHP

醉折花枝作酒筹
Freigeben: 2023-03-11 06:24:01
nach vorne
1932 Leute haben es durchsucht

libevent ist eine durch Ereignisse ausgelöste Netzwerkbibliothek, die für verschiedene Plattformen wie Windows, Linux, FreeBSD usw. geeignet ist und intern Systemaufrufe wie Select, Poll, Epoll, Kqueue usw. verwendet, um Ereignismechanismen zu verwalten. Lassen Sie uns mit dem Editor lernen, wie man die Libevent-Erweiterung installiert.

So installieren Sie die Libevent-Erweiterung für PHP

1. Einführung in libevent

libevent ist eine ereignisgesteuerte Netzwerkbibliothek, die für verschiedene Plattformen wie Windows, Linux, FreeBSD usw. geeignet ist und intern Systemaufrufe wie Select, Poll, Epoll usw. verwendet kqueue zur Verwaltung von Ereignismechanismen. Libevent ist plattformübergreifend und bietet eine außergewöhnliche Leistung. Es ist ereignisgesteuert wie Nodejs; offizielle Website: http://libevent.org/

Die neueste stabile Version

https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar .gz

Hauptmodule:

Ereignisverarbeitungs-Framework

Event-Engine-Modul

Pufferverwaltungsmodul

Signalverarbeitungsmodul

PHP selbst unterstützt kein Multithreading und PHP kann den Parallelitätsmechanismus nicht gut implementieren. Mit den von Pecl bereitgestellten Funktionen pcntl (Prozesssteuerung), Libevent-Erweiterung, Socket-Paket und Stream-System können Sie mithilfe von PHP problemlos leistungsstarke Netzwerkanwendungen mit hoher Parallelität entwickeln.

Einfaches Anwendungsbeispiel: Pcntl fork n Workers. Nachdem der Master-Prozess die Anforderung erhalten hat, werden die Verarbeitungsinformationen an das Worker-Programm gesendet, und der Worker sendet sie nach der Verarbeitung an den Client zurück. Der Masterprozess kann die Anzahl der Worker, also die Größe von n, entsprechend dem Umfang der Parallelität festlegen, die Daten der Worker überwachen und bei unzureichender Anzahl weitere Prozesse starten. Dasselbe wie das Nginx-Prinzip.

Anhang: PHP-Netzwerkprogrammier-Framework

http://code.google.com/p/swoole/downloads/list

2. Warum Libevent lernen? Man kann sagen, dass der HTTP-Server eine klassische Anwendung von Libevent ist. Die Standard-Schreibmethode von http finden Sie bei libevent. Der nicht blockierende HTTP-Server ist die Verflechtung von Socket-Verarbeitung und HTTP-Protokollverarbeitung.

Das Erlernen von Libevent kann Ihnen helfen, Ihre Programmierkenntnisse zu verbessern. Zusätzlich zur Netzwerkprogrammierung verfügt der Code von Libevent über viele nützliche Entwurfstechniken und grundlegende Datenstrukturen, wie z. B. das Ausblenden von Informationen, Funktionszeiger, polymorphe Unterstützung in C-Sprache, verknüpfte Listen und Heap usw. , wird Ihnen helfen, Ihre eigenen Programmierkenntnisse zu verbessern [1].

Drei Arten der Anforderungsverarbeitung:

    Verbindungseingabe verzweigt einen neuen Prozess
  • Verbindungseingabe pthread_create
  • Verbindungseingabe wirft ein ereignisbasiertes Array; Hauptprozess erledigt nicht blockierende Dinge;
  • 3. Installation des PHP-Libevent-Erweiterungsmoduls

Curl –O https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz

Tar –zxvf libevent-2.0.16-stable.tar.gz
Cd libevent-2.0.16-stable
/usr/local/php/bin/phpize
./configure
make
make install
vi /usr/local/php/etc/php.ini
extension_dir=””;
extension=libevent.so
php –m | grep lib
Nach dem Login kopieren

Erfolgreich installiert

Empfohlenes Lernen:

php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo installieren Sie die Libevent-Erweiterung für PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:imooc.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage