📝夏夜随风Linux运维
type: channel
link: https://xysf.top/
description: 夏夜随风Linux运维
items: 打印机驱动
items: IPV6地址ping不通后自动重新获取地址的监控脚本
items: Linux基础知识（持续更新中）
items: 软连接
items: 飞牛域名端口转发
items: 飞牛系统下 IPv6 默认路由自动修复方案
items: Ubuntu 安装 Navidrome .deb + Apache 反代到 /music 的部署流程
items: Typecho 在 Apache 下的部署流程
items: 使用 Unison 实现 Linux 下目录的实时同步（示例：/data/syna1 → /data/sync2）
items: Ubuntu 上使用 OwnCloud 配置 Apache：一站式文件同步与共享

打印机驱动
type: item
date: 2025-09-30T01:39:00+00:00
description: 联想打印机驱动 https://www.lenovoimage.com/index.php/services/index惠普打印机驱动 https://support.hp.com/cn-zh/drivers/printers

IPV6地址ping不通后自动重新获取地址的监控脚本
type: item
date: 2025-09-19T02:39:00+00:00
description: 在国内部署 IPv6 时，经常遇到 IPv6 地址自动获取失败或连接不稳定的情况。为了解决这个问题，我整合了一份 国内优化版 IPv6 监控脚本，支持日志轮转，并可以通过 systemd 实现开机自动执行和异常重启。下面我详细介绍脚本及配置方法。1️⃣ IPv6 监控脚本脚本核心功能：定时检测 IPv6 连通性自动刷新 IPv6 地址（支持 SLAAC，兼容 NetworkManager 或系统网络服务）日志记录并支持轮转，防止日志无限增长可长时间后台运行完整脚本如下：#!/bin/bash # IPv6检测脚本 - 国内优化版 LOG_FILE="/var/log/ipv6_monitor.log" MAX_LOG_SIZE=1048576 # 1MB TEST_HOSTS=( "2400:3200::1" "2400:3200:baba::1" "ipv6.sjtu.edu.cn" "ipv6.ustc.edu.cn" "ipv6.baidu.com" ) MAX_FAILS=3 FAIL_COUNT=0 CHECK_INTERVAL=300 RETRY_INTERVAL=30 log_message() { # 日志轮转 if [ -f "$LOG_FILE" ] && [ $(stat -c%s "$LOG_FILE") -gt $MAX_LOG_SIZE ]; then mv "$LOG_FILE" "${LOG_FILE}.1" echo "$(date '+%Y-%m-%d %H:%M:%S') - 日志文件轮转" > "$LOG_FILE" fi echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE" logger -t ipv6-monitor "$1" } check_ipv6() { local success_count=0 local total_tests=${#TEST_HOSTS[@]} local required_success=$((total_tests / 2 + 1)) if ! ip -6 route show default | grep -q default; then log_message "警告: 没有IPv6默认路由" return 1 fi for host in "${TEST_HOSTS[@]}"; do if ping6 -c 2 -W 3 "$host" > /dev/null 2>&1; then ((success_count++)) log_message "检测通过: $host" else log_message "检测失败: $host" fi sleep 1 done if host ipv6.sjtu.edu.cn > /dev/null 2>&1; then ((success_count++)) fi if [ $success_count -ge $required_success ]; then log_message "IPv6连接正常 (通过 $success_count/$total_tests 个测试点)" return 0 else log_message "IPv6连接异常 (仅通过 $success_count/$total_tests 个测试点)" return 1 fi } renew_ipv6() { log_message "开始重新获取IPv6地址..." local interface=$(ip -6 route show default | awk '{print $5}' | head -n1) [ -z "$interface" ] && interface=$(ip link show | grep -E '^[0-9]+:' | grep -v lo: | awk -F': ' '{print $2}' | head -n1) log_message "使用网络接口: $interface" ip -6 addr flush dev "$interface" sleep 2 local method_used="" if command -v nmcli > /dev/null 2>&1; then log_message "使用方法1: NetworkManager" nmcli device disconnect "$interface" 2>/dev/null sleep 2 nmcli device connect "$interface" 2>/dev/null method_used="networkmanager" sleep 10…

