关于PHP执行用户和docker路径挂载的问题

关于PHP执行用户的问题

对于通过SFTP上传文件搭建的网站,有时会遇到权限问题。要么权限没给够,提示没有权限。一般遇到这种直接给全部权限,也就是‘777’权限可以解决。但对于安全设置严格的web程序这么操作会提示文件夹或文件可以被其他用户读取不安全,这就需要改文件夹或文件的所属用户了。
然而并不知道,用户是谁。下面是我在解决该问题时学习的一些方法。不过到目前位置还是没有理解透彻。
我在搭建nextcloud的时候就遇到了上面提到的问题,参考官方镜像搭建成功的web程序,发现很多文件夹所属用户是‘33’,但是主机系统中并没有这个用户。

php配置文件中的用户组如下,如果不存在,会使用默认用户执行。

user = www-data
group = www-data
www-data

获取nginx和php用户和组

[root@iZ8vbajg9wo8iwynfb1lgeZ data]# ps axu|grep nginx
root     1322844  0.0  0.3  37772  6232 ?        Ss   15:12   0:00 nginx: master process nginx -g daemon off;
101      1322890  0.0  0.3  38364  6740 ?        S    15:12   0:00 nginx: worker process
root     1331548  0.0  0.0  12108  1052 pts/0    S+   15:36   0:00 grep --color=auto nginx
[root@iZ8vbajg9wo8iwynfb1lgeZ data]# ps axu|grep php
root     1322682  0.0  1.4 216796 26416 ?        Ss   15:12   0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
admin    1323298  0.1  2.3 223656 44364 ?        S    15:13   0:01 php-fpm: pool www
admin    1323731  0.1  2.3 223592 43104 ?        S    15:14   0:01 php-fpm: pool www
admin    1324200  0.1  2.2 223484 42808 ?        S    15:15   0:01 php-fpm: pool www
root     1331742  0.0  0.0  12108  1076 pts/0    S+   15:36   0:00 grep --color=auto php

**

docker路径挂载问题

build成功之后的部分日志


117668470    0 drwxr-xr-x 2 root root      24 Sep 21 14:37 /tmp/pear/temp/pear-build-defaultuser6thOCT/install-mongodb-1.11.1/usr/local/lib/php/extensions/no-debug-non-zts-20210902
117668471 8396 -rwxr-xr-x 1 root root 8595192 Sep 21 14:37 /tmp/pear/temp/pear-build-defaultuser6thOCT/install-mongodb-1.11.1/usr/local/lib/php/extensions/no-debug-non-zts-20210902/mongodb.so
Build process completed successfully
Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20210902/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.11.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongodb.so" to php.ini
Removing intermediate container 237ce43c5051
---<!--autointro-->

dockercompose+traefik安装wordpress

