贝博恩创新科技网

owncloud ubuntu教程

Ubuntu 上安装 OwnCloud 完整教程

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

owncloud ubuntu教程-图1
(图片来源网络,侵删)

本教程将以 Ubuntu 22.04 LTS 为例,使用最新的 OwnCloud 10.x 版本(在撰写本教程时,最新稳定版为 10.11)。


第一步:准备工作

在开始之前,请确保你的服务器满足以下条件:

  1. 一台 Ubuntu 22.04 服务器:拥有一个静态的公网 IP 地址。
  2. sudo 权限的用户:一个非 root 的用户,拥有 sudo 权限。
  3. 更新系统:确保所有系统包都是最新的。
    sudo apt update && sudo apt upgrade -y
  4. 安装必要工具
    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 并设置为开机自启:

owncloud ubuntu教程-图2
(图片来源网络,侵删)
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 密码、移除匿名用户等。

owncloud ubuntu教程-图3
(图片来源网络,侵删)
sudo mysql_secure_installation

在过程中,按以下提示操作(通常直接按回车选择默认值即可,但建议为 root 设置一个强密码):

  1. Enter current password for root (enter for none): -> 直接按回车
  2. Switch to unix_socket authentication [Y/n] -> 输入 n(我们希望使用密码登录)
  3. Set root password? [Y/n] -> 输入 Y,然后设置一个强密码。
  4. Remove anonymous users? [Y/n] -> 输入 Y
  5. Disallow root login remotely? [Y/n] -> 输入 Y
  6. Remove test database and access to it? [Y/n] -> 输入 Y
  7. Reload 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 创建一个专用的数据库和用户。

  1. 登录 MariaDB

    sudo mysql
  2. 创建数据库 (数据库名可以自定义,这里用 owncloud_db):

    CREATE DATABASE owncloud_db;
  3. 创建用户 (用户名和密码请自行替换,这里用 owncloud_useryour_strong_password):

    CREATE USER 'owncloud_user'@'localhost' IDENTIFIED BY 'your_strong_password';
  4. 授予用户权限

    GRANT ALL PRIVILEGES ON owncloud_db.* TO 'owncloud_user'@'localhost';
  5. 刷新权限并退出

    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 虚拟主机配置文件。

  1. 创建配置文件 (将 your-domain.com 替换为你的真实域名):

    sudo nano /etc/apache2/sites-available/owncloud.conf
  2. 粘贴以下内容

    <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>
  3. 启用站点和重写模块

    # 启用虚拟主机配置
    sudo a2ensite owncloud.conf
    # 启用 Apache 的 URL 重写模块 (非常重要)
    sudo a2enmod rewrite
    # 启用 headers 模块 (用于安全配置)
    sudo a2enmod headers
  4. 重启 Apache

    sudo systemctl restart apache2

第六步:完成 Web 界面安装

你可以通过浏览器访问 http://your-domain.comhttp://<你的服务器IP> 来完成最后的安装。

  1. 管理员账户设置

    • 管理员用户名:创建一个管理员用户名。
    • 密码:设置一个强密码。
  2. 数据目录配置

    • 默认路径是 /var/www/owncloud/data不要修改这个默认值,因为我们已经为这个目录设置了正确的权限,如果你修改到其他地方,必须手动确保 www-data 用户有读写权限。
  3. 数据库设置

    • 数据库用户:输入我们之前创建的用户名 owncloud_user
    • 数据库密码:输入我们设置的强密码 your_strong_password
    • 数据库名称:输入我们创建的数据库名 owncloud_db
    • 数据库主机:保持默认 localhost
  4. 点击 "完成安装" (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:

  1. Web 界面:直接在浏览器中访问你的域名,登录即可使用。
  2. 桌面客户端
    • 访问 OwnCloud 官网 下载适用于 Windows、macOS 或 Linux 的客户端。
    • 安装后,输入你的服务器地址和账户信息进行同步。
  3. 移动客户端
    • 在 App Store (iOS) 或 Google Play (Android) 搜索 "owncloud" 下载官方应用。
    • 登录即可在手机上访问和同步文件。

常见问题与排错

  • 问题:安装时出现 "Directory not writable" 或 "Cannot create data directory" 错误。 解决:请检查 /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 {} \;
  • 问题:页面加载缓慢或功能异常。 解决

    1. 检查 PHP 错误日志:/var/log/apache2/error.log
    2. 确保 php-apcu 已安装并启用。
    3. 检查服务器资源(CPU、内存)是否充足。
  • 问题:无法上传大文件。 解决:检查并修改 php.ini 中的 upload_max_filesizepost_max_size 值,并重启 Apache。

恭喜!你已经成功在自己的 Ubuntu 服务器上搭建了一个功能完整的 OwnCloud 私有云。

分享:
扫描分享到社交APP
上一篇
下一篇