thinkphp5日志文件权限的问题
发布于:2021-1-5 11:32 作者:song100e 浏览:33 分类:ThinkPHP5如果是由 www 用户创建的 log 文件,不会出任何问题。但是如果是先由 root 用户创建的 log 文件,然后再到 www 用户角色去写,就会出问题了。因为一般默认创建的 log 文件的权限是 -rw-r--r-, 也就是 www 没有权限去写入 root 用户创建的 log 文件。网上的方法大体就是像下面代码一样在 mkdir 的时候修改目录的权限。但是只能修改文件夹的权限,并没有修改文件夹下具体的 .log 文件的权限。
PHP8 正式发布稳定版
发布于:2020-11-27 13:52 作者:song100e 浏览:59 分类:PHP其中最核心的当属即时编译JIT了。
关于 excel 导入手机号提取时被自动加上多余空万国码的问题
发布于:2020-11-24 8:51 作者:song100e 浏览:40 分类:PHP最近在做一个 excel 导入功能,通过phpexcel读取到的数据请求第三方接口,结果提示手机号码不正确,检查请求日志才知原来传递参数编码有问题,日志如下(部分已删除):
请求时间:2020-11-23 18:01:07
响应结果:url:https://xxxx.cn/v1/member/create-member-info?app_id=7727208a
data:{"mobile":"\u202d15677387000\u202c","password":"111111","source":"686"}
return:{"state":false,"code":0,"msg":"手机号格式不正确","data":""}
time:0.5885968208312988
网上一查原来别人也遇到过类似问题,通过去除特殊编码修正手机号码, 网上是java代码,转成php代码如下:
/** * @desc 去除特殊编码,修正手机号 */ function trimPhone($phone){ $tempPhone = ''; for ($i=0; $i<strlen($phone); $i++){ if(ord($phone[$i]) >= 48 && ord($phone[$i]) <= 57){ $tempPhone .= $phone[$i]; } } return $tempPhone; }
MySQL sum if 案例
发布于:2020-11-16 13:40 作者:song100e 浏览:45 分类:MySQLSUM(IF(`hosts`.state = 0, 1, 0)) AS hostNomal ,这个语句,当 hosts.state 的值为 0 时,和加 1,不为 0 时,和加 0。类似于程序里的三元表达式。
《大型网站技术架构》
发布于:2020-9-22 8:18 作者:song100e 浏览:66 分类:人丑就要多读书
本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。
本书不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经理、项目经理、测试运维人员等了解网站技术架构的基础概念;还可供包括企业系统开发人员在内的各类软件开发从业人员借鉴,了解大型网站的解决方案和开发理念。
Linux 监测进程脚本
发布于:2020-9-11 8:43 作者:song100e 浏览:68 分类:PHP在某些情况下,如系统负载过大 swoole 无法申请到内存而挂掉、swoole 底层发生段错误、Server 占用内存过大被内核 Kill,或者被某些程序误杀。那 websocket-server 将无法提供服务,导致业务中断,公司收入出现损失。
有一个非常有效并且在 BAT 等大型公司常用的方案是 crontab 重启监控。
原理是每 1 分钟执行一次 shell 脚本,检测 swoole 的 websocket-server 进程是否存活,如果存在则跳过。如果发现主进程已经挂掉,则执行 restart 逻辑,先 kill 掉所有残留的子进程,然后重新启动 Server。
在系统的crontab中加入:
*/1 * * * * /data/script/check_socket.sh
CentOS7 开机自启动 Redis6
发布于:2020-9-11 8:42 作者:song100e 浏览:77CentOS 7 以上是用 Systemd 进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。Systemd 服务文件以 .service 结尾,比如现在要建立 redis 为开机启动,如果用 yum install 命令安装的,yum 命令会自动创建 redis.service 文件,直接用命令 systemcel enable redis.service 设置开机启动即可。
CentOS7 安装 Redis6
发布于:2020-9-11 8:41 作者:song100e 浏览:73随着 Redis6 发布, 终于迎来了新的特性,那就是多线程!本人之前一直使用5的老版本。
1,下载。wget http://download.redis.io/releases/redis-6.0.7.tar.gz
2,解压。tar -zxvf redis-6.0.7.tar.gz
3,移动目录:mv redis-6.0.7 /usr/local/redis6
4,编译: make
5,出错,需要升级 gcc 版本
...
tp5 使用注意和规避点
发布于:2020-7-17 14:34 作者:song100e 浏览:791,有时候我们提交的时候传的是带 html, 可接收到的是去除掉 html 标签的内容。
//获取当前请求的所有变量(原始数据) $request = $this->request->param(false);
2,find_in_set
$where[] = 'find_in_set('.$positionId.',position) '; $where[] = ['exp','find_in_set('.$positionId.',position)'];