隨著業務需求的增長,傳統的PHP-FPM(FastCGI Process Manager)模式在處理高并發、長連接等場景時逐漸顯露出局限性
這時,Workman作為一款高性能的PHP Socket服務器框架,憑借其異步非阻塞IO、資源占用低、支持高并發等優勢,成為了解決這些問題的利器
本文將詳細介紹如何在Linux環境下查看和管理Workman進程,幫助開發者實現對PHP服務的精細監控與高效調優
一、Workman簡介 Workman是一款基于PHP的高性能異步Socket服務器框架,它利用libevent、Swoole等底層庫實現了異步非阻塞IO,極大地提高了服務器的并發處理能力
Workman支持TCP、UDP、UnixSocket等多種協議,適用于實時通訊、游戲服務器、推送服務等多種應用場景
二、Linux環境下安裝Workman 在Linux上部署Workman之前,需要確保系統已經安裝了PHP及其相關擴展
推薦使用PHP 7.1及以上版本,因為新版本在性能和功能上都有所提升
1.安裝Composer: Composer是PHP的依賴管理工具,通過它可以輕松安裝Workman
bash php -r copy(https://getcomposer.org/installer, composer-setup.php); php -r if(hash_file(sha384, composer-setup.php) === your_hash_here) { echo Installer verified; }else { echo Installer corrupt; unlink(composer-setup.php); } echo PHP_EOL; php composer-setup.php php -r unlink(composer-setup.php); sudo mv composer.phar /usr/local/bin/composer 請將`your_hash_here`替換為當前Composer安裝腳本的實際哈希值,該值可從Composer官網獲取
2.安裝Workman: 使用Composer全局安裝Workman
bash sudo composer global require workerman/workerman 安裝完成后,可以在命令行中通過`workerman`命令調用Workman
三、啟動與查看Workman進程 1.編寫Workman服務腳本: 創建一個簡單的Workman服務腳本,例如`start.php`
php use WorkermanWorker; require_once__DIR__ . /vendor/autoload.php; // 創建一個TCP監聽 $worker = new Worker(tcp://0.0.0.0:2346); // 當接收到客戶端連接時執行的回調函數 $worker->onConnect = function($connection) { echo New connectionn; }; // 當接收到客戶端消息時執行的回調函數 $worker->onMessage =function($connection, $data) { $connection->send(Hello . $data); }; // 運行worker Worker::runAll(); 2.啟動Workman服務: 在命令行中運行以下命令啟動服務
bash php start.php start -d `-d`參數表示以守護進程方式運行,這樣服務會在后臺運行,不會占用終端
3.查看Workman進程: 使用Linux系統提供的進程管理命令查看Workman進程
-ps命令: ```bash ps aux | grep workerman ``` 這條命令會列出所有包含“workerman”關鍵字的進程信息
-top/htop命令: `top`和`htop`(如果已安裝)是實時查看系統資源使用情況的工具
在終端中輸入`top`或`htop`,然后按`/`鍵搜索“workerman”可以找到相關進程
-netstat命令: ```bash netstat -tulnp | grep 2346 ``` 這條命令會顯示監聽在指定端口(這里是2346)上的進程信息,包括PID
四、Workman進程管理 1.停止Workman服務: 使用`stop`命令停止服務
bash php start.php stop