Debian 安装 Nextcloud 利用 MariaDB 数据库 + Caddy + PHP-FPM

宁睿  金牌会员 | 2025-2-18 07:26:30 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 941|帖子 941|积分 2833

媒介

之前通过 docker在ubuntu上安装Nextcloud,但是现在我利用PVE安装Debian虚拟机,不想通过docker安装了。下面开始折腾。
安装过程

步骤 1:更新体系并安装必要的软件

  1. sudo apt update && sudo apt upgrade -y
  2. 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 并设置安全性:
  1. sudo systemctl enable --now mariadb
  2. sudo mysql_secure_installation
复制代码
按提示设置 root 暗码并启用安全选项。


  • 登录 MariaDB:
  1. sudo mysql -u root -p
复制代码
创建 Nextcloud 数据库和用户:
  1. CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  2. CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'your_secure_password';
  3. GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
  4. FLUSH PRIVILEGES;
  5. EXIT;
复制代码
可以修改自己的暗码 your_secure_password。
步骤 3:创建 Nextcloud 存储目次

确保你的硬盘已经精确挂载,并创建存储目次(假设你挂载到 /mnt/AAA):
  1. sudo mkdir -p /mnt/AAA/nextcloud_data
  2. sudo chown -R www-data:www-data /mnt/AAA/nextcloud_data
  3. sudo chmod 750 /mnt/AAA/nextcloud_data
复制代码
步骤 4:下载并解压 Nextcloud

获取最新的 Nextcloud 版本:
  1. cd /var/www
  2. sudo curl -o nextcloud.tar.bz2 https://download.nextcloud.com/server/releases/latest.tar.bz2
  3. sudo tar -xjf nextcloud.tar.bz2
  4. sudo rm nextcloud.tar.bz2
  5. sudo chown -R www-data:www-data nextcloud
  6. sudo chmod -R 755 nextcloud
复制代码
步骤 5:创建 Nextcloud 设置文件

在安装前,创建设置文件 /var/www/nextcloud/config/autoconfig.php,并指定存储位置:
  1. sudo nano /var/www/nextcloud/config/autoconfig.php
复制代码
添加以下内容:
  1. <?php
  2. $AUTOCONFIG = array(
  3.   "dbtype"        => "mysql",
  4.   "dbname"        => "nextcloud",
  5.   "dbuser"        => "nextcloud",
  6.   "dbpass"        => "your_secure_password",
  7.   "dbhost"        => "localhost",
  8.   "dbtableprefix" => "",
  9.   "adminlogin"    => "admin",
  10.   "adminpass"     => "your_admin_password",
  11.   "directory"     => "/mnt/seafile/nextcloud_data",
  12. );
复制代码
可以修改 adminlogin 和 adminpass,另有 “dbpass” => “your_secure_password”。
保存并退出 (CTRL + X, 然后 Y 以及 Enter)。
步骤 6:设置 PHP-FPM

编辑 PHP 设置文件:
  1. sudo nano /etc/php/*/fpm/php.ini
复制代码
找到并修改以下参数。可以利用 Ctrl+W 查找,如果想改 1GB,就填 memory_limit = 1G,
  1. memory_limit = 512M
  2. upload_max_filesize = 512M
  3. post_max_size = 512M
  4. max_execution_time = 300
复制代码
重启 PHP-FPM:
  1. sudo systemctl restart php*-fpm
复制代码
步骤 7:安装并设置 Caddy



  • 安装 Caddy:
  1. sudo apt install -y debian-keyring debian-archive-keyring
  2. sudo curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/gpg.key | sudo tee /usr/share/keyrings/caddy-keyring.asc >/dev/null
  3. 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
  4. sudo apt update
  5. sudo apt install -y caddy
复制代码


  • 设置 Caddy:
  1. sudo nano /etc/caddy/Caddyfile
复制代码
添加以下内容(请替换 yourdomain.com 为你的域名或本机 IP):
  1. yourdomain.com {
  2.     root * /var/www/nextcloud
  3.     file_server
  4.     php_fastcgi unix//run/php/php-fpm.sock
  5.     header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  6.     redir /.well-known/carddav /remote.php/dav 301
  7.     redir /.well-known/caldav /remote.php/dav 301
  8. }
复制代码
我的改为:
  1.   GNU nano 7.2                              /etc/caddy/Caddyfile                                       
  2. # The Caddyfile is an easy way to configure your Caddy web server.
  3. #
  4. # Unless the file starts with a global options block, the first
  5. # uncommented line is always the address of your site.
  6. #
  7. # To use your own domain name (with automatic HTTPS), first make
  8. # sure your domain's A/AAAA DNS records are properly pointed to
  9. # this machine's public IP, then replace ":80" below with your
  10. # domain name.
  11. :80 {
  12.         # Set this path to your site's directory.
  13.         root * /var/www/nextcloud
  14.         # Enable the static file server.
  15.         file_server
  16.         php_fastcgi unix//run/php/php-fpm.sock
  17.         header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  18.         redir /.well-known/carddav /remote.php/dav 301
  19.         redir /.well-known/caldav /remote.php/dav 301
  20.         # Another common task is to set up a reverse proxy:
  21.         # reverse_proxy localhost:8080
  22.         # Or serve a PHP site through php-fpm:
  23.         # php_fastcgi localhost:9000
  24. }
  25. # Refer to the Caddy docs for more information:
  26. # https://caddyserver.com/docs/caddyfile
复制代码
保存并退出。
启动 Caddy:
  1. sudo systemctl enable --now caddy
复制代码
步骤 8:完成 Nextcloud 安装


  • 访问 http://yourdomain.com,Nextcloud 应该会主动完成安装。
  • 利用 admin 和 your_admin_password 登录。
步骤 9:设置主动更新与优化



  • 设置 定时任务 让 Nextcloud 进行配景任务管理:
  1. sudo crontab -u www-data -e
复制代码
添加:
  1. */5 * * * * php -f /var/www/nextcloud/cron.php
