php-msf-docker

php-msf-docker 基于centos:centos7.9.2009镜像制作的php开发环境镜像 主要包含: PHP-8.1.14 redis-5.3.7 swoole-src-5.0.2 nginx-1.21.5 supervisor sshd GitHub地址 : https://hub.docker.com/r/leanku/php-msf-docker DockerHub地址 : https://hub.docker.com/r/leanku/php-msf-docker 包含扩展 bcmath,Core,ctype,curl,date,dom,exif,fileinfo,filter,ftp,gd,gettext,hash,iconv,intl,json,libxml,mbstring,mysqli,mysqlnd,openssl,pcntl,pcre,PDO,pdo_mysql,pdo_pgsql,pdo_sqlite,pgsql,Phar,posix,redis,Reflection,session,shmop,SimpleXML,soap,sockets,sodium,SPL,sqlite3,standard,sysvsem,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib,swoole 运行示例 docker run --privileged --restart=always -it -d \ --hostname=php-msf --name=php-msf-docker \ -p 22:22 -p 80:80 -p 3306:3306 -p 8000:8000 -p 9501:9501 \ -v /c/docker/www:/php-msf/data/www \ leanku/php-msf-docker SSH 默认用户:super 密码:123456 ssh super@127.0.0.1

March 11, 2023 · 1 min · Leanku

行有余力,则以学文

子曰:弟子入则孝,出则弟,谨而信,泛爱众,而亲仁,行有余力,则以学文。 孔子说:“弟子们在父母跟前,就孝顺父母;出门在外,顺从师长,言行要谨慎,要诚实可信,寡言少语,要广泛地去爱众人,亲近那些有仁德的人。这样躬行实践之后,还有余力的话,就再去学习文献知识。” 《论语·学而篇》- 孔子

March 9, 2023 · 1 min · Leanku

PHP位运算使用

PHP 位运算介绍 位运算符允许对整型数中指定的位进行求值和操作。 以下是官网的一个介绍。 例子 名称 结果 $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。 $a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。 $a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。 ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。 $a « $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示 “乘以 2”)。 $a » $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示 “除以 2”)。 详情请点击这里了解。 平常开发需要用位运算吗? 位运算符都是针对整数的二进制数字形式而进行的。...

February 28, 2023 · 1 min · Leanku

Git创建不继承内容的新分支

Git创建不继承内容的新分支方法 在 Git 中,想创建一个新的分支,并且不想要当前分支的任何内容(即希望新分支是完全干净的,不包含当前分支的修改或提交),可以按照以下步骤操作: 方法 1:基于远程默认分支(如 main/master)创建新分支 如果你希望新分支是基于远程仓库的默认分支(而不是当前分支),可以这样做: ``` # 1. 确保本地没有未提交的修改(否则会提示你提交或暂存) git status # 2. 拉取远程最新代码(确保本地默认分支是最新的) git fetch origin # 3. 基于远程默认分支(如 origin/main)创建新分支 git checkout -b 新分支名 origin/main 方法 2:基于某个提交或分支创建全新分支 如果你想基于某个特定的提交(而不是当前分支)创建新分支: ``` # 1. 先切换到目标分支或提交(例如切换到 main 分支) git checkout main # 2. 拉取最新代码(可选) git pull origin main # 3. 创建并切换到新分支 git checkout -b 新分支名 方法 3:强制创建孤立分支(完全无历史) 如果你想创建一个完全独立的新分支(不继承任何历史): 在切换分支之前,确保你没有未提交的修改,否则 Git 可能会尝试携带这些修改到新分支: git status # 提交他们 git add . git commit -m "暂存当前修改" # 或者丢弃它们 git reset --hard # 强制丢弃所有未提交的修改 创建一个完全独立的新分支(不继承任何历史)...

February 26, 2023 · 1 min · Leanku

Git历史重置

Git历史重置 有时候需要克隆github的项目使用,自己进行修改需要提交到自己的代码仓库,但是会包含前仓库的大量提交历史,看起来不方便,就需要清理历史记录并重置为一个全新的提交 新项目(如git clone 的项目) # 进入项目目录 cd template-repo-master # 删除原有的.git目录(如果存在)初始化全新的Git仓库 rm -rf .git git init git add . git commit -m "Initial commit from template" git remote add origin git@github.com:your-username/your-new-repo.git git push -u origin master --force 已经将代码推送到自己的远程仓库 清理历史记录并重置为一个全新的提交 # 1. 克隆你的远程仓库(可选) git clone git@github.com:your-username/your-repo.git cd your-repo # 2.创建孤立分支(全新的历史起点) git checkout --orphan new-branch # 3. 添加所有文件到新分支 git add -A git commit -m "Initial commit (cleaned history)" #4. 删除旧的主分支 git branch -D master # 或 main # 5....

