Debian 安装 Nextcloud 使用 MariaDB 数据库 + Caddy + PHP-FPM
前言
之前通过 docker在ubuntu上安装Nextcloud,但是现在我使用PVE安装Debian虚拟机,不想通过docker安装了。下面开始折腾。
安装过程
步骤 1:更新系统并安装必要的软件
sudo apt update && sudo apt upgrade -y
sudo apt install -y mariadb-server php php-fpm php-cli php-mysql php-curl php-gd php-intl php-mbstring php-xml php-zip php-bz2 php-bcmath php-gmp php-imagick unzip curl sudo
步骤 2:创建并配置 MariaDB 数据库
- 启动 MariaDB 并设置安全性:
sudo systemctl enable --now mariadb
sudo mysql_secure_installation
按提示设置 root 密码并启用安全选项。
- 登录 MariaDB:
sudo mysql -u root -p
创建 Nextcloud 数据库和用户:
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;
可以修改自己的密码 your_secure_password。
步骤 3:创建 Nextcloud 存储目录
确保你的硬盘已经正确挂载,并创建存储目录(假设你挂载到 /mnt/AAA):
sudo mkdir -p /mnt/AAA/nextcloud_data
sudo chown -R www-data:www-data /mnt/AAA/nextcloud_data
sudo chmod 750 /mnt/AAA/nextcloud_data
步骤 4:下载并解压 Nextcloud
获取最新的 Nextcloud 版本:
cd /var/www
sudo curl -o nextcloud.tar.bz2 https://download.nextcloud.com/server/releases/latest.tar.bz2
sudo tar -xjf nextcloud.tar.bz2
sudo rm nextcloud.tar.bz2
sudo chown -R www-data:www-data nextcloud
sudo chmod -R 755 nextcloud
步骤 5:创建 Nextcloud 配置文件
在安装前,创建配置文件 /var/www/nextcloud/config/autoconfig.php,并指定存储位置:
sudo nano /var/www/nextcloud/config/autoconfig.php
添加以下内容:
<?php
$AUTOCONFIG = array("dbtype" => "mysql","dbname" => "nextcloud","dbuser" => "nextcloud","dbpass" => "your_secure_password","dbhost" => "localhost","dbtableprefix" => "","adminlogin" => "admin","adminpass" => "your_admin_password","directory" => "/mnt/seafile/nextcloud_data",
);
可以修改 adminlogin 和 adminpass,还有 “dbpass” => “your_secure_password”。
保存并退出 (CTRL + X, 然后 Y 以及 Enter)。
步骤 6:配置 PHP-FPM
编辑 PHP 配置文件:
sudo nano /etc/php/*/fpm/php.ini
找到并修改以下参数。可以使用 Ctrl+W 查找,如果想改 1GB,就填 memory_limit = 1G,
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 300
重启 PHP-FPM:
sudo systemctl restart php*-fpm
步骤 7:安装并配置 Caddy
- 安装 Caddy:
sudo apt install -y debian-keyring debian-archive-keyring
sudo curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/gpg.key | sudo tee /usr/share/keyrings/caddy-keyring.asc >/dev/null
echo "deb [signed-by=/usr/share/keyrings/caddy-keyring.asc] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
- 配置 Caddy:
sudo nano /etc/caddy/Caddyfile
添加以下内容(请替换 yourdomain.com 为你的域名或本机 IP):
yourdomain.com {root * /var/www/nextcloudfile_serverphp_fastcgi unix//run/php/php-fpm.sockheader Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"redir /.well-known/carddav /remote.php/dav 301redir /.well-known/caldav /remote.php/dav 301
}
我的改为:
GNU nano 7.2 /etc/caddy/Caddyfile
# The Caddyfile is an easy way to configure your Caddy web server.
#
# Unless the file starts with a global options block, the first
# uncommented line is always the address of your site.
#
# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace ":80" below with your
# domain name.:80 {# Set this path to your site's directory.root * /var/www/nextcloud# Enable the static file server.file_serverphp_fastcgi unix//run/php/php-fpm.sockheader Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"redir /.well-known/carddav /remote.php/dav 301redir /.well-known/caldav /remote.php/dav 301# Another common task is to set up a reverse proxy:# reverse_proxy localhost:8080# Or serve a PHP site through php-fpm:# php_fastcgi localhost:9000
}# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile
保存并退出。
启动 Caddy:
sudo systemctl enable --now caddy
步骤 8:完成 Nextcloud 安装
- 访问 http://yourdomain.com,Nextcloud 应该会自动完成安装。
- 使用 admin 和 your_admin_password 登录。
步骤 9:设置自动更新与优化
- 配置 定时任务 让 Nextcloud 进行后台任务管理:
sudo crontab -u www-data -e
添加:
*/5 * * * * php -f /var/www/nextcloud/cron.php
- 启用 OPcache(提高 PHP 性能):
sudo nano /etc/php/*/fpm/php.ini
找到 opcache.enable=0 并修改为:
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1
然后重启 PHP-FPM:
sudo systemctl restart php*-fpm
部分问题后处理
如果没有权限
如果网页登录没有权限进入,修改文件权限
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 750 /var/www/nextcloud
然后清理缓存
sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
Nextcloud 预览 iPhone HEIC 图片
下面操作有点混乱,反正是一顿操作+重启,然后好使了。
确保 iPhone 端上传原始 HEIC 格式
iPhone 可能默认会上传 JPEG,而不是 HEIC。请在 iPhone 设置 中进行以下调整:
- 打开 iPhone 设置
- 进入 “照片”(Photos)
- 找到 “传输到 Mac 或 PC”
- 选择 “保留原始文件”(Keep Originals)
这样,iPhone 上传到 Nextcloud 时不会自动转换为 JPEG。
允许 Nextcloud 识别 HEIC 格式
Nextcloud 可能不允许 HEIC 文件上传,手动添加 MIME 类型支持:
sudo nano /etc/mime.types
在末尾添加:
image/heic heic
image/heif heif
保存退出(Ctrl + X → Y → 回车)。
然后重启服务器:
sudo systemctl restart php8.2-fpm redis caddy
确保 Web 端可以预览 HEIC
Nextcloud 默认不支持 HEIC 预览,你可以安装 HEIC 预览插件:
sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator
启用插件:
sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
然后重启 Nextcloud 相关服务:
sudo systemctl restart php8.2-fpm
安装 ImageMagick 以支持 HEIC
ImageMagick 可以让 Nextcloud 生成 HEIC 预览:
sudo apt install imagemagick
检查 HEIC 是否支持:
convert -list format | grep HEIC
如果输出类似于:
HEIC* HEIF r-- High Efficiency Image Format
说明已支持。如果 HEIC 没有启用,需要重新编译 ImageMagick,或者使用 libheif:
sudo apt install libheif-examples
然后编辑 policy.xml:
sudo nano /etc/ImageMagick-6/policy.xml
找到:
<policy domain="coder" rights="none" pattern="HEIC" />
改成:
<policy domain="coder" rights="read | write" pattern="HEIC" />
保存退出。没有找到就新增。然后重启:
sudo systemctl restart php8.2-fpm
确保 HEIC 文件可下载
如果 Nextcloud 拦截 HEIC 文件,可能需要手动允许 .heic 上传:
sudo nano /var/www/nextcloud/.htaccess
添加:
AddType image/heic .heic
保存并退出,然后清理缓存:
sudo -u www-data php /var/www/nextcloud/occ files:scan --all
启用 Nextcloud 预览支持
即使安装了 HEIC 解析,Nextcloud 仍然不会自动创建 HEIC 预览,需要手动开启。
1️⃣ 安装 previewgenerator 插件
sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator
sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
2️⃣ 允许 HEIC 预览
sudo nano /var/www/nextcloud/config/config.php
在 ); 之前添加:
'enable_previews' => true,
'preview_max_x' => 4096,
'preview_max_y' => 4096,
'preview_max_filesize_image' => 50,
'enabledPreviewProviders' => ['OC\Preview\HEIC','OC\Preview\Image','OC\Preview\JPEG','OC\Preview\PNG','OC\Preview\GIF','OC\Preview\BMP','OC\Preview\TIFF','OC\\Preview\\MarkDown','OC\\Preview\\MP3','OC\\Preview\\TXT','OC\\Preview\\XBitmap','OC\\Preview\\OpenDocument','OC\\Preview\\Krita','OC\\Preview\\WebP',
],
保存并退出 (Ctrl + X → Y → 回车)。
3️⃣ 手动生成 HEIC 预览
sudo -u www-data php /var/www/nextcloud/occ preview:generate-all
设置定时任务自动生成 HEIC 预览:
echo "*/30 * * * * www-data php /var/www/nextcloud/occ preview:pre-generate" | sudo tee -a /
相关文章:
Debian 安装 Nextcloud 使用 MariaDB 数据库 + Caddy + PHP-FPM
前言 之前通过 docker在ubuntu上安装Nextcloud,但是现在我使用PVE安装Debian虚拟机,不想通过docker安装了。下面开始折腾。 安装过程 步骤 1:更新系统并安装必要的软件 sudo apt update && sudo apt upgrade -y sudo apt install…...

