Docker系列 搭建nextcloud-fpm + nginx网络服务器
本文最后更新于 52 天前,如有失效请评论区留言。

本博客由ZGOCLOUD大力赞助!如何更快地访问本站?有需要可加电报群获得更多帮助。本博客用什么VPS?创作不易,请支持苯苯!推荐购买本博客的VIP喔,10元/年即可畅享所有VIP专属内容!

日志

前言

之前我在《Docker系列 搭建个人云盘服务nextcloud》中描述了一种基于Apache网络服务器的Nextcloud部署方法,它相对简单,可以体验很多Nextcloud的日常功能。一般来说,VPS这种性能比较差的服务器可以使用这种方案,特别是你没有很多文件/图片预览、视频播放的需求,而只将Nextcloud当作一个文件托管平台时。

不过,如果你准备在一台性能较强的机器(CPU性能高、内存大、磁盘空间大)里安装Nextcloud,我更加推荐本文将要介绍的Nextcloud-FPM-FULL + Nginx服务器方案。经过合理的配置,Nextcloud可以充分利(ya)用(zha)宿主机的性能,在响应速度和稳定性上有较大提升;功能也因为更多依赖的安装而更加强大,比如原生支持图片/视频的实时预览。如果你有一台性能不错的NAS,可以尝试一下该方案噢!

Nextcloud-FPM 使用 FastCGI 进程管理器 (FPM) 来处理 PHP 请求,包括文件同步、共享、用户管理等功能;但未集成 Web 服务器,因此需要用 Nginx 来处理对 Nextcloud 的请求。FULL的概念主要来源于官方文档,即在布署Nextcloud时安装所有扩展功能的相关依赖,比如CRON via supervisor、bz2、imap、gmp、smbclient、ffmpeg、imagemagick 甚至是 LibreOffice[可选,默认禁用]等。

不同于以往使用别人制作好的镜像,我们将直接使用自定义的Dockerfile来生成一个本地镜像。自定义Dockerfile可以提供最大的自由度,这应该才是Nextcloud这种灵活而复杂的应用的最好安装方式了。实际上在Docker的高级用户中,基于Dockerfile的安装方式也是比较流行的。

值得注意的是,《Docker系列 搭建个人云盘服务nextcloud》安装的Nextcloud应该可以迁移至本方案中,但目前还没有测试成功(提示504 Gateway Time-out错误)。所以已经使用了旧版安装方法的小伙伴要考虑一下是否有必要换新,毕竟重构数据也是挺麻烦的。我自己的数据不多(10G+),已经迁移过来了。从长远使用的角度看,本教程的方案是强烈推荐的,毕竟总有一天我们会拥有一台性能强大的机器!

闲话少说,下面咱们讲一下如何部署Nextcloud-FPM-FULL + Nginx服务器吧!

测试环境

系统环境如下:

uname -a # Linux pveomv 5.19.17-2-pve #1 SMP PREEMPT_DYNAMIC PVE 5.19.17-2 (Sat, 28 Jan 2023 16:40:25  x86_64 GNU/Linux
docker --version # Docker version 23.0.5, build bc4487a
docker-compose --version # Docker Compose version v2.4.1

Nextcloud的版本号为26.0.2,为2023-06-08时的最新版本。

准备工作

Nextcloud-fpm镜像

本教程使用的是这个镜像

msedge_ch0FzT1OnI

值得注意的是,官方仓库还有一个类似的镜像,叫fpm-alpinefpm镜像基于基于Debian/PVE操作系统作为基础镜像,它提供更广泛的软件包支持和易用性,但镜像比较大;而fpm-alpine基于 Alpine Linux 的操作系统作为基础镜像,它比较轻量一些。

我注意到fpm-alpine管理www目录的用户是82:82,与Debian系的33:33不太一样;加上自己是在NAS里安装Nextcloud的,对磁盘容量并不敏感,故没有使用fpm-alpine。我测试过这两个镜像,都是可以用的,大家根据实际情况选择即可。