February 26, 2023 · 1 min · Leanku

Git同时配置github和gitee

Git同时配置github和gitee 想要同时使用GitHub和Gitee,但是每次输入密码就会很麻烦。为此,本文将介绍 Git 同时配置 github和 gitee 的ssh key #查看git配置 git config --global --list #没配置过的话先配置用户名和邮箱信息 git config --global user.name “username” git config --global user.email “email” #默认没有.ssh目录, ssh-keygen -t rsa -C "xxxxxxx@xx.com" #在windows下会生成.ssh目录 [c盘/用户/用户名/.ssh] 1. 查看ssh文件 cd ~/.ssh** ls 2. 删除之前的.ssh rm -rf id_rsa id_rsa.pub 3. 生成gitee和github 的 SSH Key ssh-keygen -t rsa -C "xxxxxxx@xx.com" -f "id_rsa_github" ssh-keygen -t rsa -C "xxxxxxx@xx.com" -f "id_rsa_gitee" 4. 查看SSH Key cat id_rsa_github.pub** 5. 拷贝 ssh-rsa 开头的 ssh key,然后到github上添加ssh key 6....

February 26, 2023 · 1 min · Leanku

MySQL 运维常用脚本

MySQL 运维常用脚本 1.导出整个数据库 #mysqldump -u 用户名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysql dump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 #mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysql dump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysql dump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql #-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 #A:常用source 命令 #进入mysql数据库控制台, 如 mysql -u root -p mysql>use databasename #然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql #B:使用mysqldump命令 mysqldump -u username -p dbname < filename....

February 3, 2023 · 3 min · Leanku

Vim 常用命令

Vim介绍 Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。百度百科 使用 vim a.php # 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段,以其它任何模式按esc 即可进宪普通模式 i 在当前光标字符前插入 insert a 在当前光标字符后插入 append I 在当前行首插入 Insert A 在当前行尾插入 Append o 在下方开一新行,插入 open O 在上方开一新行,插入 Open r 替代字符,将当前字符替代为紧跟着输入的字符 replace R 进入替代模式,将当前及之后的字符都替代为紧跟着输入的字符串,直到按 `` 返回 Normal 模式 Replace gj 移动到屏幕折行后的下行 gk 移动到屏幕折行后的上行 命令模式是在普通模式下按 : 进入,用于搜索、保存退出等操作。 :w 保存 :w file 另存为文件 :q 退出 :q! 放弃修改退出 :wq 保存修改并退出 移动命令 Vim 的各种移动命令主要是在标准模式下 h 光标左移 j 光标下移 k 光标上移 l 光标右移 0 跳到行首,可以理解为无穷大的...

February 1, 2023 · 2 min · Leanku

10分钟带你了解什么是二进制

