编译安装php7.4
编译安装命令记录
编译安装命令记录
记录一下啊使用php反射特性来记录操作日志
``` shell
docker export container_name -o container_name.tar
docker import ./container_name.tar test/ubuntu:v1.0
docker container inspect
docker save -o fedora-all.tar fedora
docker load
docker images
docker ps -a
docker run -it -v /var/www/workspace:/var/www/workspace -p 8989:8989 –name new_name images_name /bin/bash
–restart=always 自启动
#生成镜像
docker commit -a shenmi -m php7.4-fpm php7.4-fpm wx/php:7.4.33-fpm
docker run –privileged=true –name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /usr/local/docker_data/mysql/data:/var/lib/mysql -v /usr/local/docker_data/mysql/conf:/etc/mysql/ -v /usr/local/docker_data/mysql/logs:/var/log/mysql mysql:5.7
发现nginx错误日志里写满了connect() failed (111: Connection refused) while connecting to upstream,但是请求正常,php-fpm也正常,查询后找到原因:
::1指的是本地ipv6地址
proxy_pass中如果是localhost则会转发给ipv4和ipv6,所以会出现上面的错误日志;
改成127.0.0.1问题解决。
./nginx -s reload
Socket是使用unix domain socket连接套接字/dev/shm/PHP-cgi.sock(很多教程使用路径/tmp,而路径/dev/shm是个tmpfs,速度比磁盘快得多),在服务器压力不大的情况下,tcp和socket差别不大,但在压力比较满的时候,用套接字方式,效果确实比较好。
那一天我二十一岁,在我一生的黄金时代。我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。
后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。
可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。
每60秒会抛出Redis::__call failed, because read error on connection异常
开始设置ini_set(‘default_socket_timeout’, -1) 没有解决问题,default_socket_timeout是socket流的超时参数,即socket流从建立到传输再到关闭整个过程必须要在这个参数设置的时间以内完成,如果不能完成,那么PHP将自动结束这个socket并返回一个警告。这个参数也会影响file_get_content等方法。
最后设置OPT_READ_TIMEOUT为-1解决。
出现该问题的原因是poll设置接收超时所致,这个超时默认设置60s
1 | <?php |
使用tp6框架的queue队列时,如果执行时间超过60s,进程会自动kill掉。
设置参数timeout=0 解决
php think queue:work –queue queuename –sleep 0 –timeout 2048
部分参数记录
–memory 128 //该进程允许使用的内存上限,以 M 为单位
–sleep 3 //如果队列中无任务,则sleep多少秒后重新检查(work+daemon模式)或者退出(listen或非daemon模式)
–timeout 60 //创建的work子进程的允许执行的最长时间,以秒为单位
–delay 0 //如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0