
fbraz3/lnmp
本仓库提供 LNMP 技术栈(Linux、Nginx、MariaDB、PHP-FPM,通常也称 LEMP)的 Docker 镜像。该镜像旨在简化 PHP 应用的部署流程,提供稳定且现代化的运行环境,同时区分开发版和生产版以满足不同场景需求。镜像基于 fbraz3 生态的模块化镜像构建,确保灵活性、可维护性和易用性。
💡 完整镜像列表可查看 PHP 系统文档。
项目提供两种独立版本,适配不同使用场景:
-dev 后缀)/pma/ 路径访问 phpMyAdmin镜像采用统一的标签命名规则:
fbraz3/lnmp:{php_version}(如 8.2、8.3、8.4)fbraz3/lnmp:{php_version}-dev(如 8.2-dev、8.3-dev)fbraz3/lnmp:{php_version}-phalcon(如 8.2-phalcon、8.3-phalcon)fbraz3/lnmp:{php_version}-phalcon-dev(如 8.2-phalcon-dev)fbraz3/lnmp:latest - 最新生产版fbraz3/lnmp:latest-dev - 最新开发版fbraz3/lnmp:latest-phalcon - 最新 Phalcon 生产版fbraz3/lnmp:latest-phalcon-dev - 最新 Phalcon 开发版amd64 和 arm64 架构fbraz3/lemp:{tag} 获取 LEMP 变体镜像镜像提供多种类型,满足不同需求:
适合本地开发,提供便捷的数据库访问和调试工具。
yaml# docker-compose.yml services: web: image: fbraz3/lnmp:8.4-dev # 或 fbraz3/lnmp:8.4-phalcon-dev(Phalcon 版) volumes: - ./:/app/public/ # 挂载项目代码到容器 ports: - "127.0.0.1:80:80" # 绑定本地 80 端口 - "127.0.0.1:3306:3306" # 绑定本地数据库端口
访问入口:
[***] phpMyAdmin:[***] 数据库:localhost:3306(用户:root,密码:空)安全配置,适合生产环境部署。
yaml# docker-compose.yml services: web: image: fbraz3/lnmp:8.4 # 或 fbraz3/lnmp:8.4-phalcon(Phalcon 版) environment: - MYSQL_ROOT_PASSWORD=your_secure_password_here # 必须设置强密码 - MYSQL_APP_DATABASE=my_application # 可选:自动创建应用数据库 - MYSQL_APP_USER=app_user # 可选:自动创建应用用户 - MYSQL_APP_USER_PASSWD=app_password # 可选:应用用户密码 volumes: - ./:/app/public/ # 挂载项目代码 - mysql_data:/var/lib/mysql # 数据卷持久化数据库数据 ports: - "80:80" # 对外暴露 80 端口 restart: unless-stopped # 异常退出时自动重启 volumes: mysql_data: # 定义数据卷
访问入口:
[***] 数据库:仅容器内部访问(用户:root`,密码:通过环境变量设置)注意:生产环境务必设置高强度 MYSQL_ROOT_PASSWORD!
生产版镜像支持启动时执行自定义 SQL 脚本,便于初始化数据库 schema、基础数据或配置。
.sql 脚本文件放在宿主机目录中/sql-scripts 路径.sql 文件yaml# docker-compose.yml(片段) services: web: image: fbraz3/lnmp:8.4 environment: - MYSQL_ROOT_PASSWORD=your_secure_password_here volumes: - ./:/app/public/ - ./sql-scripts:/sql-scripts # 挂载自定义 SQL 脚本目录 - mysql_data:/var/lib/mysql # 其他配置...
目录结构示例:
project/ ├── sql-scripts/ # SQL 脚本目录 │ ├── 01-create-users.sql # 01-前缀控制执行顺序 │ ├── 02-create-tables.sql │ └── 03-insert-data.sql └── docker-compose.yml
01-、02-)控制顺序| 变量名 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|
MYSQL_ROOT_PASSWORD | 是 | defaultrootpassword | MariaDB root 用户密码 |
MYSQL_APP_DATABASE | 否 | - | 自动创建的应用数据库名称 |
MYSQL_APP_USER | 否 | - | 自动创建的应用数据库用户 |
MYSQL_APP_USER_PASSWD | 否 | - | 应用数据库用户密码 |
示例:
bashdocker run -e MYSQL_ROOT_PASSWORD=mySecurePassword123 \ -e MYSQL_APP_DATABASE=my_app \ -e MYSQL_APP_USER=app_user \ -e MYSQL_APP_USER_PASSWD=app_secure_password \ fbraz3/lnmp:8.4
说明:
MYSQL_APP_USER 和 MYSQL_APP_USER_PASSWD,则用户会被授予 MYSQL_APP_DATABASE 数据库的全部权限(需同时设置 MYSQL_APP_DATABASE)。MYSQL_APP_USER 和 MYSQL_APP_USER_PASSWD 必须同时设置,不支持无密码用户。开发版无需额外环境变量,开箱即用。
镜像支持通过环境变量自定义 PHP 配置参数。
详细配置方法参考 php-fpm-docker 文档。
可通过挂载文件到容器 /cronfile 路径配置定时任务,系统会自动安装并执行任务。
具体配置步骤参考 php-fpm-docker 文档。
邮件发送功能依赖 php-base-docker 项目的配置。
配置方法参考 php-base-docker 文档。
欢迎参与项目贡献!可提交 issue 反馈问题或 PR 改进代码。
贡献前请参考 CONTRIBUTING.md 指南。
维护该项目耗费了大量时间和精力。如果觉得有用,欢迎通过以下方式支持:
本项目基于 Apache License 2.0 许可,可用于个人及商业项目。请注意,镜像按"原样"提供,不提供任何明示或暗示的担保。使用前请自行评估风险。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务