用docker搭建 LDNMP建站环境wordpress

沸腾的木马
• 阅读 216

更新系统

apt update -y  && apt upgrade -y && apt install -y curl wget sudo socat

安装docker

curl -fsSL https://get.docker.com | sh

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

创建目录

cd /home

mkdir web

cd web

mkdir html

mkdir mysql

mkdir certs

touch nginx.conf

nano docker-compose.yml

配置docker-compose

version: '3.8'

services:
  nginx:
    image: nginx
    container_name: nginx
    restart: always
    ports:
      - 80:80
      - 443:443      
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./certs:/etc/nginx/certs      
      - ./html:/var/www/html
    depends_on:
      - php

  php:
    image: php:fpm
    container_name: php
    restart: always
    volumes:
      - ./html:/var/www/html
    depends_on:
      - mysql

  mysql:
    image: mysql
    container_name: mysql
    restart: always
    ports:
      - 3306:3306
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=webroot
      - MYSQL_DATABASE=web
      - MYSQL_USER=asdasdasd
      - MYSQL_PASSWORD=sdfdsfsaf

申请证书

curl https://get.acme.sh | sh

~/.acme.sh/acme.sh --register-account -m xxxx@gmail.com

~/.acme.sh/acme.sh --issue -d 你的vps域名 --standalone

下载证书

~/.acme.sh/acme.sh --installcert -d cn.0514.me --key-file /home/web/certs/key.pem --fullchain-file /home/web/certs/cert.pem

NGINX配置

events {
    worker_connections 1024;
}

http {

    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    client_max_body_size 1000m;  
    #上传限制参数1G以内文件可上传


# HTTP server
server {
    listen 80;
    server_name yuming.com;

    # Redirect all HTTP requests to HTTPS
    return 301 https://$host$request_uri;
}

# HTTPS server
server {
    listen 443 ssl http2;
    server_name yuming.com;

    # http2 on;

    ssl_certificate /etc/nginx/certs/cert.pem;
    ssl_certificate_key /etc/nginx/certs/key.pem;

    root /var/www/html;
    index index.php;

    # rewrite ^/vip.php(.*)$ /vip.php?s=$1 last;

    try_files $uri $uri/ =404;

    # PHP-FPM configuration
    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

}

下载源码

maccms10 (苹果的cms,可不安装)

cd /home/web && wget https://github.com/magicblack/maccms_down/raw/master/maccms10.zip && sudo apt-get install -y unzip && unzip maccms10.zip -d html && rm maccms10.zip && mv /home/web/html/maccms10-master/* /home/web/html/

wordpress

cd /home/web && wget https://cn.wordpress.org/wordpress-6.2-zh_CN.zip && sudo apt-get install -y unzip && unzip wordpress-6.2-zh_CN.zip -d html && rm wordpress-6.2-zh_CN.zip && mv /home/web/html/wordpress/* /home/web/html/

运行

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 chown -R www-data:www-data /home/web/html chmod -R 755 /home/web/html chmod -R 775 /home/web/html/wp-content

安装PHP扩展

docker exec php apt update && docker exec php apt install -y libmariadb-dev-compat libmariadb-dev libzip-dev
docker exec php docker-php-ext-install mysqli pdo_mysql zip

重启php

docker restart php
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Wesley13 Wesley13
2年前
ubuntu18.04下系统级代理自动路由(包括浏览器、终端、apt
一、远程服务端(shadowsocks服务)远端服务服务器安装shadowsocks服务端,建议使用docker方式。安装docker环境:curlfsSLhttps://get.docker.com|bashsdockermirrorAliyun 安装shadowsocks服务
Stella981 Stella981
2年前
Android项目实战系列—基于博学谷(一)项目综述
!image(https://www.cztcms.cn/wpcontent/uploads/2020/03/%E5%8D%9A%E5%AD%A6%E8%B0%B7.png)一、项目分析1、项目名称WordPress建站APP2、项目概述WordPress建站是一个学习博客建站技术的APP
可莉 可莉
2年前
18个常用 webpack插件,总会有适合你的!
!(https://oscimg.oschina.net/oscnet/71317da0c57a8e8cf5011c00e302a914609.jpg)来源| https://github.com/Michaellzg/myarticle/blob/master/webpack/Plugin何为插
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
Redis——集群搭建
一、Redis集群:  集群解决并发的问题;  哨兵解决高可用的问题; !(https://oscimg.oschina.net/oscnet/a3d3506dc6dcb9cbe01ee2c6a83925c98a0.png)二、集群搭建:  //基于redis5.0;   1)启动三台Linux系统,且用docke
可莉 可莉
2年前
20分钟学会Docker部署SpringBoot项目
我们的开源博客项目eblog已经更新完毕了。今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos7系统上,本实验适用部署大部分Springboot项目。eblog项目地址:https://github.com/MarkerHub/eblog(https://www.oschina.net/action/GoToLi
Stella981 Stella981
2年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
Wesley13 Wesley13
2年前
mysql5.7.26 基于GTID的主从复制环境搭建
mysql5.7.26基于GTID的主从复制环境搭建时间:2019090616:10:21    阅读:20    评论:0    收藏:0    \点我收藏\标签:connect(https://www.oschina.net/action/GoToLink?
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_