使用FlyEnv启动PHP项目

文章目录


前言

FlyEnv 是一款一体化、跨平台的全栈本地开发环境管理工具,专为开发者设计,旨在简化多语言、多服务开发环境的配置与管理。

核心特点

  1. 原生速度,轻量高效:与 Docker 等容器化方案不同,FlyEnv 直接在你的机器上安装和运行官方静态二进制文件(如 PHP、Node.js、MySQL),无需虚拟化开销。其内存占用仅为典型 Docker 方案的 1/3,启动速度达到毫秒级。

  2. 项目级自动版本切换 :通过项目根目录的 .flyenv 配置文件,FlyEnv 可以自动为每个项目切换对应的 Node.js、PHP、Python 等运行时版本,彻底告别全局版本冲突。

  3. 一体化界面,模块化按需使用:它提供了一个统一的界面来管理 Web 服务器、数据库、编程语言、缓存队列等多种服务。你只需安装实际需要的模块,保持环境轻量。

  4. 开箱即用的开发者工具

    • 本地域名与自动 SSL :内置 DNS 服务器,可为项目分配自定义域名(如 myapp.test),并自动生成受信任的 SSL 证书,支持 HTTPS 开发。
    • 快速启动数据库:几秒钟内即可启动 MySQL、PostgreSQL、Redis 等数据库实例。
    • 集成邮件测试:内置 Mailpit 等工具,方便在本地测试邮件工作流。

支持的技术栈

FlyEnv 原生支持广泛的主流开发技术,包括:

  • 编程语言:PHP、Node.js、Python、Go、Java、Ruby、Rust 等。
  • Web 服务器:Nginx、Apache、Caddy、Tomcat。
  • 数据库:MySQL、MariaDB、PostgreSQL、MongoDB、SQLite。
  • 缓存与队列:Redis、Memcached、RabbitMQ。
  • 搜索服务:Elasticsearch、Meilisearch。
  • AI 助手:集成 Ollama、DeepSeek 等工具以提升开发效率。

总结

FlyEnv 定位为 NVM + XAMPP + Docker Desktop 的完美替代品 ,它通过原生技术栈和智能的项目隔离,为全栈开发者提供了一个配置简单、启动迅速、资源占用低 的一站式本地开发环境,让开发者能更专注于业务代码本身。

停止旧的 MySQL,用 FlyEnv 的

  1. 打开「服务」管理(Win+R,输入 services.msc )如图
  2. 找到 MySQL 服务,停止并禁用它

/admin/login/login.html

看到了!could not find driver - 这是 PHP 缺少 pdo_mysql 扩展 的问题!

toolName: todo_write

status: success

Todos updated: 1 items

🔧 解决方法:在 FlyEnv 中启用 pdo_mysql 扩展

错误 could not find driver 是因为 PHP 没有启用 pdo_mysql 扩展。


步骤:

  1. 在 FlyEnv 左侧菜单,找到 PHP

  2. 点击 PHP 右侧的设置/配置按钮(通常是齿轮图标)

  3. 在扩展列表中,找到并勾选:

    • pdo
    • pdo_mysql
    • mysqli(可选,但推荐)
    • redis(项目需要)
  4. 保存配置,重启 PHP 服务


或者在 FlyEnv 的 PHP 版本设置中

有些 FlyEnv 版本在 "Version" 标签页选择 PHP 版本时,也可以勾选需要的扩展。


蓝色的√才是加载了。。。。。。

测试php是否启动 redis扩展

php 复制代码
<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h1>Redis 连接测试</h1>";

echo "<h3>1. 检查 Redis 扩展...</h3>";
if (!extension_loaded('redis')) {
    die("<p style='color:red'>❌ Redis 扩展未启用!</p>");
}
echo "<p style='color:green'>✅ Redis 扩展已启用</p>";

echo "<h3>2. 尝试连接 Redis...</h3>";
try {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    echo "<p style='color:green'>✅ Redis 连接成功!</p>";
    
    echo "<h3>3. 测试 Redis 读写...</h3>";
    $redis->set('test_key', 'Hello Redis!');
    $value = $redis->get('test_key');
    echo "<p style='color:green'>✅ 写入成功: test_key = '{$value}'</p>";
    
    $redis->del('test_key');
    echo "<p style='color:green'>✅ 清理测试数据完成</p>";
    
    echo "<h3>4. Redis 信息...</h3>";
    $info = $redis->info();
    echo "<p>Redis 版本: {$info['redis_version']}</p>";
    echo "<p>运行时间: {$info['uptime_in_seconds']} 秒</p>";
    echo "<p>连接的客户端: {$info['connected_clients']}</p>";
    
} catch (Exception $e) {
    echo "<p style='color:red'>❌ Redis 连接失败: " . $e->getMessage() . "</p>";
}

echo "<hr><p>测试完成!</p>";
?>
相关推荐
AI科技星3 小时前
基于四维速率恒为c公设的北斗GEO卫星昼夜钟差模型修正与实测验证
开发语言·人工智能·线性代数·算法·数学建模
xyq20243 小时前
C 标准库 - `<ctype.h>`
开发语言
傻啦嘿哟3 小时前
Python 实现 Excel 数据可视化:柱状图制作教程
开发语言·python
96773 小时前
mybatis的作用+sql怎么写
java·开发语言·mybatis
深邃-3 小时前
【C语言】-数据在内存中的存储(2):浮点数在内存中的存储
c语言·开发语言·数据结构·c++·算法·html5
大鹏说大话3 小时前
为.NET应用加速:从内存缓存到Redis的实战指南
开发语言
unityのkiven3 小时前
如何通过DirectShow用C++实现多台PTZ相机的控制?
开发语言·c++·数码相机
csbysj20203 小时前
XQuery 添加元素和属性
开发语言
梦游钓鱼3 小时前
c++中单例模式(局部静态变量)
开发语言·c++·单例模式