𝑻𝒆𝒏𝑪𝒍𝒂𝒘正在头脑风暴···
𝑻𝒆𝒏𝑲𝒊𝑺𝒆𝒀𝒂の𝑨𝒈𝒆𝒏𝒕助手
𝑻𝒆𝒏-𝒇𝒍𝒂𝒔𝒉

Nextcloud 私有云搭建教程

Nextcloud 是一个自托管的开源文件同步和共享平台。

什么是 Nextcloud?

Nextcloud 是一个免费的云存储解决方案,提供:

  • 文件同步和共享
  • 协作编辑
  • 照片管理
  • 日历
  • 通讯录
  • 在线 Office 编辑

搭建前准备

硬件要求

  • CPU: 双核以上
  • 内存: 最低 2GB,推荐 4GB+
  • 硬盘: 最低 10GB,推荐 SSD
  • 网络: 宽带连接

操作系统

推荐使用 Ubuntu 或 Debian。

安装步骤

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 安装 Apache、PHP 和相关扩展

sudo apt install -y apache2 mariadb-server \
php libapache2-mod-php php-gd php-mysql \
php-curl php-intl php-xml php-mbstring \
php-zip php-bcmath php-json php-gmp

3. 配置数据库

sudo mysql_secure_installation
# 设置 root 密码
# 移除匿名用户
# 禁用远程 root 登录
# 删除测试数据库
# 重新加载权限表

# 创建 Nextcloud 数据库
sudo mysql -u root -p
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. 下载 Nextcloud

cd /var/www
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo mv nextcloud html
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo chmod -R 755 /var/www/html/nextcloud

5. 配置 Apache

sudo nano /etc/apache2/sites-available/nextcloud.conf

添加以下内容:

Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav on
</IfModule>

RewriteEngine On
RewriteBase /nextcloud/
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

<IfModule mod_headers.c>
<Header always set Referrer-Policy "no-referrer-when-downgrade" env="HTTPS">
</Header>
<Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" env="HTTPS">
</Header>
</IfModule>
</Directory>

启用站点:

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo systemctl restart apache2

6. 安装 Nextcloud

  1. 访问 http://你的服务器IP/nextcloud
  2. 创建管理员账户
  3. 选择数据库类型:MariaDB/MySQL
  4. 输入数据库信息:
    • 用户名: nextcloud
    • 密码: 刚才设置的密码
    • 数据库名: nextcloud
    • 主机: localhost
  5. 点击”安装”

配置

安装应用程序

登录后进入设置 → 应用,安装以下应用:

  • 文件加密
  • 端到端加密
  • 扫描文档
  • 二维码扫描器

配置外部存储

  1. 安装外部存储应用
  2. 配置 S3、阿里云 OSS 等存储

设置 SSL 证书(HTTPS)

使用 Let’s Encrypt 免费证书:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d your-domain.com

移动端使用

Android

下载 Nextcloud 应用并登录账户。

iOS

从 App Store 下载 Nextcloud 应用。

备份

定期备份

# 备份数据库
sudo mysqldump -u nextcloud -p nextcloud > nextcloud_backup.sql

# 备份文件
sudo tar -czf nextcloud_files.tar.gz /var/www/html/nextcloud/

迁移数据

迁移到新服务器

  1. 备份旧服务器数据
  2. 在新服务器上重新安装 Nextcloud
  3. 恢复数据库和文件
  4. 更新配置文件中的数据库连接信息

性能优化

启用 OPCache

sudo nano /etc/php/8.x/apache2/php.ini

设置:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000

启用 Redis 缓存

sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server

配置 Redis:

# /var/www/html/nextcloud/config/config.php
'redis' => [
'host' => 'localhost',
'port' => 6379,
],

常见问题

无法上传大文件

修改 PHP 配置:

upload_max_filesize = 1000M
post_max_size = 1000M
memory_limit = 1024M

权限问题

sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo chmod -R 770 /var/www/html/nextcloud

总结

Nextcloud 提供了完整的私有云解决方案,数据完全掌握在自己手中。