我们创建一个工作目录:

work=~/docker/nextcloud-fpm
mkdir -p $work/custom; cd $work

克隆nextcloud/docker项目:

git clone https://github.com/nextcloud/docker.git

进入nextcloud-fpm的Dockerfile目录:

cd $work/docker/.examples/dockerfiles/full/fpm

build这个镜像:

# docker build -t <容器名> <Dockerfile所在目录>
docker build -t nextcloud:fpm-bensz .

耐心等待。如果错误,一般是apt-get安装依赖的过程不顺利造成的(网络问题),重试直至成功即可。成功时会出现类似字样:

Successfully built 0339xxxxxxxx
Successfully tagged nextcloud:fpm-bensz
# 或者:
# => => writing image # sha256:9e2f042044d24aaxxx 0.0s
# => => naming to docker.io/library/nextcloud:fpm-bensz

如果你的网络环境不好,我也可以考虑将build好的镜像发布到gitee之类的地方。有需要的在评论区留言吧!

我们查看一下该镜像:

docker image list | grep -E 'fpm-bensz'

输出类似:

nextcloud fpm-bensz 033xxxx   3 minutes ago 1.4G

表明该image已经成功安装。如果之后有版本更新,先下线整个stack,然后git pull更新至最新版,再依上述步骤在本地build新镜像即可。强烈推荐RSShub订阅Nextcloud的docker镜像release更新。

部署脚本

地址:https://github.com/nextcloud/docker/tree/master/.examples/docker-compose/insecure/mariadb/fpm

我们主要基于Nextcloud的官方仓库进行布署。首先,进入insecure/mariadb/fpm中:

msedge_yzhJ1cjW2n

请注意,这里的insecure指的是本地部署后以http://局域网ip:端口的方式访问Nextcloud,这是我们想要的,因为我的教程体系中常规使用Nginx Proxy Manager进行https反向代理。选mariadb是因为我们将使用mysql或mariadb作为Nextcloud的后端数据库。

执行以下代码即可复制到docker stack的根目录:

cd $work/docker/.examples/docker-compose/insecure/mariadb/fpm && cp -rp * $work

Dockerfile

web文件夹只有Dockerfile和nginx配置:

total 9.0K
-rw-r--r-- 1 root bensz   57 Jun  7 16:52 Dockerfile
-rw-r--r-- 1 root bensz 7.4K Jun  7 20:24 nginx.conf

Dockerfile要求安装一个nginx容器并使用定制好的nginx.conf。

msedge_EJUMhOjnix

nginx.conf

建议在nginx.conf文件中做一些修改,这是一个示例,请大家下载后按需修改。具体如下:

msedge_vROA4M53LT

msedge_ZpU0zH26iW

这些改动可以帮助更好地通过Nextcloud的安全检查。

db.env

db.env指定了MYSQL帐户信息等在多个docker app中会被用到的环境变量:

MYSQL_PASSWORD=
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud

在以往的教程中,我一般直接在docker-compose.yml重复地声明这些变量。但在一些有经验的docker使用者中,定义1个或多个*.env文件是更加流行和方便的策略。感兴趣的小伙伴以后也可以多应用这个技巧!

www.conf

我们需要在custom目录中创建一个www.conf,这是一个示例,请大家下载后按需修改。它定义了Nextcloud-fpm中PHP的一些行为。在Nextcloud 26.0.2中,该文件在容器中的位置为/usr/local/etc/php-fpm.d/www.conf。我对这个文件的理解也不多,但知道一些比较重要的参数。

在官方文档 Server tuning — Nextcloud latest Administration Manual latest documentation中有这个描述:For example on a machine with 4GB of RAM and 1GB of MySQL cache following values in your www.conf file should work:

pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

