Ubuntu 上安装 OwnCloud 完整教程
OwnCloud 是一个开源的、自托管的文件同步和共享解决方案,类似于 Dropbox 或 Google Drive,但所有数据都存储在你自己的服务器上,保证了隐私和控制权。

本教程将以 Ubuntu 22.04 LTS 为例,使用最新的 OwnCloud 10.x 版本(在撰写本教程时,最新稳定版为 10.11)。
第一步:准备工作
在开始之前,请确保你的服务器满足以下条件:
- 一台 Ubuntu 22.04 服务器:拥有一个静态的公网 IP 地址。
sudo权限的用户:一个非 root 的用户,拥有sudo权限。- 更新系统:确保所有系统包都是最新的。
sudo apt update && sudo apt upgrade -y
- 安装必要工具:
sudo apt install -y wget curl software-properties-common apt-transport-https
第二步:安装 LAMP/LEMP 栈
OwnCloud 需要 Web 服务器(如 Apache 或 Nginx)、数据库(如 MySQL 或 MariaDB)和 PHP,这里我们选择 Apache + MariaDB + PHP 的组合,这是最经典和稳定的配置。
安装 Web 服务器 (Apache)
sudo apt install -y apache2
安装后,启动 Apache 并设置为开机自启:

sudo systemctl start apache2 sudo systemctl enable apache2
你可以通过访问服务器的 IP 地址来测试 Apache 是否正在运行,在浏览器中输入 http://<你的服务器IP>,你应该能看到 Apache 的默认欢迎页面。
安装数据库 (MariaDB)
MariaDB 是 MySQL 的一个流行分支,完全兼容。
sudo apt install -y mariadb-server mariadb-client
启动 MariaDB 并设置开机自启:
sudo systemctl start mariadb sudo systemctl enable mariadb
安全配置 MariaDB:运行安全脚本,它会设置 root 密码、移除匿名用户等。

