|
|
本帖最后由 Warren 于 2025-7-9 22:10 编辑
6大LDNMP进阶点:
1.nginx站点独立配置,更灵活,方便管理,更简单
2.不必要端口映射隐藏,提升安全性。
3.PHP双环境部署,对应多类型网站源码适用,兼容性更强! (展示WordPress,苹果CMS,独角数卡共存!)
4.所有类型的网站接入Redis,速度更快!
5.每个网站部署独立自己数据库,更好管理,提升性能与安全!
6.支持ARM机型的搭建LDNMP,更强兼容性!
更新系统
- apt update -y && apt upgrade -y && apt install -y curl wget sudo socat unzip tar htop
复制代码 安装docker
【新提醒】ubuntu22.04更改源,安装Docker 及docker compose - Ubuntu - Home!
创建必要的目录和文件
- mkdir -p /home/web && cd /home/web && mkdir html mysql certs conf.d redis
复制代码 添加文件,nginx.conf放到conf.d下面,网站如果有多个按任意名字书写,不要使用nginx.conf,
- cat > ./conf.d/nginx.conf << EOF
- server {
- listen 80;
- server_name discuz.starkw.cn;
- return 301 https://\$host\$request_uri;
- }
- server {
- listen 443 ssl;
- server_name discuz.starkw.cn;
- http2 on;
- ssl_certificate /etc/nginx/certs/discuz.crt;
- ssl_certificate_key /etc/nginx/certs/discuz.key;
- #此位置是修改网站首页所在,需要注意
- root /var/www/html/web1/discuz;
- index index.php;
- try_files $uri $uri/ /index.php?$args;
- # 苹果cms伪静态
- # rewrite ^/index.php(.*)$ /index.php?s=$1 last;
- # rewrite ^/vip.php(.*)$ /vip.php?s=$1 last;
- # rewrite ^/api.php(.*)$ /api.php?s=$1 last;
- location ~ \.php$ {
- fastcgi_pass php:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- client_max_body_size 50m;
- }
- EOF
复制代码 下载 docker-compose.yml 文件并进行替换
cat > ./docker-compose.yml << EOF
version: '3.8'
services:
nginx:
image: nginx
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./conf.d:/etc/nginx/conf.d
- ./certs:/etc/nginx/certs
- ./html:/var/www/html
- ./log/nginx:/var/log/nginx
php:
image: php:fpm
container_name: php
restart: unless-stopped
volumes:
- ./html:/var/www/html
php74:
image: php:7.4.33-fpm
container_name: php74
restart: unless-stopped
volumes:
- ./html:/var/www/html
mysql:
image: mysql
container_name: mysql
restart: unless-stopped
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: amochili1&2
MYSQL_USER: stark
MYSQL_PASSWORD: amochili1^2
redis:
image: redis
container_name: redis
restart: unless-stopped
volumes:
- ./redis:/data
EOF
运行
- cd /home/web && docker-compose up -d
复制代码 赋予权限
- docker exec -it nginx chmod -R 777 /var/www/html
- docker exec -it php chmod -R 777 /var/www/html
- docker exec -it php74 chmod -R 777 /var/www/html
复制代码 安装PHP扩展,调整上传文件大小限制,内存限制,可以一次性粘贴
- docker exec php apt update && docker exec php apt install -y libmariadb-dev-compat libmariadb-dev libzip-dev libmagickwand-dev imagemagick
- docker exec php docker-php-ext-install mysqli pdo_mysql zip exif gd intl bcmath opcache
- docker exec php pecl install imagick && docker exec php sh -c 'echo "extension=imagick.so" > /usr/local/etc/php/conf.d/imagick.ini'
- docker exec php pecl install redis && docker exec php sh -c 'echo "extension=redis.so" > /usr/local/etc/php/conf.d/docker-php-ext-redis.ini'
- docker exec php sh -c 'echo "upload_max_filesize=50M \n post_max_size=50M" > /usr/local/etc/php/conf.d/uploads.ini'
- docker exec php sh -c 'echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini'
复制代码 php7.4安装PHP扩展,调整上传文件大小限制,内存限制,可以一次性粘贴
- docker exec php74 apt update && docker exec php74 apt install -y libmariadb-dev-compat libmariadb-dev libzip-dev libmagickwand-dev imagemagick
- docker exec php74 docker-php-ext-install mysqli pdo_mysql zip gd intl bcmath opcache
- docker exec php74 pecl install imagick && docker exec php74 sh -c 'echo "extension=imagick.so" > /usr/local/etc/php/conf.d/imagick.ini'
- docker exec php74 pecl install redis && docker exec php74 sh -c 'echo "extension=redis.so" > /usr/local/etc/php/conf.d/docker-php-ext-redis.ini'
- docker exec php74 sh -c 'echo "upload_max_filesize=50M \n post_max_size=50M" > /usr/local/etc/php/conf.d/uploads.ini'
- docker exec php74 sh -c 'echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini'
复制代码 重启php
- docker restart php
- docker restart php74
复制代码 创建多个新数据库,可以再添加,独立数据库好管理,备份,迁移等,注意用表的时候加前缀
- docker exec -it mysql mysql -u root -p
- CREATE DATABASE discuz;
- CREATE DATABASE wordpress;
复制代码 查看数据库列表
数据库赋予权限
- GRANT ALL PRIVILEGES ON web1.* TO 'stark'@'%';
- GRANT ALL PRIVILEGES ON web2.* TO 'stark'@'%';
复制代码 删除数据库(可选)
- DROP DATABASE discuz;
- REVOKE ALL PRIVILEGES ON web3.* FROM 'starj'@'%';
复制代码
wp后期配置
- echo "define('FS_METHOD', 'direct'); define('WP_REDIS_HOST', 'redis'); define('WP_REDIS_PORT', '6379');" >> /home/web/html/web1/wordpress/wp-config.php
复制代码
引用:https://blog.kejilion.pro/ldnmp-web/
|
|