二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 百度百科 世界上有10种人:一种是懂得二进制的,另一种是不懂二进制的 上面这是流传在程序员之间很久的一个冷笑话。 是不是get不到梗的笑点? 没有关系,看完本文,你再来看这句话就会会心一笑。 回到过去 让我们假设你回到了初中,这时候你情窦初开。喜欢上了临街的小哥哥(小姐姐),你们俩家的窗户面对面。放寒假的时候,你们约好了某天晚上八点偷偷溜出来约会。但是不能让父母知道,所以你们不能通过打电话方式来通知对方,今晚自己是否能顺利溜出来。为了不让对方白等,你们不得不约定一种新的通信方式。 这种新的通信方式要满足: 安静–不能让父母听到,能悄无声息自然是最好了 易懂–对方看到后能立马知道你要表达的信息 因为住的很近,可以从窗户相互看到对方家里,聪明的你立马想到可以用屋子里吊灯的灯光来进行通信。 你们约定到了八点钟 如果我屋子里的灯亮着,代表我可以顺利溜出去 如果我屋子里的灯不亮,代表我无法顺利溜出去 现在你们就可以用屋子里的灯开关,来表达两种状态 开:能出来 关:不能出来 你们可以悄无声息给对方传达信息,这太完美了! 新的问题 不过过了一段时间你们发现了新问题,有时候,8点钟恰好有事情,可能要推迟半小时才能溜出来。有时候,8点钟事情比较多,可能要推迟1小时才能出来。 现在你们有四种信息要传递 今晚8点钟准时出来 今晚不能出来 今晚8点30能出来 今晚9点能出来 但是一盏灯的开关只能表示两种状态,怎么办才好呢? 聪明的你立马想到,可以再加一盏灯啊!你把书桌上的台灯放到窗前 并且更新了之前的通信方式 台灯关着,吊灯关着–今晚没戏,出不来了 台灯关着,吊灯开着–今晚8点,不见不散 台灯开着,吊灯关着–推迟半小时,今晚八点半才能溜出来 台灯开着,吊灯开着–推迟1小时,今晚9点才能溜出来 哇哦,再一次用自己的聪明才智解决了这个问题。 现在你用两盏灯,来表达四种状态。 一些思考 让我们用符号来重新表述下 我们用数字0表示灯灭 数字1表示灯亮 一盏灯的情况 0 ==> 今晚八点准时出来 1 ==> 今晚八点不能出来 两盏灯的情况 0 0 ==> 今晚没戏,出不来了 0 1 ==> 今晚8点,不见不散 1 0 ==> 推迟半小时,今晚八点半才能溜出来 1 1 ==> 推迟1小时,今晚9点才能溜出来 让我们再来简化一下箭头右边,我们用数字0,1,2,3 分别来代表今晚约会的4种状态 0: 今晚没戏,出不来了 1: 今晚8点,不见不散 2: 推迟半小时,今晚八点半才能溜出来 3: 推迟1小时,今晚9点才能溜出来 现在我们可以把两边都用数字来简化了...

January 31, 2023 · 2 min · Leanku

PHP标准输入与输出

PHP标准输入与输出 一、PHP STDIN、STDOUT、STDERR简介: STDIN、STDOUT、STDERR命令输入输出流,用于向控制台(linux shell终端、windows cmd终端)输入、输出内容,它们默认是已经打开的,可以直接对他们进行读写操作,它们只能在CLI(command-line interface,命令行界面)模式中使用,在Http模式时,它们是未定义的。 而他们的打开副本php://stdin、php://stdout、php://stderr 也无法输出内容到http浏览器,经测试:写入php://stderr的内容将会输入到默认站点的错误日志中,其它两种无任何效果。 STDIN/STDOUT/STDERR简介:原始流流打开副本描述STDINphp://stdin标准输入(standard input),只读,用于从控制台输入内容; STDOUTphp://stdout标准输出(standard output),只写,用于向控制台输出正常信息; STDERRphp://stderr错误输出(standard error),只写,用于向控制台输出错误信息; 官方推荐使用常量 STDIN、 STDOUT 和 STDERR 来代替它们手动打开的副本封装器php://stdin、 php://stdout 和 php://stderr。 二、PHP STDIN用法: PHP语言中"STDIN"用于从控制台读取内容,遇到此常量或者通过fopen()函数打开php://stdin脚本将会等待用户输入内容,直到用户按下回车键提交。 新建文件demo.php <?php echo "请输入内容:"; $input = fgets(STDIN); echo sprintf("输入的内容为: %s\n", $input); $handle = fopen('php://stdin', 'r'); echo "请输入: "; $stdin = fread($handle, 10); //最多读取10个字符 echo sprintf("输入为: %s\n", $stdin); fclose($handle); //php demo.php 运行代码,键盘输入123,输出结果如下 //请输入内容:123 //输入的内容为: 123 //请输入: 456 //输入为: 456 三、PHP STDOUT用法: PHP语言中STDOUT用于向控制台输出标准信息;向此常量、或者向fopen()函数打开的php://stdout写入的内容将直接输出到控制台的标准输出;标准输出的内容可以用过">“或者"1>“重定向到指定地方,比如文件。 <?php fwrite(STDOUT, "STDOUT写入的正常输出;\n"); $stdout = fopen("php://stdout", "w"); fwrite($stdout, "php://stdout写入的正常输出;\n"); fclose($stdout); // php demo....

January 11, 2023 · 1 min · Leanku