更新系统

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

mkdir redis

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:7.4.33-fpm  #独角卡需要用php7,所以和wordpress多网站共存同一vps,要选php7
    container_name: php
    restart: always
    volumes:
      - ./html:/var/www/html
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7.42   #独角卡需要用phpmysql5,所以和wordpress多网站共存同一vps,要选phpmysql5
    container_name: mysql
    restart: always
    ports:
      - 3306:3306
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=webroot
      - MYSQL_DATABASE=web
      - MYSQL_USER=?????   #自己填
      - MYSQL_PASSWORD=????      #自己填

  redis:
    image: redis:latest
    container_name: redis
    restart: always
    ports:
      - 6379:6379
    volumes:
      - ./redis:/data

申请证书

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

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

~/.acme.sh/acme.sh --issue -d 域名 --standalone

下载证书

~/.acme.sh/acme.sh --installcert -d 域名 --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/dujiaoka/public/;
    index index.php;

    try_files $uri $uri/ /index.php?$query_string;    

    # 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;
    }
}

}

下载源码

cd /home/web/html && wget https://github.com/assimon/dujiaoka/releases/download/2.0.6/2.0.6-antibody.tar.gz && apt install -y tar && tar -zxvf 2.0.6-antibody.tar.gz && rm 2.0.6-antibody.tar.gz

运行

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

安装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 pdo_mysql zip bcmath  && 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'

重启php

docker restart php

登录时输入admin:admin报错,使用该命令,解除HTTPS限制

sed -i 's/ADMIN_HTTPS=false/ADMIN_HTTPS=true/g' /home/web/html/dujiaoka/.env

file
file
file

最后修改日期: 2024/08/27

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。