【FPGA】 MIPS 12条整数指令 【3】
实现乘除 修改框架 EX:实现带符号乘除法和无符号乘除法 HiLo寄存器:用于存放乘法和除法的运算结果。Hi、Lo为32bit寄存器。电路描述与实现RegFile思想一致 仿真 代码 DataMem.v include "define.v"; module DataMem(input wire clk,input…...

Mac 部署Ollama + OpenWebUI完全指南
文章目录 💻 环境说明🛠️ Ollama安装配置1. 安装[Ollama](https://github.com/ollama/ollama)2. 启动Ollama3. 模型存储位置4. 配置 Ollama 🌐 OpenWebUI部署1. 安装Docker2. 部署[OpenWebUI](https://www.openwebui.com/)(可视化…...

蓝桥杯小白打卡第二天
789. 数的范围 题目描述 给定一个按照升序排列的长度为 n n n 的整数数组,以及 q q q 个查询。 对于每个查询,返回一个元素 k k k 的起始位置和终止位置(位置从 0 0 0 开始计数)。 如果数组中不存在该元素,则返…...
Docker Compose:容器编排的利器
Docker Compose:容器编排的利器 引言 随着容器技术的普及,Docker成为了当今最受欢迎的容器编排工具之一。Docker Compose作为Docker生态系统中的一部分,允许用户以声明式的方式定义和运行多容器Docker应用。本文将深入探讨Docker Compose的基本概念、工作原理、使用场景以…...
springboot项目的单元测试
文章目录 依赖编写单测代码一些注意点 依赖 依赖包含了 JUnit、Mockito、Spring Test 等常用的测试工具 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><…...

JVM图文入门
往期推荐 【已解决】redisCache注解失效,没写cacheConfig_com.howbuy.cachemanagement.client.redisclient#incr-CSDN博客 【已解决】OSS配置问题_keyuewenhua.oss-cn-beijing.aliyuncs-CSDN博客 【排坑】云服务器docker部署前后端分离项目域名解析OSS-CSDN博客 微服…...

cursor 开发java项目教程简单上手
1.官网下载 Cursor - The AI Code Editor 下载完后注册账号,可以使用无限邮的方式 注册完之后 设置中文 可以选择设置为中文 Ctrl Shift X 进入设置页面输入chinese 然后重启 更改jdk跟maven仓库设置 ctrlshiftp 打开输入框后输入json,把下面代码…...
优化fm.jiecao.jcvideoplayer_lib中视频横竖屏自动适配原视频方案
fm.jiecao:jiecaovideoplayer:x.x.x 优化fm.jiecao.jcvideoplayer_lib中视频横竖屏自动适配原视频方案: 仅优化关键代码部分,源码: public void startWindowFullscreen() {Log.i(TAG, "startWindowFullscreen " " [" …...

aws(学习笔记第二十七课) 使用aws API Gateway+lambda体验REST API
aws(学习笔记第二十七课) 使用aws API Gatewaylambda体验REST API 学习内容: 使用aws API Gatewaylambda 1. 使用aws API Gatewaylambda 作成概要 使用api gateway定义REST API,之后再接收到了http request之后,redirect到lambda进行执行。…...
物联网的三层架构:感知层、网络层与应用层
物联网(Internet of Things, IoT)作为现代科技的重要组成部分,正在深刻改变我们的生活和工作方式。它将物理世界与数字世界无缝连接,通过智能设备、传感器和网络技术,实现数据的采集、传输和应用。物联网的架构通常分为…...
常用抓包工具tcpdump、Fiddler、Charles、Wireshark 和 Sniffmaster 下载地址
抓包大师官网下载地址 Sniff Master Download - Free TCP and HTTPS Proxy Sniffing Tool, Supports IOS Sniffing Fiddler classic官网下载地址 Download Fiddler Web Debugging Tool for Free by Telerik Fiddler Everywhere官网下载地址 The Ultimate Web Debugging Tool …...

π0开源了且推出自回归版π0-FAST——打造机器人动作专用的高效Tokenizer:比扩散π0的训练速度快5倍但效果相当
前言 过去的半个多月 deepseek火爆全球,我对其的解读也成了整整一个系列 详见《火爆全球的DeepSeek系列模型》,涉及对GRPO、MLA、V3、R1的详尽细致深入的解读 某种意义来讲,deepseek 相当于把大模型的热度 又直接拉起来了——相当于给大模…...

js-对象-JSON
JavaScript自定义对象 JSON 概念: JavaScript Object Notation,JavaScript对象标记法. JSON 是通过JavaScript 对象标记法书写的文本。 由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输. json中属性名(k…...

Houdini subuv制作输出阵列图
在游戏开发中经常需要用到sheet阵列图,并用其制作翻页动画。通过Houdini强大的节点组合可以配合输出subuv阵列图供游戏引擎使用。 本文出处:https://zhuanlan.zhihu.com/p/391796978 博主参考学习并写该文。 1.在obj分类下创建font节点以进行测试&#…...
虚幻基础17:动画蓝图
能帮到你的话,就给个赞吧 😘 文章目录 animation blueprint图表(Graph): 编辑动画逻辑。变量(Variables): 管理动画参数。函数(Functions): 自定义…...
路由器及工作原理与常用路由配置命令详解
一、引言 在当今数字化时代,网络已经成为人们生活和工作中不可或缺的一部分。无论是家庭网络中的多台设备同时上网,还是企业网络中各个部门之间的数据传输和资源共享,都离不开网络设备的支持。路由器作为一种关键的网络设备,在网…...

Windows编程:下载与安装 Visual Studio 2010
本节前言 在写作本节的时候,本来呢,我正在写的专栏,是 MFC 专栏。而 VS2010 和 VS2019,正是 MFC 学习与开发中,可以使用的两款软件。然而呢,如果你去学习 Windows API 知识的话,那么࿰…...
R语言 文本分析 天龙八部
起因, 目的: 前面有人对 “倚天屠龙记” 进行分析,我这里只是进行模仿而已。 完整的文件, 已经绑定了,反正读者可以找一下。 案例背景 小说《天龙八部》是金庸先生所著的武侠小说,也是“射雕三部曲”的前传。全书共50章,字数超过一百万字。故事发生在北宋末年,以大理…...

深度学习 Pytorch 建模可视化工具TensorBoard的安装与使用
50 TensorBoard的安装和使用 在深度学习建模过程中,为了能够快速绘制模型基本结构、观察模型评估指标伴随训练过程的动态变化情况,当然也为了能够观察图像数据,我们可以使用TensorBoard工具来进行Pytorch深度学习模型的可视化展示。 Tensor…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...