centos6.8 服务器
php7 源码安装
下载php7
wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror
解压
tar -xvf php7.tar.gz
进入目录
cd php-7.1.1
安装依赖包
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-deve
5.编辑配置
./configure --prefix=/usr/local/php
make
make install
6 配置环境变量
vi /etc/profile
末尾追加
PATH=$PATH:/usr/local/php/bin
export PATH
执行命令使得生效
source /etc/profile
php -v 查看是否安装成功
swoole 安装
下载swoole
解压
tar -unzip swoole.zip
进入swoole
运行/usr/local/php/bin/phpize
会生成 configure shell脚本
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
Installing shared extensions: : /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
这个地址是swoole扩展存放的地址
swoole 下的examples/server 为demo目录
在php.ini 里面配置swoole扩展
cd /usr/local/php/lib/
vim php.ini
编辑
extension = swoole
php -m 查看php扩展
tcp 的使用
在/www/wwwroot/demo/server/tcp.php 下创建
//创建Server对象,监听127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1",9501);
$serv->set([
'worker_num' =>8, //worker进程数 cpu1-4
'max_request'=>10000,
]);
//监听连接进入事件
//$fd 客户端连接的唯一标示
$serv->on('connect',function($serv,$fd,$reactor_id){
echo "Client:{$reactor_id}-{$fd}- connect.\n";
});
//监听数据接收事件
$serv->on('receive',function($serv,$fd,$from_id,$data){
$serv->send($fd,"Server:{$reactor_id} -{$fd}".$data);
});
//监听连接关闭事件
$serv->on('close',function($serv,$fd){
echo"Client:Close.\n";
});
//启动服务器
$serv->start();
启动tcp.php
php /www/wwwroot/demo/server/tcp.php
在同一服务器上另开一个窗口
使用 tenlent 127.0.0.1 9501 进行连接
如果提示 -bash: telnet: command not found
下载 telnet
yum install telnet-server
yum install telnet
安装完成后
service xinetd restart 进行启动
可以看到 另一个窗口显示
表示开启一个进程
连接tcp.php
在/www/wwwroot/demo/client/tcp_client.php 下
//连接swoole tcp 服务
$client = new swoole_client(SWOOLE_SOCK_TCP);
if(!$client->connect("127.0.0.1",9501)){
echo "连接失败";
exit;
}
///php cli 常量、
fwrite(STDOUT,"请输入消息:");
$msg = trim(fgets(STDIN));
// 发送消息给 tcp server 服务器
$client->send($msg);
//接受来自server 的数据
$result = $client->recv();
echo $result;
?>
先开启tcp 然后另起一个窗口开启
php tcp_client.php
会显示请输入消息