HookPHP生产环境部署指南Nginx PHP-FPM Redis缓存最佳实践【免费下载链接】HookPHPHookPHP基于C扩展搭建内置AI编程的架构系统-支持微服务部署|热插拔业务组件-集成业务模型|权限模型|UI组件库|多模板|多平台|多域名|多终端|多语言-含常驻内存|前后分离|API平台|LUA QQ群679116380项目地址: https://gitcode.com/gh_mirrors/ho/HookPHPHookPHP 是一个基于 Yaf C 扩展搭建、内置 AI 编程能力的 PHP 8.4 架构系统支持微服务部署与热插拔业务组件集成业务模型、权限模型、多模板、多平台、多语言等能力。本指南带你完成 HookPHP 生产环境的完整部署用 Nginx 做反向代理、PHP-FPM 提供应用运行环境、Redis 做高速缓存三步搞定稳定上线 一、部署前准备环境清单HookPHP 依赖 PHP 8.4 与 Yaf 扩展C 扩展性能关键同时强烈建议开启 OPcache 与 Redis 扩展。组件版本要求说明PHP8.4必需扩展yaf、pdo_mysql、redis、opcache、mbstring、intl、gd、curlNginx1.20反向代理 静态资源加速MySQL5.7 / 8.0主数据存储Redis6.0缓存与数据加速Composer2.x依赖管理在 php.ini 中确认以下配置已生效Yaf 配置是 HookPHP 运行的前提extensionyaf yaf.cache_config1 yaf.use_namespace1 opcache.enable1二、获取代码与初始化克隆 HookPHP 代码到服务器git clone https://gitcode.com/gh_mirrors/ho/HookPHP cd HookPHP composer install --no-dev --optimize-autoloader小贴士--no-dev可跳过开发依赖--optimize-autoloader会生成更高效的自动加载文件生产环境必加 ✅三、导入数据库项目自带初始化 SQL 文件hookphp.sql导入后即可使用mysql -u root -p hookphp.sql导入后修改config/database.php中的数据库连接信息主机、账号、密码、库名 hookphp。该文件同时定义了 Redis 配置其中default组database 0业务数据缓存cache组database 1应用缓存键前缀为hookphp_database_四、Nginx 配置只放行 public 目录Nginx 的核心原则根目录只暴露 public/ 目录禁止直接访问应用源码。推荐配置如下server { listen 80; server_name www.example.com; root /var/www/hookphp/public; index index.php; # 所有请求统一交给入口文件 index.php location / { try_files $uri $uri/ /index.php?$query_string; } # 静态资源缓存 7 天 location ~* \.(jpg|jpeg|png|gif|css|js|ico|svg)$ { expires 7d; access_log off; } # 禁止访问隐藏文件 location ~ /\. { deny all; } }要点说明try_files规则HookPHP 是前端入口 路由分发模式见public/index.php所有动态请求最终都交给index.php处理。静态资源缓存access_log off可显著降低高并发下的 I/O 压力。隐藏文件保护防止.env等敏感文件被直接下载。五、PHP-FPM 调优在php-fpm.conf的 pool 中调整关键参数[www] pm dynamic pm.max_children 50 pm.start_servers 10 pm.min_spare_servers 5 pm.max_spare_servers 15经验公式max_children ≈ 可用内存 ÷ 单进程峰值内存。一台 4G 内存的机器一般设为 30~50 即可避免内存被 FPM 进程耗尽。同时配合 OPcache 提升 PHP 字节码缓存效率opcache.memory_consumption128 opcache.max_accelerated_files20000 opcache.validate_timestamps0 ; 生产环境关闭更新代码时重启 FPM六、Redis 缓存接入HookPHP 在config/database.php中内置了 Redis 双库设计开箱即用database 0default连接127.0.0.1:6379用于业务数据缓存database 1cache用于框架层缓存前缀hookphp_database_避免键冲突。生产环境建议# redis.conf 关键项 requirepass 你的密码 maxmemory 512mb maxmemory-policy allkeys-lru设置密码改完redis.conf后同步更新config/database.php中两组的password字段。LRU 淘汰策略缓存满了自动淘汰最久未使用的键不会 OOM 拖垮业务。本机访问Redis 与 PHP 同机部署时务必用127.0.0.1而非localhost避免偶发的 socket 连接问题。七、运行时目录与权限HookPHP 使用项目根目录下的runtime/目录存放运行时数据需要保证 FPM 进程可写chown -R www-data:www-data /var/www/hookphp/runtime八、上线检查清单 部署完成后按以下清单逐项确认php -m能看到 yaf、redis、opcache、pdo_mysql访问首页返回正常URL 直达深层路径不 404访问app/、config/等目录返回 403redis-cli中能看到带hookphp_database_前缀的缓存键日志目录可写错误日志正常输出按以上流程部署后HookPHP 即可在生产环境中稳定运行。借助 Yaf C 扩展的高性能路由分发、Redis 双库缓存策略与 Nginx 静态加速可以轻松支撑中高并发场景 如需扩展业务可在app/modules/下新增模块目录如现有的HookBanner、HookMonitor启动时会自动扫描加载无需修改核心配置这正是 HookPHP 热插拔业务组件能力的体现。【免费下载链接】HookPHPHookPHP基于C扩展搭建内置AI编程的架构系统-支持微服务部署|热插拔业务组件-集成业务模型|权限模型|UI组件库|多模板|多平台|多域名|多终端|多语言-含常驻内存|前后分离|API平台|LUA QQ群679116380项目地址: https://gitcode.com/gh_mirrors/ho/HookPHP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考