目前,我在自己的NAS里也是使用这个配置。大致的原则就是pm.max_children最大,而pm.start_serverspm.min_spare_serverspm.max_spare_servers之间。它们定义了php并发请求的一些基础值和上下限;配置好可以增强Nextcloud在多并发场景的表现。

大家可以使用这个设置,然后根据日志调试。这些参数在www.conf中的实际位置如下:

image-20230608093631731

最后,记得修改一下文件夹的权限:

sudo chown -R 33:33 $work/custom

其它准备

最后,$work目录的文件分布大致如下:

├── [   3]  custom
│   └── [ 22K]  www.conf
├── [  78]  db.env
├── [1.6K]  docker-compose.yml
└── [   4]  web
    ├── [  57]  Dockerfile
    └── [7.4K]  nginx.conf

如果你的VPS还使用了ufw等防火墙,要开放相应的端口。这里以1234为例:

ufw allow 1234/tcp comment 'nextcloud-fpm' && ufw reload

如果VPS后台管理中还有其它防火墙,也要依次放行。

准备好域名解析,比如nextcloudtest.hwb0307.com

安装Nextcloud-fpm

db.env

修改文件:

vim $work/db.env

自定义MYSQL数据库的相关信息,比如:

MYSQL_PASSWORD=test0test0!
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud

实际使用时一般是这样调用:

env_file:
  - db.env

docker-compose.yml

我们在原版的基础上进行了优化,大家要根据实际情况微调:

version: '3'

services:
  db:
    # image: mariadb:10.6.5-focal # mariadb和mysql二选一即可
    image: mysql:8.0
    container_name: nextcloud-fpm-db
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW --max-binlog-size=200M --expire-logs-days=2 # 优化mysql配置
    restart: unless-stopped
    volumes:
      - ./db:/var/lib/mysql:Z
    environment:
      - MYSQL_ROOT_PASSWORD=nextclouddb_root_password
    env_file:
      - db.env
    networks:
      - default

  cache:
    image: redis:latest
    container_name: nextcloud-fpm-cache
    restart: unless-stopped
    expose:
     - "6379" # 可用此默认。因为这是暴露而不是映射
    volumes:
     - ./cache:/data
    networks:
      - default

  app:
    image: nextcloud:fpm-bensz
    container_name: nextcloud-fpm-app
    restart: unless-stopped
    volumes:
      - ./app:/var/www/html:z
      - ./custom/www.conf:/usr/local/etc/php-fpm.d/www.conf
    environment:
      - MYSQL_HOST=db
      - REDIS_HOST=cache
    env_file:
      - db.env
    depends_on:
      - db
      - cache
    networks:
      - default

  web:
    build: ./web
    container_name: nextcloud-fpm-web
    restart: unless-stopped
    ports:
      - 1234:80 # 按需要修改
    volumes:
      - ./app:/var/www/html
    depends_on:
      - app
    networks:
      - default

  cron:
    image: nextcloud:fpm-bensz
    container_name: nextcloud-fpm-cron
    restart: unless-stopped
    volumes:
      - ./app:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - db
      - cache
    networks:
      - default

networks:
  default:
    name: nextcloud-fpm

请注意,在这里我指定了数据库的版本号mariadb:10.6.5-focalmysql:8.0。你可以改为自己正在使用的版本号,这样比较节省空间。我个人比较推荐mysql,因为mysql可以随便转到mariadb中,但mariadb转到mysql里比较困难。

web直接使用一个nginx:alpine镜像+自定义nginx.conf。cron就是利用nextcloud:fpm中的/cron.sh脚本自动配置后台作业。

然后,直接上线整个docker stack即可:

docker-compose up -d

在线安装

耐心等一段时间,之后访问 http://局域网ip:1234即可。装的过程可能地址会失效,继续访问即可:

image-20230607134033753

整个过程和旧版的安装过程是差不多的。

配置NPM

不了解Nginx Proxy Manager用法的小伙伴,请看《Docker系列 两大神器NPM和ddns-go的安装》。