sudo mysql_secure_installation
在过程中,按以下提示操作(通常直接按回车选择默认值即可,但建议为 root 设置一个强密码):
Enter current password for root (enter for none):-> 直接按回车Switch to unix_socket authentication [Y/n]-> 输入n(我们希望使用密码登录)Set root password? [Y/n]-> 输入Y,然后设置一个强密码。Remove anonymous users? [Y/n]-> 输入YDisallow root login remotely? [Y/n]-> 输入YRemove test database and access to it? [Y/n]-> 输入YReload privilege tables now? [Y/n]-> 输入Y
安装 PHP 及扩展
OwnCloud 需要 PHP 7.4 或更高版本,Ubuntu 22.04 的默认源中包含 PHP 8.1,完全兼容。
sudo apt install -y php php-gd php-mysql php-curl php-mbstring php-intl php-imagick php-xml php-zip php-bcmath php-apcu
php: 核心包。php-gd: 用于图像处理。php-mysql: PHP 与 MySQL/MariaDB 的连接模块。php-curl: 用于网络请求。php-mbstring: 用于处理多字节字符串。php-intl: 用于国际化支持。php-imagick: 用于更高级的图像操作。php-xml: 用于 XML 解析。php-zip: 用于处理 ZIP 文件。php-bcmath: 用于高精度数学计算。php-apcu: 一个可选的缓存,可以显著提升性能。
安装完成后,重启 Apache 以使 PHP 模块生效:
sudo systemctl restart apache2
第三步:创建 OwnCloud 数据库和用户
为了安全,我们不应该使用 root 用户来连接数据库,我们将为 OwnCloud 创建一个专用的数据库和用户。
-
登录 MariaDB
sudo mysql
-
创建数据库 (数据库名可以自定义,这里用
owncloud_db):CREATE DATABASE owncloud_db;
-
创建用户 (用户名和密码请自行替换,这里用
owncloud_user和your_strong_password):CREATE USER 'owncloud_user'@'localhost' IDENTIFIED BY 'your_strong_password';
-
授予用户权限:
GRANT ALL PRIVILEGES ON owncloud_db.* TO 'owncloud_user'@'localhost';
-
刷新权限并退出:
FLUSH PRIVILEGES; EXIT;
第四步:下载并安装 OwnCloud
下载 OwnCloud
从官方源下载最新的 OwnCloud 安装包。
# 进入临时目录 cd /tmp # 下载最新稳定版 (请前往官网检查最新版本号) wget https://download.owncloud.org/community/owncloud-10.11.0.tar.bz2
解压并移动文件
# 解压 tar -xjf owncloud-10.11.0.tar.bz2 # 创建网站根目录 (如果不存在) sudo mkdir -p /var/www/owncloud # 将解压后的文件移动到网站根目录 sudo mv owncloud/* /var/www/owncloud/
设置正确的文件权限
Web 服务器(Apache 的运行用户是 www-data)需要能够读写 OwnCloud 的数据目录。
# 设置所有者和组为 www-data
sudo chown -R www-data:www-data /var/www/owncloud/
# 设置正确的文件权限
sudo find /var/www/owncloud/ -type f -exec chmod 0644 {} \;
sudo find /var/www/owncloud/ -type d -exec chmod 0755 {} \;
第五步:配置 Apache 虚拟主机
为了通过域名访问 OwnCloud,我们需要创建一个 Apache 虚拟主机配置文件。
-
创建配置文件 (将
your-domain.com替换为你的真实域名):sudo nano /etc/apache2/sites-available/owncloud.conf
-
粘贴以下内容:
<VirtualHost *:80> ServerAdmin admin@your-domain.com DocumentRoot /var/www/owncloud ServerName your-domain.com ServerAlias www.your-domain.com <Directory /var/www/owncloud/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/owncloud_error.log CustomLog ${APACHE_LOG_DIR}/owncloud_access.log combined </VirtualHost> -
启用站点和重写模块:
# 启用虚拟主机配置 sudo a2ensite owncloud.conf # 启用 Apache 的 URL 重写模块 (非常重要) sudo a2enmod rewrite # 启用 headers 模块 (用于安全配置) sudo a2enmod headers
-
重启 Apache:
sudo systemctl restart apache2
第六步:完成 Web 界面安装
你可以通过浏览器访问 http://your-domain.com 或 http://<你的服务器IP> 来完成最后的安装。
-
管理员账户设置:
- 管理员用户名:创建一个管理员用户名。
- 密码:设置一个强密码。
-
数据目录配置:
- 默认路径是
/var/www/owncloud/data。不要修改这个默认值,因为我们已经为这个目录设置了正确的权限,如果你修改到其他地方,必须手动确保www-data用户有读写权限。
- 默认路径是
-
数据库设置:
- 数据库用户:输入我们之前创建的用户名
owncloud_user。 - 数据库密码:输入我们设置的强密码
your_strong_password。 - 数据库名称:输入我们创建的数据库名
owncloud_db。 - 数据库主机:保持默认
localhost。
- 数据库用户:输入我们之前创建的用户名
-
点击 "完成安装" (Finish Setup)。
如果一切顺利,你将看到 OwnCloud 的主界面。
第七步:后续优化与安全配置
配置 HTTPS (强烈推荐)
不使用 HTTPS 是非常危险的,我们可以使用 Let's Encrypt 免费获取 SSL 证书。
安装 Certbot:
sudo apt install -y certbot python3-certbot-apache
自动获取并安装证书:
certbot --apache -d your-domain.com -d www.your-domain.com
Certbot 会自动检测你的 Apache 配置,并修改它以启用 HTTPS,它会询问你是否将 HTTP 流量重定向到 HTTPS,选择 Redirect (选项 2)。
调整 PHP 上传限制
如果需要上传大文件,需要修改 PHP 的配置。
# 打开 php.ini 文件 sudo nano /etc/php/8.1/apache2/php.ini
找到并修改以下几项(根据你的需求调整值):
upload_max_filesize = 1024M post_max_size = 1024M memory_limit = 1024M max_execution_time = 3600
保存文件后,重启 Apache:
sudo systemctl restart apache2
防火墙设置
如果你的服务器启用了 UFW (Uncomplicated Firewall),你需要允许 HTTP 和 HTTPS 流量。
sudo ufw allow 'Apache Full'
第八步:如何使用 OwnCloud
安装完成后,你可以通过以下方式使用 OwnCloud:
- Web 界面:直接在浏览器中访问你的域名,登录即可使用。
- 桌面客户端:
- 访问 OwnCloud 官网 下载适用于 Windows、macOS 或 Linux 的客户端。
- 安装后,输入你的服务器地址和账户信息进行同步。
- 移动客户端:
- 在 App Store (iOS) 或 Google Play (Android) 搜索 "owncloud" 下载官方应用。
- 登录即可在手机上访问和同步文件。
常见问题与排错
-
问题:安装时出现 "Directory not writable" 或 "Cannot create
datadirectory" 错误。 解决:请检查/var/www/owncloud目录的所有者和权限,确保是www-data:www-data,并且权限设置正确。sudo chown -R www-data:www-data /var/www/owncloud sudo find /var/www/owncloud -type d -exec chmod 755 {} \; sudo find /var/www/owncloud -type f -exec chmod 644 {} \; -
问题:页面加载缓慢或功能异常。 解决:
- 检查 PHP 错误日志:
/var/log/apache2/error.log。 - 确保
php-apcu已安装并启用。 - 检查服务器资源(CPU、内存)是否充足。
- 检查 PHP 错误日志:
-
问题:无法上传大文件。 解决:检查并修改
php.ini中的upload_max_filesize和post_max_size值,并重启 Apache。
恭喜!你已经成功在自己的 Ubuntu 服务器上搭建了一个功能完整的 OwnCloud 私有云。
