Windows 实现多 PHP 版本切换:像 Linux 一样灵活调用 php81/php83+switch-php 切换命令
在 Windows 环境下开发 / 运维 PHP 项目时,经常需要切换不同 PHP 版本(如 7.2、8.1、8.3)适配不同项目需求。本文将完整分享如何实现:
类似 Linux 的php81 -v/php83 -v版本快捷调用;
switch-php 8.1/switch-php 83一键切换默认 PHP 版本;
全程无坑,兼容 PowerShell/CMD,配置后永久生效。
一、前置准备1. 环境要求
Windows 10/11 系统;
已安装多个 PHP 版本(解压版即可,推荐路径无中文 / 空格);
示例 PHP 路径(需替换为你的实际路径):
PHP 7.2:D:\Dev\PypWebStudy\PhpWebStudy-Data\app\php-7.2.34\php.exe
PHP 8.1:D:\Dev\PypWebStudy\PhpWebStudy-Data\app\php-8.1.33\php.exe
PHP 8.3:D:\Dev\PypWebStudy\PhpWebStudy-Data\app\php-8 ...
告别环境配置噩梦!FlyEnv 让本地开发效率起飞
作为开发者,你是否也曾被这些问题折磨?切换项目时要手动切换 PHP/Node 版本,配置本地站点还要改 Nginx 配置文件,不同项目的数据库端口冲突,Docker 启动慢如龟… 直到我遇到了 FlyEnv,这款跨平台全栈本地开发环境管理工具,彻底重构了我的开发体验!
🌟 FlyEnv 是什么?FlyEnv 既不是虚拟机,也不是容器平台,而是一款轻量级原生工具。它通过静态二进制程序直接控制各类开发组件,无需复杂依赖,就能实现多语言、多服务、多版本的统一管理与自动切换。核心目标就是让开发者摆脱环境搭建的繁琐,专注于代码本身。
简单说,有了 FlyEnv,你再也不用纠结 “在我机器上能运行” 的尴尬,也不用在各种版本管理工具之间来回切换,一个工具就能搞定所有本地开发环境需求。
🛠️ 核心功能亮点1. 多语言多版本自由切换支持主流开发语言的全版本覆盖,无需依赖 nvm、pyenv 等工具,一键切换超省心:
PHP:5.6 到 8.3 全部支持
Node.js:LTS 与最新版共存
Python:2.x/ 3.x 无缝切换
Java:8 / 11 / ...
记一次 Hexo 博客自动部署脚本排障之旅:从 Git 依赖污染到 rsync 权限陷阱
作为一名开发者,我用 Hexo 搭建了个人博客(xiaohuihui.cc),并编写了自动部署脚本,期望实现「Git 拉取代码 → Hexo 生成静态文件 → 同步到发布目录」的自动化流程。但脚本运行过程中接连踩坑,从 Git 依赖目录污染 到 rsync 权限错误,再到 宝塔 WebHook 执行环境异常,最终通过层层排查和优化,实现了脚本在宝塔 WebHook 中稳定运行。本文将完整复盘整个排障过程,并提供最终可直接使用的稳定版脚本。
一、需求背景我的博客部署脚本核心需求:
拉取 Gitee 仓库最新博客源码;
执行缓存清理 + 静态文件生成,避免重复安装依赖;
将生成的 public 目录同步到服务器发布目录;
无需将生成的静态文件回推到 Git 仓库;
适配宝塔 WebHook 执行环境,确保自动触发时稳定运行。
最初的脚本看似逻辑完整,但实际运行时出现多个核心报错:Hexo 命令执行失败、rsync 同步报错(code 23)、宝塔 WebHook 执行显示「最终失败」但命令行正常。
二、问题排查与修复过程问题 1:Hexo clean 失败 —— Git 仓库误提交 n ...
Hexo 静态博客框架的使用指南
一、环境准备12345678# 安装 Node.js (需 >= 12.0)https://nodejs.org# 安装 Githttps://git-scm.com# 安装 Hexo CLInpm install -g hexo-cli
二、项目初始化12345678910111213# 创建项目hexo init myblogcd myblog# 安装依赖npm install# 目录结构:# ├── _config.yml # 全局配置# ├── source # 文章/资源# ├── themes # 主题目录# ├── public # 生成的静态文件# └── scaffolds # 模板文件
三、核心配置 (_config.yml)123456789101112131415161718# 基础配置title: 我的博客subtitle: 技术记录与分享description: "技术博客 | 编程笔记"author: YourNamelanguage: zh-CNti ...
FrankenPHP 是否是 PHP 的未来?
引言:PHP 的现状与挑战PHP 作为一门已有近 30 年历史的服务器端编程语言,至今仍是 Web 开发的中流砥柱。根据 W3Techs 的数据,截至 2024 年,约 77% 的网站仍在使用 PHP,其中 WordPress、Laravel、Symfony 等框架和 CMS 系统占据主导地位。然而,PHP 也面临着诸多挑战:
性能瓶颈:传统 PHP-FPM 架构在高并发场景下表现不佳。
现代化需求:Go、Node.js、Rust 等新兴语言在性能、并发和开发体验上更具优势。
生态碎片化:Composer 虽解决了依赖管理问题,但 PHP 的异步编程生态仍不成熟。
在这样的背景下,FrankenPHP 横空出世,它号称能大幅提升 PHP 性能,并支持现代 Web 开发模式。那么,FrankenPHP 究竟是 PHP 的未来,还是又一个昙花一现的技术?本文将深入探讨其架构、性能、适用场景,并分析它是否真的能改变 PHP 的未来。
1. 什么是 FrankenPHP?FrankenPHP 是一个高性能 PHP 运行时,由 Dunglas(Symfony 核心贡献者)开发,基于 Cad ...
测试 Hexo 7.3.0 兼容性
这是图片啦啦啦
php使用图鉴识别图片、二维码等
图鉴,是基于人工智能的高可用图片识别平台,可以识别二维码、验证码、缺图验证码等。
图鉴函数方法:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162<?phpdeclare(strict_types=1);class ImgCaptcha{ /** * 图鉴 http://www.ttshitu.com/ * * @param string $image 图片地址 * @param string $typeid 识别类型 * * @return string */ public static function ttShiTu(string $image = '', string $typeid = '3'): string { $api_url = ...
php实现使用github授权登录
github 官网文档https://docs.github.com/cn/developers/apps/building-oauth-apps/authorizing-oauth-apps#web-application-flow
原理
客户端发起请求 redirect 到 OAuth 接入方并附带上 client_id
用户在 redirect 之后的网站上输入用户名和密码
登陆成功之后,OAuth 接入方会返回给服务端一个 code。
服务端拿到 code 之后,拿着 client_secret 和 code 向 OAuth 接入方申请获得 Token
服务端拿到 Token 之后,进入授权窗口
授权成功,跳转到客户端网站。
创建好 github 账号后点击设置
之后进入前期工作github 页面开通步骤一
步骤二
步骤三
步骤四添加好必填项
注册应用后会生成 client_id, 然后需要创建密码
1234#页面首页地址(登录成功后跳转到的地址):http://huicmf.frp.toushizhiku.com:18080/app/user#授权回调地址(代码中处理函 ...
tp6+使用cli(cmd)命令行模式访问控制器
因为 thinkphp6 简称 tp6,默认不支持直接 cli 命令行模式访问控制器,于是利用官方的 command 实现了访问控制器.
实现效果如下 :
php think action 模块/控制器/方法
1、新建 command,Action:
在 app\command 创建文件:Action.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596<?phpdeclare (strict_types=1);namespace app\command;use think\console\Command;use think\console\Input;use think\console\input\Argument;use thin ...
使用workerman接收websocket消息,并在thinkphp6控制器里处理取得的数据
一、创建 workerman 服务,并启动
用以接收 websocket 消息
1、安装 workerman 服务1composer require workerman/workerman
2、根目录下创建文件:server.php方法 1:使用回调函数12345678910111213141516171819202122232425262728293031323334<?phprequire_once __DIR__.'/vendor/autoload.php';use Workerman\Worker;use Workerman\Connection\AsyncTcpConnection;$worker = new Worker();$worker->onWorkerStart = function ($worker) { $con = new AsyncTcpConnection('ws://127.0.0.1:7600/wcf/socket_receiver'); // websocket握手成功后 ...







