Linux下 NextCloud Hub 安装、配置和使用
注:本文所述命令均在Linux Mint下运行
0.安装Docker
此处不详细解释
配合翻译软件看Install Docker Engine | Docker Docs即可
1.配置Docker镜像源(该方法目前已失效)
此处以hub-mirror.c.163.com,https://registry.docker-cn.com作为镜像
输入:
sudo vim /etc/docker/daemon.json
按 i
进入编辑模式,粘贴如下内容:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]
}
重启电脑,或输入
systemctl restart docker.service
完成配置
2.创建并运行Mysql,Nextcloud
“喂,听得到吗?”
“您好,您拨打的电话…”
–
未配置network的情况写实
首先,为mysql和nextcloud创建一个"群聊"(Network):
docker network create Nextcloud-group
拉取 Image
docker pull mysql
docker pull nextcloud
运行成功会出现:
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
......
Status: Downloaded newer image for nextcloud:latest
docker.io/library/nextcloud:latest
然后创建容器并"拉入群聊":
其中:“用户”对应MYSQL_USER
,“密码”对应MYSQL_PASSWORD
,“数据库名”对应MYSQL_DATABASE
。下面要用
(切记:=
前后不能有空格!)
docker run -d --name mysql \
-v d_mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=nextcloud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=password \
-p 3306:3306 \
--network Nextcloud-group \
mysql
docker run -d --name nextcloud \
-v nextcloud:/var/www/html \
--network Nextcloud-group \
-p 8080:80 \
nextcloud
Docker会返回两张“身份证”:
(仅供示例,以实际情况为准)
fe23149be9058fc4a9c5882e43ebe73ecfec67789c30ff26211544b43ae8973d
ec0431d72e329a3d574c4162e6eb56555cc34d7017ea3b70cf85ddac7622fac3
3.配置Nextcloud
3.1 配置数据库
打开http://<主机ip>:8080
用户名密码自行填写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0yIAiwGP-1723509391847)(https://i-blog.csdnimg.cn/blog_migrate/7d3925523fa9675bddc4d17e36528084.png#pic_center)]
展开“储存与数据库”
选择“MySQL/MariaDB”
其中,“数据库用户”对应刚刚的MYSQL_USER
,“密码”对应MYSQL_PASSWORD
,“数据库名”对应MYSQL_DATABASE
,数据库主机直接写mysql
按下“安装”,等上“一”小会…
…
…
…
愣是转了几分钟,无事发生…
然后我刷新了一下界面…
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-COPrRc5i-1723509391849)(https://i-blog.csdnimg.cn/blog_migrate/e532e9b980d65f922bfacb577c52d4bd.png#pic_center)]
SO?
输入用户名和密码,然后…
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zAaLjOzN-1723509391850)(https://i-blog.csdnimg.cn/blog_migrate/b0296f04ea8b8bf5010e9e983f0a6d05.png#pic_center)]
现在这个老弱病残就可以使用了
但正如刚刚所说,这是个"老弱病残",我们还要继续配置
3.2 配置Cron
接下来,打开个人设置,设置完之后,再打开“管理-基本设置”来配置Cron
根据后台作业 — Nextcloud latest 管理手册 latest 文档,我们将使用systemd
执行Cron任务:
首先,我们找一下cron.php
sudo find -name cron.php
输出:
find: ‘/run/user/112/gvfs’: 权限不够
/var/lib/docker/overlay2/d2522b96ef3cb61456f247a4c57a71d353b73cbd24c2b29a5d712865e77a82f2/merged/usr/src/nextcloud/cron.php
/var/lib/docker/overlay2/7e6ec3cf4d21d53e9b8ef49068e22caacd6d2f994818cd8cb7787f87fe290849/diff/usr/src/nextcloud/cron.php
/var/lib/docker/volumes/nextcloud/_data/cron.php
我们可以确定:虽然有3个cron.php
,实际目录应该是
/var/lib/docker/volumes/nextcloud/_data/cron.php
同理,occ也位于/var/lib/docker/volumes/nextcloud/_data/occ
编写nextcloudcron.service
sudo vim /etc/systemd/system/nextcloudcron.service
输入:
[Unit]
Description=Nextcloud cron.php job
[Service]
User=www-data
ExecCondition=php -f /var/lib/docker/volumes/nextcloud/_data/occ status -e
ExecStart=/usr/bin/php -f /var/lib/docker/volumes/nextcloud/_data/cron.php
KillMode=process
编写nextcloudcron.timer
sudo vim /etc/systemd/system/nextcloudcron.timer
输入:
[Unit]
Description=Run Nextcloud cron.php every 5 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloudcron.service
[Install]
WantedBy=timers.target
运行:
systemctl enable --now nextcloudcron.timer
然后就可以勾选Cron了!