linux
Renew 全栈工程师
全栈开发工程师
展开
-
nginx php-fpm 架构模式
#前言.进程池什么是进程池,干嘛用的,会带来什么问题正常情况下,我们一台服务器的配置是有限的,在有限的配置情况下,我们不可能无限开启 进程(子进程worker),如果每次来一个请求开启一个进程,然后完毕之后销毁一个进程,这样n个请求,我并不能开启n个进程,而且每次开启销毁内存开销也比较大,所有才有了进程池感念进程池一般都有 最低 进程数量 min,最大进程数量 max 这两个有什么用呢min 最低进程数量是为了节省 开启进程所耗费的时间,提前开启进程,然后需要时候直接取出一个进程给需要的地m原创 2021-03-19 01:32:52 · 303 阅读 · 1 评论 -
phpize 错误 Cannot find autoconf Please check your autoconf installatio
出现这个错误是因为没有安装 autoconf,安装一下即可ubuntusudo apt install autoconfcentosyum install autoconfphpizeConfiguring for:PHP Api Version: 20180731Zend Module Api No: 20180731Zend Extension Api No: 320180731...原创 2020-09-16 14:21:19 · 171 阅读 · 0 评论 -
php获取重复文件,删除重复文件
#上代码<?php$files = [];/** * @param $path * @param bool $isDir * @return Generator|void */function readDirFiles($path, $isDir = false){ $path = rtrim($path, '/*'); if (!is_readable($path)) return; $dh = opendir($path); while原创 2020-09-16 14:20:34 · 275 阅读 · 0 评论 -
php获取文件mime方法
#注意fileinfo是php7扩展,必须要安装fileinfo,可以查看这篇文章进行安装一、获取文件mime代码$finfo = finfo_open(FILEINFO_MIME);$mimetype = finfo_file($finfo, $filename);finfo_close($finfo);echo $mimetype;二、获取文件数据mime代码$finfo = finfo_open(FILEINFO_MIME);$mimetype = finfo_buff原创 2020-09-16 14:19:52 · 419 阅读 · 0 评论 -
php 自动把秒转换成分,时,天,周,月,年...
<?phpclass Calendar{ /** * 一分钟的秒数 */ const TIME_MINUTE = 60; /** * 一小时的秒数 */ const TIME_HOURS = 3600; /** * 一天的秒数 */ const TIME_DAY = 3600 * 24; /** * 一周的秒数 */ const TIME_WE原创 2020-09-16 14:15:34 · 725 阅读 · 0 评论 -
php 数组跟对象效率对比
#1.上测试效果截图#2.测试代码(可以自行运行测)<?phpini_set('memory_limit', '5G');/** * 整数转小数 * @param $num * @param $length * @return false|string */function roundNum($num, $length){ if ($len = strpos($num, '.')) { $dianNum = substr($num, $len +原创 2020-09-16 14:11:11 · 596 阅读 · 0 评论 -
php 内存引用,释放问题
在一般的场景中,php作为一个脚本,执行完毕就会释放调所有的内存,所以一般我们也不会太考虑内存问题,对象 数组随便复制引用但是现在如果我们换到了swoole 或者其他的进程式的程序栈中,我们如何保证内存不会越来越高,或者如果我们要自己写一套高效率的框架,那我们的内存到底如何分配才合理带着这些疑问,我就就行了一下测试,得出了一下结论,供大家参考#1.对象何时销毁<?phpclass AObject{ public function print() { ech原创 2020-09-16 14:10:41 · 654 阅读 · 0 评论 -
php 阶加,阶乘算法
#1.阶加1.何为阶加1+2+3+4+5+6+…+n2.应用场景计算一组数生成可用数的不重复次数,比如用 123 3个数生成不重复组合123132213231312321可以生成6次不同的组合那么次数=1+2+3 = (1 + 3) * 3 / 2代码function termial($n){ return (1 + $n) * $n / 2;}#2.阶乘1.何为阶乘1*2*3*4*5*6*…*n数学公式:n!代码function fact原创 2020-09-16 14:10:10 · 2391 阅读 · 0 评论 -
php-计算两个时间差
官方代码$january = new DateTime('2010-01-01');$february = new DateTime('2010-02-01');$interval = $february->diff($january);// %a will output the total number of days.echo $interval->format('%a total days')."\n";// While %d will only output the nu原创 2020-09-16 14:09:40 · 142 阅读 · 0 评论 -
Shell 脚本一键编译并且安装 php
#先新建文件sudo vim ./install-php.sh#1.不多说,上代码#!/bin/bashuserName="www"userGroup="www"version=$1;if [ -z "$version" ]; then version="7.3.9"fiinstallDir="$2"if [ -z "$installDir" ]; then installDir="/usr/local/php"fifileName="php-$versio原创 2020-09-05 09:46:07 · 546 阅读 · 0 评论 -
Shell 脚本一键编译并且安装 nginx
#先新建文件sudo vim ./install-nginx.sh#1.不多说,上代码#!/bin/bashversion=$1;if [ -z "$version" ]; then version="1.17.3"fiinstallDir="$2"if [ -z "$installDir" ]; then installDir="/usr/local/nginx"fifileName="nginx-$version.tar.gz"if ! wget -O原创 2020-09-05 09:44:53 · 304 阅读 · 0 评论 -
Shell 脚本一键编译并且安装 mysql
#先新建文件sudo vim ./install-mysql.sh#1.不多说,上代码#!/bin/bashuserName="mysql"userGroup="mysql"version=$1if [ -z "$version" ]; then version="5.7.30"figetVersionMain(){ string=$1 array=(${string//./ }) unset array[2] versionM="" for var in原创 2020-09-05 09:44:29 · 198 阅读 · 0 评论 -
php-fpm死机解决办法,脚本后台自动重启
本人用nginx+php7搭建了一台服务器,因为请求量太大,而且php里面又有挂起的任务,导致php-fpm在高峰期的时候经常死掉,吧php-fpm的最大进程数已经改到1000了,还是吃不消,cpu也是超负荷,每次都要手动重启,太烦人,因此本人写了一个shell脚本,后台监听php-fpm,等达到一定数量让他重启,这样就有效的解决了手动重启,死机问题了。1.声明文档头跟定义变量原创 2016-11-25 23:05:32 · 5114 阅读 · 0 评论 -
安装php7提示 configure: error: Cannot find OpenSSL's libraries 解决方案
一次在安装php7其中提示错误信息 configure: error: Cannot find OpenSSL’s libraries出现这种有2中情况,一种是没有安装 openssl,另一种是安装了找不到libssl.so 文件。先安装openssl sudo apt-get install openssl如果还提示该错误的话,查找一下libssl.so所在位置,重新连接一下 fi原创 2017-11-28 16:25:02 · 15094 阅读 · 0 评论 -
linux下安编译安装redis
1、先进入要安装到的目录,比如我要把redis安装到/usr/local/redis下,那就先进入/usr/localcd /usr/local2、然后下载安装包,并解压wget http://download.redis.io/releases/redis-3.0.2.tar.gztar -xvf redis-3.0.2.tar.gzmv原创 2016-11-25 23:03:01 · 812 阅读 · 0 评论