快速开始

先决条件

支持的操作系统

  • 支持主流 Linux 发行版本(基于 Debian / RedHat macOS 包括 OpenKylin 等国产操作系统)
操作系统架构软件要求
linux/amd64x86_64docker docker compose
linux/arm64aarch64docker docker compose

LDNMP 支持的技术栈

服务版本
Nginx1.25.x
MySQL8.3.x
PHP8.3.x
Adminerlatest

应用版本更新与官方保持同步。

目录结构

相对目录描述
./apps/mysql/confMySQL配置文件所在路径
./apps/mysql/dataMySQL数据存放目录
./apps/mysql/logsMySQL日志存放路径
./apps/nginxNginx配置文件目录
./apps/nginx/sslNginx证书存放目录
./apps/nginx/logsNginx日志存放目录
./web网站存放目录
./apps/phpPHP配置文件目录
./apps/php/logsPHP-FPM日志目录
./apps/php/etcphp.ini php-fpm.conf 配置目录

安装相对目录可编辑 docker-compose.yaml 修改

已安装并支持的PHP扩展

ExtensionPHP 8.3
amqp
apcu
ast
bcmath
bitset
blackfire
bz2
calendar
csv
dba
decimal
ds
enchant
ev
event
excimer
exif
ffi
ftp
gd
geospatial
gettext
gmagick
gmp
gnupg
http
igbinary
imap
inotify
intl
ion
json_post
jsonpath
ldap
luasandbox
lzf
mailparse
maxminddb
mcrypt
memcache
memcached
mongodb
msgpack
mysqli
oauth
oci8
odbc
opcache
openswoole
opentelemetry
pcntl
pcov
pdo_dblib
pdo_mysql
pdo_oci
pdo_odbc
pdo_pgsql
pgsql
php_trie
pkcs11
pq
protobuf
pspell
raphf
rdkafka
redis
relay
seasclick
seaslog
shmop
smbclient
snappy
snmp
snuffleupagus
soap
sockets
solr
spx
ssh2
stomp
sync
sysvmsg
sysvsem
sysvshm
tideways
tidy
timezonedb
uopz
uploadprogress
uuid
uv
vld
xdebug
xhprof
xlswriter
xmldiff
xmlrpc
xsl
yac
yaml
zephir_parser
zip
zmq
zstd

此扩展来自 https://github.com/mlocati/docker-php-extension-installer 参考示例文件

快速开始

启动过程: 拉取代码 – 拉取镜像 – 启动服务, 其中 PHP 镜像是基于官方 PHP 镜像默认安装了所有 PHP 扩展, 因此无需再安装 PHP 扩展, 开箱即用。

  1. 下载在线部署包

    wget https://renwole.com/ldnmp/v1.0.tar.gz
  2. 解压

    tar zxf v1.0.tar.gz
  3. 设置目录权限

    chmod -R 777 ldnmp*
  4. 进入项目目录, 执行以下命令启动服务

    docker-compose up -d
    或
    docker compose up -d
  5. 安装完成后,在浏览器中访问:http://localhost:8084https://localhost:8085 (自签名HTTPS) 就能看到安装后的效果, PHP代码在文件./web/index.php

  6. 可访问 http://localhost:8086 访问 Adminer 管理 MySQL 数据库

  7. 安装完成后,执行如下命令可查看 MySQL 密码,账号默认:root

    cat docker-compose.yaml | grep MYSQL_ROOT_PASSWORD

自定义安装

  1. 默认会自动安装 docker-compose.yaml 中所有的服务, 即: Nginx, MySQL, PHP, Adminer
  2. 只安装 Nginx
    docker-compose up -d nginx
  3. 只安装 PHP
    docker-compose up -d php
  4. 只安装 MySQL
    docker-compose up -d mysql

PHP 扩展

  1. 可根据需要编辑 docker-compose.yaml 找到 PHP_EXTENSIONS 默认是所有的 PHP 扩展, 根据需要删除或增加 https://github.com/mlocati/docker-php-extension-installer 中支持的 PHP 扩展, 多个扩展以空格分隔
  2. 编辑完成后, 执行如下命令开始构建
    docker-compose build

    docker compose build
  3. 执行如下命令启动构建后的服务
    docker-compose up -d

    docker compose up -d

管理

重启 Nginx

docker restart nginx

重启 MySQL

docker restart mysql

重启 PHP

docker restart php

重启 Adminer

docker restart adminer

可选参数: docker <stop|start|restart> servicename

默认端口

服务容器暴露端口默认端口
Nginx8084(http)/ 8085(https)80/443
PHP90009000
MySQL33073306
Adminer80858080

可编辑 docker-compose.yaml 修改对应服务的端口

卸载

  1. 找到 docker-compose.yaml 文件所在目录,执行如下命令停止服务

    docker-compose down
  2. 在终端执行如下命令可删除所有数据

    rm -rf apps docker-compose.yaml web
  3. 在终端执行如下命令删除 Docker 镜像

    docker rmi $(docker images | grep 'php|nginx|mysql' | awk '{print $3}')

卸载删除意味着所有数据将不复存在且不可逆, 请先备份。卸载删除意味着所有数据将不复存在且不可逆, 请先备份。

快速开始》有6个想法

    1. Node 文章作者

      以前的虚拟机内存小,所以关闭后不至于在编译的时候内存不足导致Kill掉,不过现在随着机器规格的提高和性价比,该参数可以根据自己的需求关闭或开启。

      回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code