Linux基础知识（持续更新中）
type: item
date: 2025-09-18T13:49:00+00:00
description: Linux基本命令pwd显示当前所在的位置cd切换目录 相对路径：以根开始的路径 cd games 绝对路径：以当前位置，为参照的路径 cd /usr/games cd ~root cd ~wanglong 直接进入家目录 .. 表示上一层目录（父目录） ls 显示目录显示当前目录下的内容 -l 长格式显示详细属性 -h 提供易读的容量单位（K、M等） -lh -d 显示目录本身（而不是内容）的属性 -ld -A 显示所有内容，包含隐藏数据 -R 递归显示目录内容cat 查看少量文本查看文本文件内容，适合查看内容较少的文件 cat --help //查看命令帮助信息 cat -n /etc/shells //显示行号 cat /root/anaconda-ks.cfg cat /etc/passwd cat /etc/fstabless 滚动查看文本查看文本文件内容，适合查看内容较多文件 按上下键可以进行滚动 按q键退出hostname 主机名hostname abc.haha.xixi hostname //显示设置的hostnamecpu与内存lscpu 查看cpu信息 cat /proc/meminfo 查看内容信息ifconfig 查看ip查看ip信息 lo:本机回环地址（此接口专门用于测试），永远为127.0.0.1，代表本机mkdir 创建目录创建目录 mkdir /路径/目录名 -p 连同父目录一并创建 touch 创建文件创建文本文件 touch /opt/1.txt 创建文件 ls /opt 查看目录head/tail 查看收尾格式：head/tail -n 文件名 查看前n行/倒数n行 head -3 /etc/passwd tail -3 /etc/passwdgrep 指定字符的行输出包含指定字符串的行 grep root /etc/passwd grep bash /etc/passwd 常用命令 grep 选项 '字符串' 文本文件 -v 取反匹配（不包含） -i 忽略大小写 grep -v root /etc/passwd 高级使用 ^word 以字符word开头 word$ 以字符word结尾 grep ^root /etc/passwd 查看以root开头的文件 grep bash$ /etc/passwd 查看以bash结尾的文件 ^$ 表示空行，这两个是一个整体，表示空行 grep ^$ /etc/default/useradd #筛选出空行 grep -v ^$ /etc/default/useradd 不要（筛选出的）空行 linux中大多数配置文件内容，有以#开头的注释行 grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt #将/etc/login.defs去除以#开头的注释行和去除空行，然后输出到/opt/log.txtvim 编辑器文本编辑器 vim当文件不存在时，会自动创建文件，不能创建目录 vim打开一个文件时，默认处于命令模式；从命令模式按i键可以进入编辑状态，按Esc键返回命令模式；从命令模式输入冒号:可以进入末行模式，在末行模式下主要执行wq存盘与退出等基本操作。 vim末行模式 读取文件内容 [root@localhost /]# echo 123456 > /opt/aa.txt [root@localhost /]# echo hahaxixi > /opt/cc.txt [root@localhost /]# vim /opt/cc.txt 末行模式下 :r /opt/aa.txt #将aa.txt文件追加到文本后面 末行模式下 :r /etc/passwd #将passwd文件追加到文本后面 末行模式下 :r /etc/shells #将shells文件追加到文本后面 字符串替换 :1,10s/root/new/g 替换第1-10行所有的“root” :%s/root/new/g 替换文件内所有的“root” 开关参数的控制 :set nu或nonu 显示/不显示行号 :set ai或noai 启用/关闭自动缩进 永久开关功能设置 vim /root/.vimrc set nu #将这个命令写入到.vimrc中命令模式常用操作： 1G 或 gg ，跳转到文件的首行 G ，跳转到文件的末尾行 yy、#yy ，复制光标处的一行、#行 p、P ，粘贴到光标处之后、之前 x 或 Delete键 ，删除光标处的单个字符 dd、#dd ，删除光标处的一行、#行 d^、d$ ，从光标处之前删除至行首/行尾 /word 向后查找字符串“word”，再按n/N跳至后/前一个结果 u ，撤销最近的一次操作 U ，撤销对当前…

