首页
关于
Search
1
在投射和录制时显示敏感信息写给TeamViewer,anydesk,向日葵
8,614 阅读
2
sublime 3155-3175 LICENSE
7,910 阅读
3
mysql存储过程&时间累加插入
7,753 阅读
4
永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。
4,486 阅读
5
mysql-workbench中duration fetch的含义
4,460 阅读
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
登录
Search
标签搜索
mysql
curl
grep
journalctl
rename
You can't specify target table
only_full_group_by
Sub-process
警示
dropbox
mtr
curl抓取重定向
floor
intval
ceil
round
pixmap
adwaita
date.utc
gmmktime
五好的Book
累计撰写
194
篇文章
累计收到
31
条评论
首页
栏目
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
页面
关于
搜索到
18
篇与
的结果
2021-12-04
记一次因session文件过多导致服务器node用尽的故事
最近服务器访问量逐步上升,cpu频繁告警,终于到了需要升级的时刻了, 配置已升级了就等待重启生效了。由于有过重启会要半个小时的经历,所以重启都有点担惊受怕,因配置升级,服务器在1分钟内就重启完成了,瞬间cpu占用就下降了。然而故事还没有完,第二天,数据库又搞事情了,cpu告警, 这就轻车熟路了升级数据库, 升级很顺利,告警也解除了,然而看了服务器的各项参数,发现了一项异常, 服务器根目录挂载的分区的node 占用将近100%了, 可用数目一直在减少,立刻行动起来, 因为我们用户头像都存了一份在服务器的,起初我以为是到了该清理头像的时候了, 但是进目录一看, 头像数量不足以导致到这个数量级,然后找看是那个目录占用了大量的node。我把我认为可能的文件夹都用find ./文件夹名称 |wc -l 找了一遍, 最后发现是 php的session存放的目录 存在大量的文件占用了 node。这里其实能更好理解node的意义, 所谓的node其实就是文件,一个文件对应一个node,硬盘的容量有限,存放文件的数量其实也是有限的, 所有文件数量的大小 没有达到硬盘的容量,但是文件数量达到了,照样写不进去内容。找到原因后, 然后马上采取行动,恢复node的数量,判断是 session文件没有及时删除:推测应该是访问量大的时候重启了系统没有自动销毁这些文件, 亦或由于大量的访问由于某种原因,导致了无效session文件的堆积,那么只要删除这些无效的session文件 即可。cd /var/lib/php find ./session/ -cmin +24 -name "sess_*" -and -size 0 -delete > /dev/null 2>&1 find ./session/ -cmin +1440 -name "sess_*" -delete > /dev/null 2>&1 php的session存放的目录定义在php的配置文件里, 可能和我的不一样。如果有缘人遇到一样的问题, 可以酌情修改下。
2021年12月04日
420 阅读
0 评论
0 点赞
2021-09-13
php server_name 和http_host 的区别
今天终于知道这2个的区别了如果你只配置了一个域名,比如 在 config配置文件中 server_name:wuhao.pw那么在$_SERVER[SERVER_NAME] 和 $_SERVER[HTTP_HOST] 的值应该都是 wuhao.pw 但是如果你 config配置文件中server_name:*.wuhao.pw那么这个时候 假设访问的域名是 www.wuhao.pw 区别就显现了$_SERVER[SERVER_NAME] 的值 *.wuhao.pw $_SERVER[HTTP_HOST] 的值则 www.wuhao.pw
2021年09月13日
435 阅读
0 评论
1 点赞
2021-04-08
php中获取curl请求的请求头信息及相应头信息
有时候 做 curl 的时候一直获取不到数据那么可以像浏览器调试 一样看请求的头信息么?curl_setopt($ch,CURLINFO_HEADER_OUT,true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY,true); 设置上述参数curl_exec执行后 $info = curl_getinfo($ch); print_r($info); 即可查看
2021年04月08日
527 阅读
0 评论
0 点赞
2021-03-19
安装 swoole 报的错 Unable to load dynamic library swoole
由于服务器安装了多个php版本,采用官方文档的 安装命令后, 启用模块后发现报了这个错误提示Unable to load dynamic library 'swoole' 折腾过程滤过:最后的解决之道编译对应版本时 一定要执行 make clean 后 再执行 官方的 安装步骤 再然后 就是 编译对应的版本,要指定对应版本的配置文件例如:sudo ./configure --with-php-config=/usr/bin/php-config7.4
2021年03月19日
648 阅读
0 评论
0 点赞
2020-12-13
PHP 的命令行模式
PHP 的命令行模式中 -r 参数的用法 一直莫不请套路,今天终于明白了-r --run 使用该参数可以在命令行内运行单行 PHP 代码。无需加上 PHP 的起始和结束标识符(<?php 和 ?>),否则将会导致语法解析错误。注意:使用这种形式的 PHP 时,应注意避免和外壳环境进行的命令行参数替换相冲突。显示语法解析错误的范例$ php -r "$foo = get_defined_constants();"Command line code(1) : Parse error - parse error, unexpected '='这里的问题在于即使使用了双引号 ",sh/bash 仍然实行了参数替换。由于 $foo 没有被定义,被替换后它所在的位置变成了空字符,因此在运行时,实际被 PHP 读取的代码为:$ php -r " = get_defined_constants();"正确的方法是使用单引号 '。在用单引号引用的字符串中,变量不会被 sh/bash 还原成其原值。$ php -r '$foo = get_defined_constants(); var_dump($foo);'array(370) { ["E_ERROR"]=> int(1) ["E_WARNING"]=> int(2) ["E_PARSE"]=> int(4) ["E_NOTICE"]=> int(8) ["E_CORE_ERROR"]=> [...]如果使用的外壳不是 sh/bash,可能会碰到更多问题。请将碰到的 Bug 向 » https://bugs.php.net/ 报告。注意,当试图将 shell 变量用到代码中或者使用反斜线时仍然很容易碰到问题。注意:-r 在 CLI SAPI 中有效,在 CGI SAPI 中无效。注意:此选项只用于非常基本的用途。因此一些配置指令(例如 auto_prepend_file 和 auto_append_file)在此模式下被忽略。更多使用方法 https://www.php.net/manual/zh/features.commandline.php
2020年12月13日
524 阅读
0 评论
0 点赞
1
2
...
4