随着业务需求的增长,传统的PHP-FPM(FastCGI Process Manager)模式在处理高并发、长连接等场景时逐渐显露出局限性
推荐工具:linux批量管理工具
这时,Workman作为一款高性能的PHP Socket服务器框架,凭借其异步非阻塞IO、资源占用低、支持高并发等优势,成为了解决这些问题的利器
推荐工具:一键关闭windows 自动更新、windows defender(IIS7服务器助手)
本文将详细介绍如何在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