软连接
type: item
date: 2025-09-16T13:12:00+00:00
description: ln -s /etc/nginx/sites-available/chat.soarfree.top /etc/nginx/sites-enabled/

飞牛域名端口转发
type: item
date: 2025-09-16T10:41:00+00:00
description: server { listen 80; # 如果配置了SSL，也会监听443端口 # listen 443 ssl; # ssl_certificate /path/to/your/cert.pem; # ssl_certificate_key /path/to/your/key.pem; server_name nas.soarfree.top; # 您的域名 # 核心配置：代理所有请求到飞牛NAS location / { # 后端NAS服务器的IP和端口 proxy_pass http://192.168.1.4:81; # 以下这些头部信息至关重要，它们确保后端服务能接收到正确的客户端信息 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 一些超时和缓冲区的优化设置 proxy_buffering off; proxy_request_buffering off; proxy_http_version 1.1; proxy_read_timeout 36000s; proxy_connect_timeout 600s; proxy_send_timeout 600s; } # 可选：如果您需要代理WebSocket连接，可以添加一个特定的location # location /ws/ { # proxy_pass http://192.168.1.4:81; # proxy_http_version 1.1; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "Upgrade"; # proxy_set_header Host $host; # } }检查配置并重载 Nginx：# 测试配置文件语法是否正确 sudo nginx -t # 如果测试通过，重载Nginx使配置生效 sudo systemctl reload nginx

飞牛系统下 IPv6 默认路由自动修复方案
type: item
date: 2025-09-16T07:10:19+00:00
description: 在给飞牛系统配置 IPv6 时，很多朋友会遇到这样的问题：能够获取到 IPv6 地址，但是没有默认网关（default via fe80::xxxx）。手动执行命令：sudo ip -6 route add default via fe80::1 dev enp1s0后可以正常上网。但是当 IPv6 地址租期到期或网卡重连时，路由会消失，需要再次手动添加，非常麻烦。本文将介绍一种简单有效的解决方案：通过 NetworkManager 的 dispatcher 脚本，让系统在网卡地址更新时自动补上默认路由。问题分析IPv6 默认网关通常通过 RA（Router Advertisement） 下发，但部分光猫设备（尤其是运营商定制版）可能只下发前缀，不提供默认路由，导致系统没有默认 IPv6 路由。解决思路是：手动指定光猫的链路本地地址（通常为 fe80::1）作为默认网关。写一个钩子脚本，确保每次网卡重新获取 IPv6 地址时自动补上路由。解决步骤1. 新建 dispatcher 脚本编辑 /etc/NetworkManager/dispatcher.d/90-ipv6-route：#!/bin/bash IFACE=$1 STATUS=$2 if [ "$IFACE" = "enp1s0" ] && [ "$STATUS" = "up" ]; then /sbin/ip -6 route replace default via fe80::1 dev enp1s0 fi2. 赋予执行权限sudo chmod +x /etc/NetworkManager/dispatcher.d/90-ipv6-route3. 重启 NetworkManagersudo systemctl restart NetworkManager验证效果断开并重新启用 enp1s0 网卡，或者等待 IPv6 地址续租。然后执行：ip -6 route show应该能看到：default via fe80::1 dev enp1s0 proto static metric 100测试：ping6 -c 4 ipv6.baidu.com能够正常响应，即表示脚本生效。总结通过 NetworkManager dispatcher 脚本，我们解决了飞牛系统下 IPv6 默认路由缺失的问题。其优点是：简单稳定，不依赖额外的服务或定时任务。能在每次地址变动时自动修复路由，避免手动操作。这样，即使 IPv6 地址是动态的，也能保证系统始终具备可用的默认 IPv6 路由。

Ubuntu 安装 Navidrome .deb + Apache 反代到 /music 的部署流程
type: item
date: 2025-09-15T07:45:00+00:00
description: 在本教程中，我们将指导你如何在 Ubuntu 上安装 Navidrome，通过 Apache 将其反向代理到 /music 路径下。完成后，你就可以通过浏览器访问 Navidrome 的 Web 界面，或者使用支持的移动应用（如 DSub、Symfonium、Substreamer 等）进行连接。一、下载并安装 Navidrome首先，下载 Navidrome 的 .deb 安装包并安装：cd /tmp wget https://github.com/navidrome/navidrome/releases/download/v0.58.0/navidrome_0.58.0_linux_amd64.deb sudo dpkg -i navidrome_0.58.0_linux_amd64.deb如果提示缺少依赖，执行以下命令来修复：sudo apt -f install二、检查 Navidrome 服务安装完成后，Navidrome 会作为 systemd 服务运行。你可以通过以下命令查看服务状态：sudo systemctl status navidrome如果服务没有运行，启用并启动它：sudo systemctl enable --now navidrome默认情况下，Navidrome 会监听在 http://127.0.0.1:4533。三、配置 NavidromeNavidrome 的配置文件位于：sudo nano /etc/navidrome/navidrome.toml在配置文件中，修改 MusicFolder 为你的音乐存放路径。例如：MusicFolder = "/srv/music" DataFolder = "/var/lib/navidrome" Address = "127.0.0.1" Port = 4533将 MusicFolder 路径改成你实际存放音乐的路径（比如 /home/老王/music）。修改完成后，保存并关闭文件。然后重启 Navidrome 服务：sudo systemctl restart navidrome四、配置 Apache 反向代理到 /music为了通过 Apache 访问 Navidrome，我们需要启用 Apache 的代理模块并配置反向代理。启用代理模块：sudo a2enmod proxy sudo a2enmod proxy_http sudo systemctl restart apache2接下来，创建一个新的 Apache 配置文件（如 music.conf）：sudo nano /etc/apache2/sites-available/music.conf在配置文件中添加以下内容：<VirtualHost *:80> ServerName example.com # 反向代理 /music 到 Navidrome ProxyPass /music http://127.0.0.1:4533/ ProxyPassReverse /music http://127.0.0.1:4533/ </VirtualHost>将 example.com 替换为你的域名或服务器 IP。启用站点并重载 Apache 配置：sudo a2ensite music.conf sudo systemctl reload apache2五、访问现在，你可以通过浏览器访问：http://example.com/music你将看到 Navidrome 的登录界面，首次登录时，系统会提示你创建管理员账号。六、可选：启用 HTTPS如果你有域名，强烈建议通过 Let's Encrypt 免费证书启用 HTTPS。安装 Certbot 和 Apache 插件：sudo apt install certbot python3-certbot-apache -y然后使用以下命令申请并安装证书：sudo certbot --apache总结至此，Navidrome 已经成功部署在 Apache 上，并通过 /music 子路径进行访问。如果你配置了 HTTPS，你的连接将会更加安全。此外，你还可以使用支持的移动应用（如 DSub、Symfonium、Substreamer 等）来连接 Navidrome，享受更加便捷的音乐管理体验。

Typecho 在 Apache 下的部署流程
type: item
date: 2025-09-15T07:43:01+00:00
description: 在本教程中，我们将演示如何在 Apache 服务器下部署 Typecho 博客系统。包括 Apache、PHP、MySQL 的安装与配置，以及 Typecho 的下载、解压、配置与安装。1. 环境准备1.1 安装 ApacheApache 是 Typecho 网站的 Web 服务器。首先，需要安装 Apache：sudo apt update sudo apt install apache2启动 Apache 服务并设置开机自启：sudo systemctl start apache2 sudo systemctl enable apache2检查 Apache 是否正常运行：在浏览器中访问 http://localhost，如果显示 Apache 的默认页面，表示安装成功。1.2 安装 PHP 7.4 或以上版本PHP 是 Typecho 的核心组件。你需要安装 PHP 7.4 或更高版本，并启用必要的扩展。安装 PHP 和相关扩展：sudo apt install php7.4 php7.4-cli php7.4-common php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring php7.4-json php7.4-xml php7.4-zip检查 PHP 版本：php -v确保 PHP 版本为 7.4 或更高。确认是否启用必要的扩展：php -m | grep -E "mysqli|gd|mbstring|json|xml|zip"如果某些扩展没有启用，可以单独安装：sudo apt install php7.4-mysqli php7.4-gd php7.4-mbstring php7.4-json php7.4-xml php7.4-zip重启 Apache 服务：sudo systemctl restart apache21.3 安装 MySQL接下来，我们需要安装 MySQL 数据库。安装 MySQL：sudo apt install mysql-server启动 MySQL 服务：sudo systemctl start mysql sudo systemctl enable mysql配置 MySQL 安全设置：sudo mysql_secure_installation登录 MySQL 并创建数据库和用户：sudo mysql -u root -p执行以下 SQL 语句：CREATE DATABASE typecho_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'typecho_user'@'localhost' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON typecho_db.* TO 'typecho_user'@'localhost'; FLUSH PRIVILEGES; EXIT;2. 下载并解压 Typecho下载 Typecho 的最新版本：wget https://github.com/typecho/typecho/releases/download/v1.2.1/typecho.zip解压 Typecho 到 /var/www/html/typecho 目录：sudo apt install unzip sudo unzip typecho.zip -d /var/www/html/typecho设置文件权限，确保 Apache 用户可以访问：sudo chown -R www-data:www-data /var/www/html/typecho sudo chmod -R 755 /var/www/html/typecho3. 配置 Apache创建一个 Apache 虚拟主机配置文件：sudo nano /etc/apache2/sites-available/typecho.conf在文件中添加以下内容：<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html/typecho ServerName example.com <Directory /var/www/html/typecho> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/typecho_error.log CustomLog ${APACHE_LO…

使用 Unison 实现 Linux 下目录的实时同步（示例：/data/syna1 → /data/sync2）
type: item
date: 2025-09-15T07:39:36+00:00
description: 在日常运维中，我们经常需要在两个目录之间保持文件同步。无论是备份、数据整合还是服务文件共享，实时同步都是非常实用的需求。本文以 Linux 系统为例，使用 Unison + inotify-tools + systemd 实现 /data/syna1 到 /data/sync2 的实时同步，并总结了在配置过程中的常见问题及解决方法。1. 安装必要软件Unison 是一个强大的跨平台文件同步工具，支持增量同步和双向同步。为了实现实时监控，我们还需要 inotify-tools。apt update apt install unison inotify-tools -yUnison：文件同步工具inotify-tools：Linux 文件系统事件监控工具，支持 Unison 的 repeat = watch 功能2. 创建 Unison 配置文件Unison 使用配置文件（.prf）来指定同步的目录和其他选项。创建目录和配置文件：mkdir -p ~/.unison nano ~/.unison/sync.prf在配置文件中写入以下内容（示例同步 /data/syna1 → /data/sync2）：# 同步源目录 root = /data/syna1 # 同步目标目录 root = /data/sync2 # 自动同步，无需手动确认 auto = true batch = true # 实时监控目录变化 repeat = watch # 忽略权限差异，避免属性冲突 perms = 0root：需要同步的两个目录auto = true 和 batch = true：自动处理冲突，避免交互提示repeat = watch：启用实时监控perms = 0：忽略文件权限差异，避免 Unison 因权限变化跳过同步⚠️ 注意：文件必须在同一个文件系统中，否则 repeat = watch 可能无法正常工作。3. 测试同步首次同步可以手动运行：unison sync输出示例如下：Looking for changes New file --> example.txt Propagating updates [BGN] Copying example.txt from /data/syna1 to /data/sync2 [END] Copying example.txt Synchronization complete新文件已同步属性冲突：可以通过 perms = 0 忽略4. 配置 systemd 实现后台实时同步为了确保实时同步持续运行，即使系统重启也不受影响，可以使用 systemd 来管理 Unison 服务。创建 systemd 服务文件nano /etc/systemd/system/unison-sync.service写入以下内容：[Unit] Description=Unison Real-time Sync from /data/syna1 to /data/sync2 After=network.target [Service] Type=simple User=root ExecStart=/usr/bin/unison sync Restart=always RestartSec=5 StandardOutput=append:/root/.unison/unison.log StandardError=append:/root/.unison/unison.log [Install] WantedBy=multi-user.targetUser=root：以 root 用户运行，可访问任意目录ExecStart=/usr/bin/unison sync：使用我们创建的 sync.prf 配置文件Restart=always：服务意外退出时自动重启StandardOutput 和 StandardError：记录日志，便于排查问题启用并启动服务systemctl daemon-reload systemctl enable unison-sync systemctl start unison-sync查看实时日志：journalctl -u unison-sync -f文件一旦在 /data/syna1 中新增、修改或删除，会自动同步到 /data/sync2。5. 常见问题及解决方法1️⃣ 配置文件未找到如果 systemd 日志报错：Profile /root/.unison//root/.unison/sync.conf.prf does not exist解决方法：确保配置文件名为 .prf。systemd 中的 ExecStart 应仅包含文件名，不带扩展名：mv ~/.unison/sync.conf …

Ubuntu 上使用 OwnCloud 配置 Apache：一站式文件同步与共享
type: item
date: 2025-09-15T07:36:50+00:00
description: 在如今的互联网时代，文件共享与同步是日常工作中不可或缺的一部分。借助开源解决方案，使用 OwnCloud 搭建个人文件服务器是一种非常高效、可靠的方式。本文将详细介绍如何在 Ubuntu 系统上通过 Apache Web 服务器配置 OwnCloud。1. 什么是 OwnCloud？OwnCloud 是一个开源的文件同步和共享平台，允许用户在本地和远程存储之间轻松同步文件。它类似于 Google Drive 或 Dropbox，但用户拥有自己的控制权。OwnCloud 提供文件同步、版本控制、文件共享、在线编辑文档等功能，非常适合搭建私有云。2. 安装前准备在开始之前，确保你的系统已更新到最新版本：sudo apt update sudo apt upgrade -y你需要以下软件包：Apache2PHP（7.4 或更高版本）MySQL/MariaDB（作为数据库）OwnCloud 最新版3. 安装 Apache 和 PHP首先，安装 Apache2 Web 服务器和 PHP（包括所需模块）：sudo apt install apache2 php libapache2-mod-php php-mysql php-xml php-mbstring php-curl php-zip php-gd php-intl php-bz2 php-soap -ylibapache2-mod-php：Apache 和 PHP 集成php-mysql：与 MySQL 交互所需其他 PHP 扩展用于支持文件上传、压缩、文件操作等功能4. 配置 MySQL 数据库为 OwnCloud 创建一个 MySQL 数据库和用户：sudo mysql -u root -p进入 MySQL 后，执行以下命令：CREATE DATABASE owncloud; CREATE USER 'owncloud_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_user'@'localhost'; FLUSH PRIVILEGES; EXIT;这里创建了一个名为 owncloud 的数据库，并为它分配了一个用户名和密码（请替换 your_password 为你的密码）。5. 下载并安装 OwnCloud访问以下链接下载最新版本的 OwnCloud：OwnCloud 下载然后，下载并解压文件：cd /tmp wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 tar -xjf owncloud-complete-latest.tar.bz2接下来，移动文件到 Apache 的根目录 /var/www/html/：sudo mv owncloud /var/www/html/赋予合适的权限：sudo chown -R www-data:www-data /var/www/html/owncloudwww-data 是 Apache Web 服务器使用的用户和组，确保 Apache 可以访问和修改 OwnCloud 的文件。6. 配置 Apache接下来，创建 Apache 配置文件以指向 OwnCloud 的目录：sudo nano /etc/apache2/sites-available/owncloud.conf写入以下内容：<VirtualHost *:80> DocumentRoot /var/www/html/owncloud ServerName your_domain_or_ip # 配置文件 Alias /owncloud "/var/www/html/owncloud" <Directory /var/www/html/owncloud> Options +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>这里将 /owncloud 路径指向 OwnCloud 目录，并允许 .htaccess 文件覆盖 Apache 配置，以便 OwnCloud 能正常工作。启用新的虚拟主机配置并重新启动 Apache：sudo a2ensite owncloud.conf sudo systemctl reload apache27. 配置数…