如何在 PHP 8.3 上編譯安裝 Event 事件驅動擴展庫?
PHP Event 擴展是 PHP 的一個擴展庫,用于處理事件驅動的編程。它提供了一種機制,使開發者能夠創建、監聽和處理事件。事件是一種在特定條件下觸發的通知或動作,可以在應用程序的不同部分之間進行通信和交互。
PHP Event 擴展提供了一組函數和類,用于創建事件循環、注冊事件監聽器、觸發事件等。它基于 libevent 庫,一個事件通知庫,可以在不同的操作系統和網絡環境中使用。
使用 PHP Event 擴展,您可以編寫基于事件的應用程序,例如異步網絡服務器、實時通信應用、長時間運行的任務等。它可以幫助您提高應用程序的性能和響應能力,減少資源消耗,并簡化代碼結構。
在當前的服務器上,面對的主要問題就是要能處理大量的連接。而通過libevent這個網絡庫,我們就可以調用它的API來很好的解決上面的問題。
依賴
- libevent庫: libevent 是一個輕量級的基于事件驅動的高性能的開源網絡庫,并且支持多個平臺,對多個平臺的I/O復用技術進行了封裝,當我們編譯庫的代碼時,編譯的腳本將會根據OS支持的處理事件機制,來編譯相應的代碼,從而在libevent接口上保持一致。
- OpenSSL庫: OpenSSL 項目開發和維護OpenSSL軟件-一個強大的,商業級的,功能齊全的工具包,用于通用密碼學和安全通信。該項目的技術決策由OpenSSL技術委員會(OTC)管理,項目治理由OpenSSL管理委員會(OMC)管理。
安裝
libevent 安裝
查看是否已經安裝
ls -al /usr/lib | grep libevent
下載
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
解壓
tar -zxvf libevent-2.1.12-stable.tar.gz
配置安裝目錄
./configure --prefix=/usr/local/libevent-2.1.12
編譯安裝
make && make install
查看是否安裝成功
$ ls -al /usr/local/ | grep libevent
drwxr-xr-x 5 root root 4096 Mar 17 2023 libevent-2.1.12
PHP event 安裝
官方庫地址:http://pecl.php.net/package/event
圖片
下載最新版本
wget http://pecl.php.net/get/event-3.1.0.tgz
解壓
tar -zxvf event-3.1.0.tgz
生成 ./configure 配置文件
cd event-3.1.0/
/usr/local/php-8.3.1/bin/phpize
Configuring for:
PHP Api Version: 20230831
Zend Module Api No: 20230831
Zend Extension Api No: 420230831
配置鏈接庫以及指定libevent安裝目錄
./configure --with-php-cnotallow=/usr/local/php-8.3.1/bin/php-config --with-event-libevent-dir=/usr/local/libevent-2.1.12/
指定 libevent 支持庫的目錄路徑 --with-event-libevent-dir
編譯
$ make
安裝
$ sudo make install
Parse /home/www/build/event-3.1.0/php8/php_event.stub.php to generate /home/www/build/event-3.1.0/php8/php_event_arginfo.h
Parse /home/www/build/event-3.1.0/php8/src/../php_event.stub.php to generate /home/www/build/event-3.1.0/php8/src/../php_event_arginfo.h
Installing shared extensions: /usr/local/php-8.3.1/lib/php/extensions/no-debug-non-zts-20230831/
php.ini 添加擴展 event.so
sudo vim /usr/local/php-8.3.1/etc/php.ini
extensinotallow=event.so
命令行檢查是否安裝成功
/usr/local/php-8.3.1/bin/php -m|grep event
event
瀏覽器檢查是否安裝成功
圖片