ddns-go或者域名托管商后台解析好域名nextcloudtest.hwb0307.com。假设NAS的局域网IP是192.168.1.123

添加一个Proxy Host,反代地址是http://192.168.1.123:1234。可用泛域名的SSL证书。

最后,我们需要在Nginx Proxy Manager的Advanced里添加一些内容:

msedge_StAWl6FboT

家用搭建的服务器一般是用别的端口来代替443。假设我们使用2443作为Nginx Proxy Manager的默认443端口,那么添加内容为:

location /.well-known/carddav {
    return 301 $scheme://$host:2443/remote.php/dav;
}

location /.well-known/caldav {
    return 301 $scheme://$host:2443/remote.php/dav;
}

location /.well-known/webfinger {
    return 301 $scheme://$host:2443/index.php/.well-known/webfinger;
}

location /.well-known/nodeinfo {
    return 301 $scheme://$host:2443/index.php/.well-known/nodeinfo;
}

如果你使用的是默认的443端口,则不需要加端口号:

location /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
}

location /.well-known/caldav {
    return 301 $scheme://$host/remote.php/dav;
}

location /.well-known/webfinger {
    return 301 $scheme://$host/index.php/.well-known/webfinger;
}

location /.well-known/nodeinfo {
    return 301 $scheme://$host/index.php/.well-known/nodeinfo;
}

这些代码有助于通过Nextcloud的安全检查:

msedge_UMhvT98v0v

有时候webfingernodeinfo的安全警告会比较难以消失,可以通过退出帐号重新登陆docker-compose down && docker-compose up -d重新部署整个stack等方法进一步去除。

config.php

完成安装后,先不要正式使用Nextcloud,而是检查一下$work/app/config/config.php文件的内容。这是一个示例

  • Redis缓存信息
'memcache.local' => '\\OC\\Memcache\\APCu', // 默认是APCu。好像没法改为Redis?
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => 
array (
    'host' => 'cache', // 和docker-compose.yml中Redis的“小名”要一致。
    'password' => '', // docker-compose.yml中没声明,故留空。
    'port' => 6379,
),
  • 域名限制性。如果使用的是https访问,可以这样写:
array (
    0 => '192.168.1.123', 
    1 => 'nextcloudtest.hwb0307.com',
  ),
'overwritehost' => 'nextcloudtest.hwb0307.com:4443',
'overwriteprotocol' => 'https',
'overwrite.cli.url' => 'http://nextcloudtest.hwb0307.com:4443',

这里假定使用的443端口为4443。如果你直接使用443,这个端口号可以不写。

如果仅在本地访问,可以这样写:

array (
    0 => '192.168.1.123', 
  ),
'overwritehost' => 'http://192.168.1.123:1234',

修改完成后,直接重启docker stack即可:

docker-compose restart

管理设置

看看管理设置的安全与后台有没有问题,有问题按《Docker系列 搭建个人云盘服务nextcloud》的“警告&Bug”小节。 不过,由于我们使用了Nginx作为Web服务器,一些bug的解决方法和之前的Apache服务器是不同的。具体情况具体分析喽!我暂时是没遇到太多问题:

msedge_X3JUwkCNw2

msedge_9igZ5pzeLu

上传>512M的文件

默认情况下,Nextcloud仅支持单个大小≤512M的文件上传。如果你有上传很大文件的需求,需要在3个地方完成设置;这样即可上传很大的文件:

msedge_tNz6YFZLd7

此隐藏内容仅限VIP查看。包年VIP仅10元,建议升级。VIP可享有哪些特权

警告&bug

Docker系列 搭建个人云盘服务nextcloud》中包含排障教程(警告&Bug小节),比如不安全URL、caldav解析、数据库丢失索引、无法预览常见格式的文件等;有需要者自行食用。

设置维护开始时间

v28.x.x之后容易出现:Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.

config/config.php中添加这一项即可:

