分类 PHP 下的文章

使用brew安装nginx
考虑加sudo
安装:brew install nginx
启动:brew services start nginx
重启:brew services restart nginx
停止:brew services stop nginx
查看:cat usr/local/etc/nginx/nginx.conf
编辑:vi usr/local/etc/nginx/nginx.conf

PHP查看扩展

php -m

查看具体扩展情况:

php --ri redis

查找配置文件

php -i |  grep ini 



swoole

php扩展安装查看

php -m

查看具体某个扩展的配置信息

php --ri swoole

查看进程端口占用

netstat -ntlp

HTTP server

server = new Swoole\Http\Server(IP,port)

超全局变量的失效(多个协程 进程隔离 $globe 进程间共享)
使用$resquest 获取相关信息

TCP server

server = new Swoole\Server(IP,port)

连接 Content (func(server , fd))

数据接收 Recevie (func(server,fd,rid,data)){

​ $server->send(fd,"xxx")

}

关闭 Close (func(server , fd))

测试tcp 连接

Telnet IP:port

UDP server

server = new Swoole\Server(IP,port, SWOOLE_PROCESS,SWOOLE_SOVK_UDP)

Packet(server,data,clientInfo){

server->Sendto(clientInfo[IP],clientInfo[port],"xxxx")

}

测试udp 连接

nc -vu IP port

协程与线程:
一时间只有一个协程在进行,单个请求起一个线程,线程内是阻塞执行,遇到IO操作切换其他线程工作。
因此,协程下开发是异步非阻塞的
协程与线程很像,协程由用户代码来调度和管理,而不是由操作系统内核来进行调度,线程可以同时有多个进行

注意事项
4.1 之后提供了一键协程化的方法 \Swoole\Runtime::enableCoroutine(),只需在使用协程前运行这一行代码,Swoole 会将 所有使用 php_stream 进行 socket 操作均变成协程调度的异步 I/O
$_全局变量因为在同个worker下共享,同一时间多个协程读写会出现混淆数据等问题
global 和 静态变量 因为持久化原因不能销毁
协程周期,协程上下文context应用