复制代码


  • 启用 OPcache(提高 PHP 性能):
  1. sudo nano /etc/php/*/fpm/php.ini
复制代码
找到 opcache.enable=0 并修改为:
  1. opcache.enable=1
  2. opcache.enable_cli=1
  3. opcache.memory_consumption=128
  4. opcache.interned_strings_buffer=8
  5. opcache.max_accelerated_files=10000
  6. opcache.validate_timestamps=1
复制代码
然后重启 PHP-FPM:
  1. sudo systemctl restart php*-fpm
复制代码
部分问题后处置惩罚

如果没有权限

如果网页登录没有权限进入,修改文件权限
  1. sudo chown -R www-data:www-data /var/www/nextcloud
  2. sudo chmod -R 750 /var/www/nextcloud
复制代码
然后清理缓存
  1. 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 类型支持:
  1. sudo nano /etc/mime.types
复制代码
在末端添加:
  1. image/heic heic
  2. image/heif heif
复制代码
保存退出(Ctrl + X → Y → 回车)。
然后重启服务器:
  1. sudo systemctl restart php8.2-fpm
  2. redis caddy
复制代码
确保 Web 端可以预览 HEIC

Nextcloud 默认不支持 HEIC 预览,你可以安装 HEIC 预览插件:
  1. sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator
复制代码
启用插件:
  1. sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
复制代码
然后重启 Nextcloud 相关服务:
  1. sudo systemctl restart php8.2-fpm
复制代码
安装 ImageMagick 以支持 HEIC

ImageMagick 可以让 Nextcloud 生成 HEIC 预览:
  1. sudo apt install imagemagick
复制代码
检查 HEIC 是否支持:
  1. convert -list format | grep HEIC
复制代码
如果输出雷同于:
  1. HEIC* HEIF      r--   High Efficiency Image Format
复制代码
说明已支持。如果 HEIC 没有启用,需要重新编译 ImageMagick,大概利用 libheif:
  1. sudo apt install libheif-examples
复制代码
然后编辑 policy.xml:
  1. sudo nano /etc/ImageMagick-6/policy.xml
复制代码
找到:
  1. <policy domain="coder" rights="none" pattern="HEIC" />
复制代码
改成:
  1. <policy domain="coder" rights="read | write" pattern="HEIC" />
复制代码
保存退出。没有找到就新增。然后重启:
  1. sudo systemctl restart php8.2-fpm
复制代码
确保 HEIC 文件可下载

如果 Nextcloud 拦截 HEIC 文件,大概需要手动答应 .heic 上传:
  1. sudo nano /var/www/nextcloud/.htaccess
复制代码
添加:
  1. AddType image/heic .heic
复制代码
保存并退出,然后清理缓存:
  1. sudo -u www-data php /var/www/nextcloud/occ files:scan --all
复制代码
启用 Nextcloud 预览支持

纵然安装了 HEIC 解析,Nextcloud 仍然不会主动创建 HEIC 预览,需要手动开启。
1️⃣ 安装 previewgenerator 插件
  1. sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator
  2. sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
复制代码
2️⃣ 答应 HEIC 预览
  1. sudo nano /var/www/nextcloud/config/config.php
复制代码
在 ); 之前添加:
  1. 'enable_previews' => true,
  2. 'preview_max_x' => 4096,
  3. 'preview_max_y' => 4096,
  4. 'preview_max_filesize_image' => 50,
  5. 'enabledPreviewProviders' => [
  6.     'OC\Preview\HEIC',
  7.     'OC\Preview\Image',
  8.     'OC\Preview\JPEG',
  9.     'OC\Preview\PNG',
  10.     'OC\Preview\GIF',
  11.     'OC\Preview\BMP',
  12.     'OC\Preview\TIFF',
  13.     'OC\\Preview\\MarkDown',
  14.     'OC\\Preview\\MP3',
  15.     'OC\\Preview\\TXT',
  16.    'OC\\Preview\\XBitmap',
  17.    'OC\\Preview\\OpenDocument',
  18.    'OC\\Preview\\Krita',
  19.    'OC\\Preview\\WebP',
  20. ],
复制代码
保存并退出 (Ctrl + X → Y → 回车)。
3️⃣ 手动生成 HEIC 预览
  1. sudo -u www-data php /var/www/nextcloud/occ preview:generate-all
复制代码
设置定时任务主动生成 HEIC 预览:
  1. echo "*/30 * * * * www-data php /var/www/nextcloud/occ preview:pre-generate" | sudo tee -a /
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表