yml文件`wordpress-docker-compose.yml

version: "3.7"
services:
  wordpress:
    image: wordpress
    restart: always
    # ports:
    #   - 8080:80
    environment:
      WORDPRESS_DB_HOST: mariadb #这里的数据库用的时lnmp中的,在同一个网络
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: SQLroot77
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wordpress.entrypoints=websecure"
      - "traefik.http.routers.wordpress.rule=Host(`wp.weiyoun.com`)"
      - "traefik.http.routers.wordpress.tls.certresolver=lets-encr"
volumes:
  wordpress:
networks:
  default:
    external:
      name: traefik

运行

docker-compose -f wordpress-docker-compose.yml up
用域名访问,提示数据库连接错误
这是因为数据库中没有创建wordpress数据库
进入数据库容器docker exec -it dc1_mariadb_1 bash 进入数据库mysql -u root -p
创建并查询数据库


MariaDB [(none)]<!--autointro-->

docker搭建nps

yml文件nps-docker-compose.yml

version: "3.7"
services:
  frps:
    image: ffdfgdfg/nps
    container_name: nps
    hostname: frps
    restart: unless-stopped
    ports:
      - "7443:8080"
    #   # - 7400:7400
    #   - 7000:7000
    #   - 8888:8888
    volumes:
      - nps:/conf
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nps.entrypoints=websecure"
      - "traefik.http.routers.nps.rule=Host(`nps.weiyoun.com`)"
      - "traefik.http.routers.nps.tls.certresolver=lets-encr"
      - traefik.http.routers.nps.service=nps #多路由必须定义不同的服务名
      - "traefik.http.services.nps.loadbalancer.server.port=8080"
      - "traefik.docker.network=proxy"
      # - "traefik.http.routers.frpshttp.entrypoints=websecure"
      # - "traefik.http.routers.frpshttp.rule=Host(`frpshttp.weiyoun.com`)"
      # - "traefik.http.routers.frpshttp.tls.certresolver=lets-encr"
      # - traefik.http.routers.frpshttp.service=frpshttp #多路由必须定义不同的服务名
      # - "traefik.http.services.frpshttp.loadbalancer.server.port=8888"
      # - "traefik.http.routers.a.entrypoints=websecure"
      # - "traefik.http.routers.a.rule=Host(`a.weiyoun.com`)"
      # - "traefik.http.routers.a.tls.certresolver=lets-encr"
      # - traefik.http.routers.a.service=a #多路由必须定义不同的服务名
      # - "traefik.http.services.a.loadbalancer.server.port=8888"
      # # - "traefik.docker.network=proxy"
networks:
  default:
    external:
      name: traefik
volumes:
  nps:

下载配置文件放入映射的文件夹下:

-   下载[conf文件夹](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/ehang-io/nps/tree/master/conf)并解压,或前往[项目主页](https://github.com/ehang-io/nps)自行下载**(升级请忽略)**
-   继续阅读[文档](https://ehang-io.github.io/nps/#/example)按照不同的启动方式启动**(升级请忽略)**

就可以用域名访问了。

docker安装wagtail探索过程

221205构建成功

[docker安装wagtail核心配置文件]

进入容器报错

[root@iZ8vbajg9wo8iwynfb1lgeZ dc_wagtail]# docker exec -it wagtail bash
OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown

由于使用的是python镜像为基础镜像,使用的是精简系统alphine,没有安装bash,只有sh,所以进入容器无法使用bash命令。
需要用python

docker exec -it wagtail python

或者使用

docker exec -it wagtail /bin/sh

查找python位置

/ # find . -name 'python'
./usr/local/bin/python
/ # find . -name 'wagtail'
./usr/local/bin/wagtail
./usr/local/lib/python3.11/site-packages/wagtail
/ # 
/ # wagtail start app
Creating a Wagtail project called app
Success! app has been created
/ # cd app
/app # python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, home, sessions, taggit, wagtailadmin, wagtailcore, wagtaildocs, wagtailembeds, wagtailforms, wagtailimages, wagtailredirects, wagtailsearch, wagtailusers
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK

非交互创建用户

/app # echo "from django.contrib.auth.models import User; User.objects.create_superuser('myadmin', 'myemail@example.com', 'hunter2')" | python manage.py shell
/app # 

在docker中直接搭建时采用如下用户名

# echo "from django.contrib.auth.models import User; User.objects.create_superuser('myadmin', 'myemail@example.com', 'wagtailadmin')" | python manage.py shell

容器内部运行服务日志,不推荐这个开启方法

/app # echo "from django.contrib.auth.models import User; User.objects.create_superuser('myadmin', 'myemail@example.com', 'hunter2')" | python manage.py shell
/app # python manage.py runserverpython manage.py runserver
Unknown command: 'runserverpython'. Did you mean runserver?
Type 'manage.py help' for usage.
/app # python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
December 05, 2022 - 06:21:25
Django version 4.1.3, using settings 'app.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
/app # python manage.py runserver 127.0.0.1:80
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
December 05, 2022 - 06:24:19
Django version 4.1.3, using settings 'app.settings.dev'
Starting development server at http://127.0.0.1:80/
Quit the server with CONTROL-C.

docker中直接运行wagtail会无法访问

/app/app # python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
December 05, 2022 - 07:11:47
Django version 4.1.3, using settings 'app.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

需要指定地址0.0.0.0才行

/app/app # python manage.py runserver 0.0.0.0:8000
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
December 05, 2022 - 07:25:03
Django version 4.1.3, using settings 'app.settings.dev'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[05/Dec/2022 07:25:11] "GET / HTTP/1.1" 200 6830
[05/Dec/2022 07:25:11] "GET /static/css/app.css HTTP/1.1" 200 0
[05/Dec/2022 07:25:11] "GET /static/css/welcome_page.css HTTP/1.1" 200 2522
[05/Dec/2022 07:25:11] "GET /static/js/app.js HTTP/1.1" 200 0
Not Found: /favicon.ico
[05/Dec/2022 07:25:11] "GET /favicon.ico HTTP/1.1" 404 3365

wagtail使用域名访问报错

CSRF verification failed. Request aborted.

setting文件增加
**CSRF_TRUSTED_ORIGINS = ['https://wagtail.weiyoun.com/']**
就可以了

改完后记得保存,wagtail会自动重新加载,域名外的方括号是必须的。

参考下面这个很可能可以解决上面问题


> echo "from django.contrib.auth import get_user_model; get_user_model().objects.create_superuser('admin', '', 'changeme')" | python manage.py shell
<!--autointro-->

docker安装wagtail核心配置文件

docker安装wagtail核心配置文件

yml文件

version: '3.7'
services:
  wagtail:
    container_name: wagtail
    # restart: unless-stopped
    image: wagtail:selfV1
    build:
      context: .
      dockerfile: Dockerfile  
    # stdin_open: true
    # tty: true
    volumes:
      - wagtailpython:/usr/local/lib/python3.11
      - wagtailapp:/app
    # ports:
    #   - "5212:8000"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wagtail.entrypoints=websecure"
      - "traefik.http.routers.wagtail.rule=Host(`wagtail.weiyoun.com`)"
      - "traefik.http.routers.wagtail.tls.certresolver=lets-encr"
      - traefik.http.routers.wagtail.service=wagtail #多路由必须定义不同的服务名
      - "traefik.http.services.wagtail.loadbalancer.server.port=8000"
networks:
  default:
    external:
      name: traefik
volumes:
  wagtailpython:
  wagtailapp:

dockerfile


FROM python:3.11-alpine3.17
LABEL maintainer="weiyoun.com"
# 为了及时输出日志
# 221205报错Watching for file changes with StatReloader
# ENV PYTHONUNBUFFERED 0
ENV PYTHONUNBUFFERED 1
# 保持运行,在docker-compose中添加也可以,放在具体服务的子集中。不添加会因为没有任务而退出容器
ENV stdin_open true
ENV tty true
# pip安装列表,里面写需要pip安装的包
ADD requirements.txt ./
# 安装,构建网站,设置超级用户
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple \
    && wagtail start app \
    && cd app \
    && python manage.py migrate \
    && echo "from django.contrib.auth.models import User; User.objects.create_superuser('myadmin', 'myemail@example.com', 'wagtailadmin')" | python manage.py shell
# 运行网站不能写入RUN,否则不能成功构建镜像  
    # && python manage.py runserver 0.0.0.0:8000
EXPOSE 8000
VOLUME /app   /usr/local/lib/python3.11
# VOLUME ["/app"]
# VOLUME ["/usr/local/lib/python3.11"]
# VOLUME ["/app","/usr/local/lib/python3.11"]
# VOLUME [/usr/local/lib/python3.11]
# ADD . ./
CMD cd /app \
    && python manage.py runserver 0.0.0.0:8000
# sh: manage.py,: unknown operand
# CMD cd /app \
#     && [ "python", "manage.py", "runserver", "0.0.0.0:8000" ]
# 报错python: can't open file '//manage.py': [Errno 2] No such file or directory
# CMD [ "python", "manage.py", "runserver", "0.0.0.0:8000" ]
# 下面命令导致进入/app/app,wagtail exited with code 0
# CMD cd app \
#     && [ "python manage.py runserver 0.0.0.0:8000" ]
# 会在根目录执行,找不到命令
# CMD [ "python manage.py runserver 0.0.0.0:8000" ]
# 报错python: can't open file '//manage.py': [Errno 2] No such file or directory
# CMD python manage.py runserver 0.0.0.0:8000
# 下面的形式无法正常运行,把"manage.py runserver 0.0.0.0:8000"当成了一个参数,提示没有文件
# CMD [ "python", "manage.py runserver 0.0.0.0:8000" ]

cloudreve搭建过程

最近折腾nextcloud了,但是在我搭建好LNMP环境下安装总是不能完全正常工作。搜索解决办法也无效。所以还是打算再搭建一个cloudreve。
之前用过cloudreve,这个网盘无论搭建还是使用都很简单,界面也很清爽。
![[Pasted image 20221020183935.png]]
以前是直接运行应用程序,然后配置一下就可以了。
这一次打算用docker配置,这样会更方便管理且容易扩展。
下面记录了我的搭建过程。

  1. 创建目录结构
    这一步的目的是为了docker数据的持久化以及配置等文件的放置设置。
    首先进入你想要放置cloudreve的文件夹,运行以下命令:

    mkdir -vp cloudreve/{uploads,avatar} \
    && touch cloudreve/conf.ini \
    && touch cloudreve/cloudreve.db \
    && mkdir -p aria2/config \
    && mkdir -p data/aria2 \
    && chmod -R 777 data/aria2
  2. 新建docker-compose文件
  3. 在当前文件夹下新建docker-compose.yml文件,写入以下内容。
    yml文件内容:

    version: "3.8"
    services:
      cloudreve:
        container_name: cloudreve
        image: cloudreve/cloudreve:latest
        restart: unless-stopped
        ports:
          - "5212:5212"
          - "443:443"
        volumes:
          - temp_data:/data
          # - ./cloudreve:/cloudreve # 221018 add ,error
          - ./cloudreve/uploads:/cloudreve/uploads
          - ./cloudreve/conf.ini:/cloudreve/conf.ini
          - ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
          - ./cloudreve/avatar:/cloudreve/avatar
        depends_on:
          - aria2
      aria2:
        container_name: aria2
        image: p3terx/aria2-pro
        restart: unless-stopped
        environment:
          - RPC_SECRET=your_aria_rpc_token
          - RPC_PORT=6800
        volumes:
          - ./aria2/config:/config
          - temp_data:/data
    volumes:
      temp_data:
        driver: local
        driver_opts:
          type: none
          device: $PWD/data
          o: bind
  4. 运行docker-compose
    运行docker-compose有两种方式如下:

    # 后台运行模式,可以从 docker/docker-compose 的日志中获取默认管理员账户用户名和密码
    docker-compose up -d
    # 或者,直接运行,log 将会直接输出在当前控制台中,请注意退出之后保持当前容器运行
    docker-compose up

    第二种方式可以看到实时日志,使用<ctrl+z>

用自己的服务器搭建nextcloud网盘方案

背景

最近换了服务器,准备再搭建一下网盘用于以后的使用。
以前用的cloudreve,功能比较简单,由于用得少,渐渐停用了。
这次尝试了nextcloud和seafile。
这次搭建网盘花费了不少时间,因为总是不太顺利。这可能和我对docker不够熟悉有关,另外网盘的搭建教程多少有点不完善。
单单是搭建LNMP环境找合适的dockerfile和yml文件就很不容易。要找到适合自己的只能一步一步学习探索。幸运的是最后终于写出了适合自己的php8.0的dockerfile文件,并且可以正常使用。该文件也已经附在文章当中。希望对你有用。
虽然nextcloud用户比较多,但自己去搭建网盘服务的毕竟是少数。所以有很多问题找不到答案。
因此我把我的搭建过程写下来,给后来的人一些参考,少走一些弯路。不过需要说明的是,本片文章是我对探索出来可用的配置做一个记录,方便今后直接使用。内容比较简单,因此不适合新手当作教程用,因为可能会遇到其他问题不知道怎么解决。这篇文章供有一定基础的人参考,作用在于提供一个核心配置和一点思路。
seafile直接使用官方的方法搭建成功了。但是再启用https的时候又坑,虽然官方说新版本已经解决,但实际上并没有。并且官方给的解决办法不起作用。
seafile整体功能还可以,不过它会创建很多数据库,还有不少服务,再加上界面我也不太喜欢,所以就没用。
nextcloud功能很丰富,界面比较喜欢,不过用了很多方法去搭建,只有一种能完全成功的运行,并且还不确定如果让我再搭建一次还能不能成功。其他的都会有部分功能不正常。已经查明的原因有:

  1. 权限设置不符合程序要求,
  2. nginx配置设置不完善。
    还有些也不知道具体原因,感觉程序日志不完善。
    下面是我安装nextcloud安装方式中的两种方案,一个是使用官方的应用镜像,一个是自己搭好LNMP环境用单文件脚本装的。
    两种方式都是用到docker-compose工具。
    第一种方案所有功能可以正常使用,但是不确定是否可以复现。
    第二种方案基本功能可以正常使用,但是有写功能不能正常加载,目前不清楚原因。

利用官方镜像安装

docker-compose使用的yml文件:

version: "3.4"
services:
  mysql:
    hostname: mysql
    restart: always
    image: mysql:5.6
    container_name: mysql
    ports:
      - "3306:3306"
    volumes:
      - mysql-config:/etc/mysql
      - mysql-log:/var/log/mysql
      - mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpw
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: user
      MYSQL_PASSWORD: user123
      # sort_buffer_size : 524288 #220920add no use
  cache:
    image: redis
    restart: unless-stopped
    expose:
     - "6379"
    volumes:
     - ./cache:/data
    command: redis-server --requirepass 'redis_password' # 这里的redis_password换成你要配置的redis密码
    # command指的是启动容器后代替默认启动指令来启动服务的指令
  app:
    image: nextcloud:fpm
    restart: unless-stopped
    expose:
     - "9000"
    volumes:
     - ./app/html:/var/www/html
     - ./app/data:/var/www/html/data
     - ./app/config:/var/www/html/config
     - ./app/custom_apps:/var/www/html/custom_apps
    links:
    # links将容器与当前容器链接起来,以使得当前容器可以访问目标容器expose的端口
    # 格式为 容器的原名:映射到当前容器中的名称
     - mysql:mysql
     - cache:cache
    depends_on:
    # 依赖的容器列表,只有这些容器都成功启动了,才会启动当前容器
     - mysql
     - cache
  nginx:
    hostname: nginx
    restart: always
    container_name: nginx
    image: nginx:1.17.0
    ports:
      - "80:80"
      - "443:443"
    links:
      #- "php:php"
      - app:app
    volumes:
      - nginx-config:/etc/nginx
      - nginx-log:/var/log/nginx
      - nginx-html:/usr/share/nginx/html    
      - ./app/html:/var/www/html
      - ./proxy/conf.d:/etc/nginx/conf.d:ro
      - ./proxy/ssl_certs:/etc/nginx/ssl_certs:ro
    depends_on:
     - app
volumes:
  mysql-config:
  mysql-log:
  mysql-data:
  nginx-html:
  php-config:
  nginx-config:
  nginx-log:

搭建LNMP环境后再安装Nextcloud

搭建LNMP环境使用的yml:

version: "3.4"
services:
  mysql:
    hostname: mysql
    restart: always
    image: mysql:5.6
    container_name: mysql
    ports:
      - "3306:3306"
    volumes:
      - /home/mysql-config:/etc/mysql
      - /home/mysql-log:/var/log/mysql
      - /home/mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpw
      MYSQL_USER: user
      MYSQL_PASSWORD: user123
  php:
    hostname: php
    restart: always
    image: php:8.0
    container_name: php
    build:
      context: ./php
      dockerfile: Dockerfile
    ports:
      - "9000:9000"
    links:
      - mysql:mysql
    volumes:
      - /home/nginx-html:/var/www/html
      - /home/php-workspace:/workspace
      - /home/php-config:/usr/local/etc
    depends_on:
        # 依赖的容器列表,只有这些容器都成功启动了,才会启动当前容器
        - mysql
        - redis      
  nginx:
    hostname: nginx
    restart: always
    container_name: nginx
    image: nginx:1.17.0
    ports:
      - "80:80"
      - "443:443"
    links:
      - "php:php"
    volumes:
      - /home/nginx-config:/etc/nginx
      - /home/nginx-log:/var/log/nginx
      - /home/nginx-html:/usr/share/nginx/html
      # - /home/nginx-config/conf.d:/etc/nginx/conf.d:ro
      # - /home/nginx-config/ssl_certs:/etc/nginx/ssl_certs:ro      
    depends_on:
     - php
  redis:
    image: redis
    restart: unless-stopped
    expose:
      - "6379"
    volumes:
      - /home/redis:/data
    command: redis-server --requirepass 'redis_password' # 这里的redis_password换成你要配置的redis密码
    # command指的是启动容器后代替默认启动指令来启动服务的指令

php的dockerfile:
此文件放入上面yml文件的同级目录的php文件夹下。


FROM php:8.0-fpm
#docker中php扩展安装方式
#1、PHP源码文件目录自带扩展 docker-php-ext-install直接安装
#2、pecl扩展 因为一些扩展不包含在PHP源码文件中,PHP 的扩展库仓库中存在。用 pecl install 安装扩展,再用 docker-php-ext-enable 命令 启用扩展
#3、其他扩展 一些既不在 PHP 源码包,也不再 PECL 扩展仓库中的扩展,可以通过下载扩展程序源码,编译安装的方式安装
#redis扩展 仓库地址 https://pecl.php.net/package/redis
ENV PHPREDIS_VERSION 5.3.4
#memcached扩展 仓库地址 https://pecl.php.net/package/memcached
ENV MEMCACHED_VERSION 3.1.5
#mongodb扩展 https://pecl.php.net/package/mongodb
ENV MONGODB_VERSION 1.11.1
# 设置时间
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo 'Asia/Shanghai' <!--autointro-->

误删docker映射文件夹

使用lsof命令查看已经被删除的dc1目录

lsof | grep dc1

报了很多如下错误
lsof: no pwd entry for UID 201
加上-w参数

[root@host dc1]# lsof -w | grep dc1
rsyslogd      958                               root  mem       REG              253,1   8388608   19328181 /var/log/journal/20200914151302543507749550121287/system@648eeedc1a184078a509085b963bf9c5-0000000000000001-0005eb62d7d08cb7.journal
rsyslogd      958                               root   13r      REG              253,1   8388608   19328181 /var/log/journal/20200914151302543507749550121287/system@648eeedc1a184078a509085b963bf9c5-0000000000000001-0005eb62d7d08cb7.journal
rsyslogd      958     967 in:imjour             root  mem       REG              253,1   8388608   19328181 /var/log/journal/20200914151302543507749550121287/system@648eeedc1a184078a509085b963bf9c5-0000000000000001-0005eb62d7d08cb7.journal
rsyslogd      958     967 in:imjour             root   13r      REG              253,1   8388608   19328181 /var/log/journal/20200914151302543507749550121287/system@648eeedc1a184078a509085b963bf9c5-0000000000000001-0005eb62d7d08cb7.journal
rsyslogd      958     973 rs:main               root  mem       REG              253,1   8388608   19328181 /var/log/journal/20200914151302543507749550121287/system@648eeedc1a184078a509085b963bf9c5-0000000000000001-0005eb62d7d08cb7.journal
rsyslogd      958     973 rs:main               root   13r      REG              253,1   8388608   19328181 /var/log/journal/20200914151302543507749550121287/system@648eeedc1a184078a509085b963bf9c5-0000000000000001-0005eb62d7d08cb7.journal
bash      1513232                               root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1515153                               root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1515153 1515352 docker-co             root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1515153 1515353 docker-co             root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1518112                               root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1518112 1518233 docker-co             root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1518112 1518234 docker-co             root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1525311                               root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1525311 1525413 docker-co             root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
docker-co 1525311 1525415 docker-co             root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
lsof      1537283                               root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
grep      1537284                               root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)
lsof      1537285                               root  cwd       DIR              253,1         6    6274715 /var/lib/docker/volumes/dc1 (deleted)

[root@host dc1]# cd /proc/1513232/fd
[root@host fd]# ll
total 0
lrwx------ 1 root root 64 Dec  3 15:35 0 -<!--autointro-->

基于docker搭建kodcloud与“Mixed Content”问题解决

221021

布置好后直接用https访问,但一直卡在环境检查部分

按下F2才发现有很多错误
其中一个错误很关键

Mixed Content: The page at 'https://cloud.weiyoun.com/' was loaded over HTTPS, but requested an insecure stylesheet 'http://kodcloud/static/style/dist/main.css'. This request has been blocked; the content must be served over HTTPS.

很明显这是在https条件下访问了http的css资源所以被阻止了。
为了顺利安装,我把防火墙的1111端口开放然后用http访问进入正常的界面。

然后修改配置文件`config/config.php
将【大概在95行代码】:

if(!defined('HOST')){ define('HOST',rtrim(get_host(),'/').'/');} 修改为: if(!defined(‘HOST’)){ define(‘HOST’,’https://你的域名/‘);}
后https可以正常访问了。
![[Pasted image 20221021144104.png]]

整体感觉kodbox这款网盘不错,功能比较丰富,同时速度很快并且资源占用少,搭建问题也少。