'maintenance_window_start' => 1,

维护开始的时间包括用于活动过期、可疑登录训练和更新检查。例如,设置'maintenance_window_start' => 1,,则只会在 UTC 时间凌晨 01:00 到 05:00 之间运行后台作业。

小结

整个布署过程比Nextcloud-Apache稍复杂些。不过,如果你对Docker和Nextcloud比较熟悉,应该难度不大。如果你有一台强大的服务器,这个方案是很推荐的,可拓展性和性能都可以上一个档次!官方仓库的教程也十分贴心,有相见恨晚的感觉!其它使用技巧见学习地图的“Nextcloud”系列,这里不多说了。

以后有什么使用心得会继续更新内容。请拭目以待!

扩展阅读

---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍

感谢ZGOCLOUD友情赞助 (ฅ´ω`ฅ) 本博客基于m2w创作。版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。VIP内容严禁转载!由于可能会成为AI模型(如chatGPT)的训练样本,本博客禁止将AI自动生成内容作为文章上传(特别声明时除外)。如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租请留言 | 博客VPS | 致谢渺软公益CDN |

评论

  1. san
    置顶
    Windows Edge 116.0.1938.81
    7 月前
    2023-9-17 20:57:43

    debian12最新版,apt upgrade更新时速度太慢,只有15K左右的速率,更换了国内的阿里等源,仍然从deb.debian.org更新文件,速度太慢。有什么办法解决吗?

    • 博主
      san
      Windows Edge 117.0.2045.31
      7 月前
      2023-9-19 22:06:52

      如果你是指build镜像的过程,你可以了解一下docker build image时镜像源是不是可以选。 我暂时没研究过这个问题 (ฅ´ω`ฅ)

    • alonefly
      san
      Windows Edge 119.0.0.0
      已编辑
      5 月前
      2023-11-23 23:01:55

      在国内因为网络问题,build fpm镜像时多数会出现失败的情况,通过阅读Dockerfile文件,结合build失败信息,能发现build基于Debian/PVE的fpm镜像时apt-get update超时导致build失败,所以建议国内网络用户对Dockerfile稍作优化,使用国内镜像源完成build。我的做法是修改Dockerfile文件,在“apt-get update; ”行前插入两个sed指令,使用国内镜像源来完成build。

      FROM nextcloud\:fpm
      
      RUN set -ex; \
      \
      sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list; \
      sed -i 's|security.debian.org/debian-security|mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list; \
      apt-get update; \
      • 博主
        alonefly
        Windows Edge 120.0.0.0
        3 月前
        2024-1-13 13:49:21

        干得漂亮 (~ ̄▽ ̄)~

  2. i_orange
    Windows Chrome 119.0.6045.160
    3 月前
    2024-1-13 19:36:08

    想问一下,如果同时有HTTPS访问和本地访问的需求,该如何设置呀

    • 博主
      i_orange
      Windows Edge 120.0.0.0
      3 月前
      2024-1-18 19:00:43

      这个暂时没有研究过。 如果你不添加类似下面的设置:

      'overwritehost' => 'nextcloudtest.hwb0307.com:4443',
      'overwriteprotocol' => 'https',
      'overwrite.cli.url' => 'http://nextcloudtest.hwb0307.com:4443',

      应该就可以了。因为这3个设置就是将地址强行改为你指定的地址。不强制指定应该就是用原地址。

      • i_orange
        Bensz
        Windows Chrome 119.0.6045.160
        3 月前
        2024-1-25 21:16:15

        恩恩,现在只能暂时这样了

  3. 左耳刀
    Windows Edge 118.0.2088.76
    6 月前
    2023-11-05 0:59:51

    大佬,您好。我按照您的教程,部署成功了,能通过http访问,请问如何通过https://内网ip访问,我的是内网,没有域名,只能用局域网IP。看了文章中npm那部分,看不太懂。求赐教。

    • 博主
      左耳刀
      Windows Edge 118.0.2088.76
      6 月前
      2023-11-05 7:20:12

      你使用http://内网ip:端口号的方式,则不需要使用Nginx Proxy Manager。另外,config.php——域名限制性的那部分可以这样写:

      array (
          0 => '内网ip:端口号', 
        ),
      
      // 下面3个overwrite选项注释掉或直接删除都行
      // 'overwritehost' => 'nextcloudtest.hwb0307.com:4443',
      // 'overwriteprotocol' => 'https',
      // 'overwrite.cli.url' => 'http://nextcloudtest.hwb0307.com:4443',
      • 左耳刀
        Bensz
        Windows Edge 119.0.0.0
        6 月前
        2023-11-05 8:30:14

        我是想通过https://内网ip:端口号访问,我已经用openssl生成了.key和.crt,nginx.conf要修改吧。

      • 博主
        左耳刀
        Windows Edge 118.0.2088.76
        6 月前
        2023-11-05 8:35:27

        我觉得应该是改Nginx配置(Nginx Proxy Manager那一级而不是Nginx网络服务器那一级)就行,但我也不太了解怎么在NPM中操作。你可以看一下NPM的子文件,里面有一些nginx的config文件,你直接在上面改试试看。 或者看看NPM的官方文档,应该有自定义的内容。

  4. Windows Chrome 118.0.0.0
    6 月前
    2023-10-22 12:23:44

    大佬,您好。我用的时ubuntu 22部署的,所有文件都是用您的示例文件,到sudo docker-compose up -d的时候,报以下错。请教一下什么问题?
    [+] Building 39.9s (1/1) FINISHED
    => ERROR [internal] booting buildkit 39.9s
    => => pulling image moby/buildkit:buildx-stable-1 25.0s
    => => creating container buildx_buildkit_default 14.9s

    [internal] booting buildkit:

    0 39.94 time=”2023-10-22T03:56:48Z” level=warning msg=”using host network as the defaultime=”2023-10-22T03:56:48Z” level=warning msg=”using host network as the default”

    0 39.94 time=”2023-10-22T03:56:48Z” level=warning msg=”skipping containerd worker, as \”/run/containerd/containerd.sock\” does not exist”

    0 39.94 dtime=”2023-10-22T03:56:48Z” level=info msg=”found 1 workers, default=\”uegueydwl40hhpq6qu5kem3i6\””

    0 39.94 `time=”2023-10-22T03:56:48Z” level=warning msg=”currently, only the default worker can be used.”

    0 39.94 time=”2023-10-22T03:56:48Z” level=info msg=”running server on /run/buildkit/buildkitd.sock”

    0 39.94 time=”2023-10-22T03:56:48Z” level=warning msg=”skipping containerd worker, as \”/run/containerd/containerd.sock\” does not exist”

    0 39.94 time=”2023-10-22T03:56:48Z” level=warning msg=”currently, only the default worker can be used.”

    0 39.94 time=”2023-10-22T03:56:48Z” level=warning msg=”currently, only the default worker can be used.”

    0 39.94

    http: invalid Host header

    • 博主
      左耳刀
      Windows Edge 118.0.2088.57
      6 月前
      2023-10-22 23:12:04

      这个error没怎么见过喔,看上去有点像是网络连接问题,导致镜像build有问题。

    • alonefly
      左耳刀
      Windows Edge 119.0.0.0
      已编辑
      5 月前
      2023-12-05 0:18:22

      如果您的docker程序是由ubuntu snap安装(snap list),建议使用snap remove卸载docker,apt-get重新安装您的docker相关组件,应该能解决。不要问我为什么,应为我就是这样解决的。

  5. hwjfb3uzx
    Linux Firefox 118.0
    6 月前
    2023-10-18 14:42:47

    你好,已经买了VIP,但没效果。10月14日下午4点31付款的,10.01元。

    • 博主
      hwjfb3uzx
      Windows Edge 118.0.2088.46
      6 月前
      2023-10-18 15:11:02

      我后台加了一下。 我看其它用户都是正常的呀:

      查看图片
      msedge_VA5zwW0XHF

      • hwjfb3uzx
        Bensz
        Linux Firefox 118.0
        已编辑
        6 月前
        2023-10-18 16:18:29

        我也不清楚啊^_^||| 可能是我付款前刷新了下造成?然后10就变成10.01了
        收到款了吧?收到了就麻烦删了这个评论吧,b( ̄▽ ̄)d
        是叫黄wb的账号吧?头像是只动物,难道转错人了?

      • 博主
        hwjfb3uzx
        Windows Edge 118.0.2088.46
        6 月前
        2023-10-18 19:16:17

        没事,不用删除。解决您的问题就行,哈哈!

  6. aweikn
    Windows Chrome 117.0.0.0
    7 月前
    2023-10-12 16:26:31

    ngixn 502 完全按照流程 该怎么排查

    • 苯苯小号
      aweikn
      iPhone Chrome 117.0.5938.117
      7 月前
      2023-10-12 16:32:15

      今晚我有时间,方便的话可以远程帮你看看

      • aweikn
        苯苯小号
        Windows Chrome 117.0.0.0
        7 月前
        2023-10-12 17:01:21

        可以 加我qq 434649198 感谢

    • manman
      aweikn
      Windows Edge 119.0.0.0
      5 月前
      2023-11-16 19:33:42

      请问解决了吗

      • manman
        manman
        Windows Edge 119.0.0.0
        5 月前
        2023-11-16 19:45:09

        在www.conf文件中加上
        user = www-data
        group = www-data
        就可以了

      • 博主
        manman
        Windows Edge 119.0.0.0
        5 月前
        2023-11-16 19:52:25

        示例文件中本来就有这两个参数啊 Σ( ° △ °|||)︴

  7. Macintosh Safari 16.6
    7 月前
    2023-9-22 11:02:59

    按照您的步骤,到:Dockerfile要求安装一个nginx容器nginx:alpine,pull了nginx:alpine镜像,直接启动安装容器即可吗?或者说这步具体应该怎么操作(是个菜鸟,一直没搞明白)。

    • 博主
      Windows Edge 117.0.2045.31
      已编辑
      7 月前
      2023-9-22 11:31:06

      做好准备工作,最后文件夹包含这些文件就行:

      ├── [   3]  custom
      │   └── [ 22K]  www.conf
      ├── [  78]  db.env
      ├── [1.6K]  docker-compose.yml
      └── [   4]  web
          ├── [  57]  Dockerfile
          └── [7.4K]  nginx.conf

      之后严格按照教程的顺序来走即可。

      • san
        Bensz
        Macintosh Safari 16.6
        7 月前
        2023-9-22 19:07:45

        再请教:部署成功后,通过npm反代,用苹果手机的app登录出错,无法登录。还需要设置哪里吗?

      • 博主
        san
        Windows Edge 117.0.2045.36
        7 月前
        2023-9-23 10:42:15

        你在电脑浏览器网页可以成功登陆,说明是正常的,我估计是IOS登陆里哪里设置不对吧。 你成功了吗?

      • san
        Bensz
        Windows Edge 117.0.2045.36
        7 月前
        2023-9-23 14:29:40

        昨晚折腾了一晚,成功了。谢谢!

  8. Linux Firefox 116.0
    已编辑
    8 月前
    2023-8-26 16:02:11

    先用 apache 镜像部署的,性能实在太拉,直接切换 fpm 镜像部署,没遇到问题(没有切换域名,仅更换了镜像)

    • 博主
      HE-SB
      Windows Edge 116.0.1938.54
      8 月前
      2023-8-26 16:31:02

      确实,Apache只是简单,但性能是拉一点 ~ 总之我自己是越来越受不了Apache那一套了,所以使用的Nginx 😔

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