媒介
之前通过 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 数据库
- sudo systemctl enable --now mariadb
- sudo mysql_secure_installation
复制代码 按提示设置 root 暗码并启用安全选项。
创建 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
- 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
复制代码
- sudo nano /etc/caddy/Caddyfile
复制代码 添加以下内容(请替换 yourdomain.com 为你的域名或本机 IP):
- yourdomain.com {
- root * /var/www/nextcloud
- file_server
- php_fastcgi unix//run/php/php-fpm.sock
- header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- redir /.well-known/carddav /remote.php/dav 301
- redir /.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_server
- php_fastcgi unix//run/php/php-fpm.sock
- header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- redir /.well-known/carddav /remote.php/dav 301
- redir /.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
复制代码
- 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
复制代码 添加:
保存并退出,然后清理缓存:
- 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 /
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |