WEBMAN常用

 ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

ps [options] [--help]

查找指定进程格式:

ps -ef | grep 进程关键字

参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程

au(x) 输出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:

D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

结束进程

kill -9 进程PID

lsof(list open files)是一个列出当前系统打开文件的工具。

lsof 查看端口占用语法格式:

lsof -i:端口号
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

lsof输出各列信息的意义如下: 

COMD: 进程的名称 PID: 进程标识符
USER: 进程所有者
FD: 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE: 文件类型,如DIR、REG等
DEVICE: 指定磁盘的名称
SIZE:文件的大小
IODE: 索引节点《文件在磁盘上的标识 
IAE: 打开文件的确切名称

netstat

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号
netstat -ntlp   //查看当前所有tcp端口
netstat -ntulp | grep 80   //查看所有80端口使用情况
netstat -ntulp | grep 3306   //查看所有3306端口使用情况
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名

格式化小数不四舍五入

/**
 * Notes: 格式化小数
 * User: Remain Unruffled
 * Date: 2023/9/13 17:05
 * @param float $num 要格式化数字
 * @param int $decimal 保留位数
 * @return string
 */
function format(float $num = 0, int $decimal = 6){
    $res = (string)floor($num * 10 ** $decimal) / 10 ** $decimal;
    $res = number_format($res, $decimal, '.', '');
    return $num ? str_pad($res,$decimal,'0',STR_PAD_RIGHT) :'0.00';
}

格式化小数四舍五入

/**
 * Notes: 格式化小数
 * User: Remain Unruffled
 * Date: 2023/9/13 17:05
 * @param float $num 要格式化数字
 * @param int $decimal 保留位数
 * @return string
 */
function format($num = 0,$decimal = 2){
	return $num ? sprintf("%.".$decimal."f",$num):'0.00';
}

检查禁用函数

脚本检查

curl -Ss https://www.workerman.net/webman/check | php

解除禁用

执行脚本

curl -Ss https://www.workerman.net/webman/fix-disable-functions | php

手动解除

stream_socket_server
stream_socket_client
pcntl_signal_dispatch
pcntl_signal
pcntl_alarm
pcntl_fork
posix_getuid
posix_getpwuid
posix_kill
posix_setsid
posix_getpid
posix_getpwnam
posix_getgrnam
posix_getgid
posix_setgid
posix_initgroups
posix_setuid
posix_isatty
proc_open
proc_get_status
proc_close
shell_exec

数据库查询

查询出某个字段所有数据转为一维数组

Db::table('pic_link')->pluck('id')->toArray();

批量更新数据

$inbill = [
    ['id' => 1, 'title' => '收益', 'number' => 100],
    ['id' => 2, 'title' => '支付', 'number' => 50],
    ['id' => 3, 'title' => '花费', 'number' => 20],
];

$uniqueKey = 'id';

Db::table('user')->upsert($inbill, $uniqueKey, ['title', 'number']);

tinymce文本编辑器图片上传回显

D:\phpstudy_pro\WWW\Qianyi\OneYuan\oneyuanapi\plugin\admin\public\component\pear\module\tinymce\tinymce.js
第27行开始
            if (res[this.response.statusName] == this.response.statusCode.ok) {
                succFun(res[this.response.dataName]);
            } else {
                failFun(res[this.response.msgName]);
            }
改为
            if (res.code == 0) {
                succFun(res.data.url);
            } else {
                failFun(res.msg);
            }
和后台返回数据一至

支付宝支付

插件地址、安装

https://packagist.org/packages/riverslei/payment

composer require "riverslei/payment:*"

案例

报错net::ERR_HTTP2_PROTOCOL_ERROR 200 

 反向代理配置

proxy_set_header Connection $connection_upgrade;

改为

proxy_set_header Connection "Keep-Alive";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值