Nextcloud fpm 版在 Dokcer 下安装踩坑
安装
首先到 https://registry.hub.docker.com/_/nextcloud 获取 Nextcloud 的示例 docker-compose
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
restart: always
links:
- db
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
web:
image: nginx
restart: always
ports:
- 8080:80
links:
- app
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
修改其为适合自己使用的版本,如我是这么修改的
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --skip-innodb-read-only-compressed
volumes:
- /home/puzhiwei/docker/nextcloud/mysql/lib:/var/lib/mysql
- /home/puzhiwei/docker/nextcloud/mysql/etc:/etc/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
restart: always
links:
- db
volumes:
- /home/puzhiwei/docker/nextcloud/config:/var/www/html/config
- /home/puzhiwei/docker/nextcloud/data:/var/www/html/data
- /home/puzhiwei/docker/nextcloud/apps:/var/www/html/custom_apps
environment:
- MYSQL_PASSWORD=
- MYSQL_DATABASE=
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
web:
image: nginx
restart: always
ports:
- 81:80
links:
- app
volumes:
- /home/puzhiwei/docker/nextcloud/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
mariadb 配置
我主要添加了 Docker 容器到本地文件的映射,为 mariadb 添加了 --skip-innodb-read-only-compressed 启动命令,如果没有这段启动命令,会出现
nextcloud install Error while trying to initialise the database: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
的异常。
Nginx 配置
此处首先要到 https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/fpm/web/nginx.conf 获取需要的Ningx 配置文件,之后设定相应的文件映射。
启动
直接使用 docker-compose up -d 等待镜像下载运行完成即可。
然后访问 http://ip:81 设置管理员账号,完成安装。
踩坑
如何配置 cron 任务
首先在容器中安装需要的软件
# 安装 cron
apt update
apt install cron
# 安装 vim
apt install vim
# 启动 cron
service cron start
由于是在 Docker 容器中运行的 Nextcloud,进入docker 容器默认是 root 用户,此时执行 php -f /var/www/html/cron.php 会出现
Console has to be executed with the user that owns the file config/config.php
Current user id: 0
Owner id of config.php: 33
的异常,因为 cron.php 需要使用 www-data 用户来执行
而 docker 容器中又缺少相应的权限管理工具。
此时我们需要在进入 Nextcloud 镜像之后执行
root@50ce68418e44:/var/www/html# chsh -s /bin/bash www-data
root@50ce68418e44:/var/www/html# su - www-data
将自己切换到 www-data 用户
然后执行
php -d memory_limit=-1 -f /var/www/html/cron.php --define apc.enable_cli=1
注意此处不加 memory_limit=-1 会出现
Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 438272 bytes) in /var/www/html/3rdparty/composer/autoload_real.php on line 37
的异常。
运行成功后我们就可以配置定时任务了
运行
# 设置 crontab
crontab -e
然后添加
*/5 * * * * chsh -s /bin/bash www-data && su - www-data && php -d memory_limit=-1 -f /var/www/html/cron.php --define apc.enable_cli=1
即可完成 Nextcloud 的 cron 配置
更多 cron 配置请参照 Nextcloud 文档:https://docs.nextcloud.com/server/23/admin_manual/configuration_server/background_jobs_configuration.html
版权
本文首发于 https://www.buguagaoshu.com/archives/nextcloudfpmban-zai-dokcerxia-an-zhuang-cai-keng
转载请注明来源
Nextcloud fpm 版在 Dokcer 下安装踩坑的更多相关文章
- Android Studio安装踩坑
title: Android Studio安装踩坑 date: 2018-09-07 19:31:32 updated: tags: [Android,Android Studio,坑] descri ...
- Faster_Rcnn在windows下运行踩坑总结
Faster_Rcnn在windows下运行踩坑总结 20190524 今天又是元气满满的一天! 1.代码下载 2.编译 3.下载数据集 4.下载pre-train Model 5.运行train ...
- Mac下Charles踩坑记录
初次使用Charles,摸索着抓包的过程中遇到了很多问题.在这里一一记录一下,避免其他初学者踩坑. 问题1:不显示request和response? 在Charles的配置页面可以勾选是否把reque ...
- selinium的ruby版在windows8下安装
1.安装ruby,当然windows下是最简单的装一个rubyinstaller,官网有.一步到位 2.因为selinium官网被墙,所以改成淘宝的一个资源库 gem sources --remove ...
- windows7旗舰版64位下安装、破解及执行QTP11报错
说明:假设你出现了下面几种情况,希望能解决你的问题:假设没有,就当路过. 1.安装qtp11时报vc++ 2005缺少,但怎么也不能安装成功 解决方法: 1.找到qtp安装包里面的vc++ 2005组 ...
- Win10自带Ubuntu子系统下Mysql安装踩坑记录
linux系统为win10自带Ubuntu子系统 错误的安装过程 我按照一般的方法安装mysql,安装步骤如下 1.升级源 $ sudo apt-get update 2.安装mysql $ sudo ...
- Linux下pcstat安装踩坑教程
首先安装golang 1.进入官方链接下载对应自己系统版本的Golang安装包:https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz root@ub ...
- React-Native android在windows下的踩坑记
坑很多,跳之前做好准备.没有VPN的同学请浏览完本文后慎行. 你需要先安装最新版本的node.js(我最后使用的是v4.1.2),前往官网下载>> 注:我win7已经安装过Visual ...
- Linux mint 安装踩坑记录
记得之前电脑上的那个Ubuntu是去年寒假的时候安装的,算下来自己用Linux也快一年了.虽然在去年暑假的时候我也曾经想过要把Ubuntu升级到18.04可是当时安装了几次都没有成功,自己也就放弃了. ...
随机推荐
- Solution -「LOCAL」「cov. HDU 6864」找朋友
\(\mathcal{Description}\) Link.(几乎一致) 给定 \(n\) 个点 \(m\) 条边的仙人掌和起点 \(s\),边长度均为 \(1\).令 \(d(u)\) 表 ...
- 渗透测试之本地文件包含(LFI)
一.本地文件包含 本地文件包含漏洞指的是包含本地的php文件,而通过PHP文件包含漏洞入侵网站,可以浏览同服务器所有文件,并获得webshell. 看见?page=标志性注入点,提示我们输入?=pag ...
- IDEA如何快速生成get和set方法
方法一:1.鼠标右击"Generate"2.点击"Getter and Setter",3.将定义的字段全部选中,点击OK.方法二:使用alt+insert 快 ...
- containerd与kubernetes集成部署
概念介绍 cri (Container runtime interface) cri is a containerd plugin implementation of Kubernetes conta ...
- R数据分析:样本量计算的底层逻辑与实操,pwr包
样本量问题真的是好多人的老大难,是很多同学科研入门第一个拦路虎,今天给本科同学改大创标书又遇到这个问题,我想想不止是本科生对这个问题不会,很多同学从上研究生到最后脱离科研估计也没能把这个问题弄得很明白 ...
- 【C# .Net GC】开篇
前言 自从.NET Core 3.0开始对根据自己具体的应用场景去配置GC ,让GC 发挥最好的作用..NET 5 改动更大,而且.NET 5整体性能比.net core 3.1高20%,并且在GC这 ...
- Map<String, String> 遍历的四种方法
Map<String, String> map = new HashMap<String, String>(); map.put("key1", " ...
- PyTorch深度学习实践——处理多维特征的输入
处理多维特征的输入 课程来源:PyTorch深度学习实践--河北工业大学 <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili 这一讲介绍输入为多维数据时的分类. 一个数据集 ...
- Python:GUI库tkinter(二)
学习自: Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) - 洪卫 - 博客园 Tkinter简明教程 - 知乎 TkDocs_官方文档 一个Tkinter库较为全面的总结,很 ...
- Linux的用户与用户组管理
1.Linux用户与用户组 Linux 是多用户多任务操作系统,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响.不同用户具有不问的权限,毎个用户在权限允许的范围 ...