快速开始

先决条件

支持的操作系统

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

LDNMP 支持的技术栈

服务版本
Nginx1.27.x
MySQL9.0.x
PHP8.3.x
Adminerlatest
Redis7.x
应用版本更新与官方保持同步。

目录结构

相对目录描述
./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 配置目录
./apps/redis/confRedis 配置文件所在目录
./apps/redis/data数据存储目录
安装相对目录可根据需要编辑 docker-compose.yaml 修改。

已安装并支持的PHP扩展

ExtensionPHP 8.3
amqp
apcu
ast
bcmath
bitset
blackfire
bz2
calendar
Core
csv
ctype
curl
date
dba
ddtrace
decimal
dom
ds
enchant
ev
event
excimer
exif
FFI
fileinfo
filter
ftp
gd
gearman
geos
geospatial
gettext
gmagick
gmp
gnupg
grpc
hash
http
iconv
igbinary
imap
inotify
intl
ion
json
json_post
jsonpath
ldap
libsmbclient
libxml
luasandbox
lzf
mailparse
maxminddb
mbstring
mcrypt
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
newrelic
OAuth
oci8
odbc
openssl
parle
pcntl
pcov
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_OCI
PDO_ODBC
pdo_pgsql
pdo_sqlite
pdo_sqlsrv
pgsql
Phar
php_trie
phpy
pkcs11
posix
pq
protobuf
pspell
random
raphf
rdkafka
readline
redis
Reflection
relay
SeasClick
SeasLog
session
shmop
SimpleXML
smbclient
snappy
snmp
snuffleupagus
soap
sockets
sodium
solr
SourceGuardian
SPL
SPX
sqlite3
ssh2
standard
Stomp
swoole
sync
sysvmsg
sysvsem
sysvshm
tideways
tidy
timezonedb
tokenizer
uploadprogress
uuid
uv
vld
xdebug
xdiff
xhprof
xlswriter
xml
xmldiff
xmlreader
xmlrpc
xmlwriter
xsl
yac
yaml
yar
Zend OPcache
zephir_parser
zip
zlib
zmq
zstd
此扩展来自 https://github.com/mlocati/docker-php-extension-installer 参考示例文件

快速开始

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

  1. 下载在线部署包
    wget https://renwole.com/ldnmp/v1.2.tar.gz
  2. 解压
    tar zxf v1.2.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 扩展, 多个扩展以空格分隔(构建支持多平台操作,可参考:https://docs.docker.com/build/building/multi-platform/
  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
Adminer80868080
Redis63796379
可编辑 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}')

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

快速开始》有8个想法

    1. Node 文章作者

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

      回复

发表回复

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

Captcha Code