如何在 Ubuntu 22.04 上安装 ownCloud
在此页
- 先决条件
- 安装依赖项
- 安装 PHP 7.4
- 安装 Apache2 Web 服务器
- 安装 MariaDB 服务器
- 下载 OwnCloud 源代码
- 为 ownCloud 设置 Apache2 虚拟主机
- 启动 ownCloud 安装向导
- ownCloud 性能调优
- 结论
ownCloud 是一款适用于创建文件托管服务(如 Google Drive 和 DropBox)的软件。它是免费的开源文件托管软件,允许您在自己的服务器上设置自托管文件托管。 ownCloud 提供服务器应用程序(ownCloud 软件套装的主要组件)和可以安装在多种操作系统(如 Linux、Windows、macOS、Android 和 iOS)上的客户端应用程序。
ownCloud 主要用 PHP、JavaScript 和 Go 编写。并允许您轻松同步日历事件、存储档案、图像和任何文件格式。还允许您组织任务、地址簿等。 ownCloud 是一个可扩展的应用程序,允许您在其上安装附加应用程序。
在本教程中,我们将向您展示如何在 Ubuntu 22.04 服务器上安装和配置 ownCloud。这也涵盖了 Ubuntu 服务器上 LAMP 堆栈(Linux、Apache2、MariaDB 和 PHP)的一些基本安装和配置。
先决条件
对于本指南,我们需要以下先决条件:
- 一个 Ubuntu Server 22.04 版本。
- 具有根管理员权限的非根用户。
- 域名指向并解析到服务器IP地址。
安装依赖
在开始安装 ownCloud 之前,您必须为您的服务器安装一些基本的依赖包,其中包括 openssl、redis-server、smbclient 等包。
首先,使用下面的 apt 命令将 Ubuntu 存储库更新到最新版本。
sudo apt update
之后,使用以下命令安装包依赖项。
sudo apt install smbclient redis-server unzip openssl rsync imagemagick
输入 Y 确认安装,然后按 ENTER 开始。所有依赖安装完成后,进入下一步。

安装 PHP 7.4
现在,您将为 Ubuntu 服务器上的 ownCloud 安装安装 PHP 依赖项。
最新版本的 Ubuntu 22.04 仓库提供了最新版本的 PHP 8.1 包。但是对于 ownCloud,您将需要 PHP 7.4 而不是 PHP 8.1。目前,PHP 8.1 还没有完全支持 ownCloud。
因此,现在您将从第三方存储库“ppa:ondrej/php”安装 PHP 7.4 到最新的 Ubuntu 22.04 服务器。
运行以下命令为 PHP 包添加 PPA 存储库。以下命令还将自动更新和刷新您的 Ubuntu 存储库。
sudo add-apt-repository ppa:ondrej/php -y
接下来,运行下面的 apt 命令将 PHP 7.4 安装到您的 Ubuntu 系统。此外,以下命令还将安装一些 PHP 8.1 软件包,但不要担心,因为您将能够在 Ubuntu 上设置默认的 PHP 版本。
sudo apt install php7.4 php7.4-intl php7.4-mysql php7.4-mbstring \
php7.4-imagick php7.4-igbinary php7.4-gmp php7.4-bcmath \
php7.4-curl php7.4-gd php7.4-zip php7.4-imap php7.4-ldap \
php7.4-bz2 php7.4-ssh2 php7.4-common php7.4-json \
php7.4-xml php7.4-dev php7.4-apcu php7.4-redis \
libsmbclient-dev php-pear php-phpseclib
接下来,运行以下命令在您的系统上设置 PHP 的默认版本。
sudo update-alternatives --config php
输入 PHP 版本号 7.4 并按 ENTER 确认。在此示例中,PHP 7.4 可用编号为“2”。
现在使用以下命令检查 PHP 版本。您会看到 PHP 的默认版本已更改为 PHP 7.4,这是 ownCloud 安装所需的。
php --version

现在运行以下命令将另一个 PHP 工具版本设置为 PHP 7.4。
sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4
接下来,您还需要将 PEAR 更新到 ownCloud 的最新稳定版本。目前PEAR最新稳定版为v1.10.13.,可手动升级。
使用以下命令创建一个新的临时目录 /tmp/pear/cache。
sudo mkdir -p /tmp/pear/cache
使用下面的 pear 命令将 PEAR 版本升级到 1.10.13。
sudo pear upgrade --force \
--alldeps http://pear.php.net/get/PEAR-1.10.13
现在运行下面的 pear 命令来清除缓存、更新频道和全部升级。
sudo pear clear-cache
sudo pear update-channels
sudo pear upgrade --force
sudo pear upgrade-all
升级过程完成后,使用以下命令检查 pear 版本。您应该会看到 PEAR 版本已升级到 v1.10.13。
pear version

安装 Apache2 Web 服务器
现在是时候为 ownCloud 安装 Apache2 网络服务器了,它还启用了 ownCloud 所需的模块。
使用下面的 apt 命令安装 Apache2 Web 服务器。
sudo apt install libapache2-mod-php7.4 apache2
输入Y确认安装,回车开始安装。
现在所有安装完成后,运行下面的 a2enmod 命令以启用 ownCloud 所需的一些 Apache2 模块。
sudo a2enmod rewrite env dir mime unique_id headers ssl

重新启动 Apache2 服务以应用新更改。
sudo systemctl restart apache2
安装 MariaDB 服务器
安装 PHP 7.4 和 Apache2 网络服务器后,现在是时候安装 MariaDB 服务器了。默认情况下,ownCloud 支持多种 RDBMS,例如 MySQL/MariaDB、SQLite、PostgreSQL 和 Oracle。最简单、免费且推荐用于 ownCloud 部署的方法是使用 MySQL/MariaDB 数据库。
运行下面的 apt 命令来安装 MariaDB 服务器包。
sudo apt install mariadb-server
输入 Y 确认安装,然后按 ENTER 开始。现在开始安装。

MariaDB 安装完成后,运行以下命令来设置和保护 MariaDB 部署。
sudo mysql_secure_installation
您将被要求提供以下一些基本的 MariaDB 配置:
- 输入新的 MariaDB root 密码并重复。
- 可选地,输入 Y 将身份验证切换为 unix_socket 身份验证。
- 输入 Y 从 MariaDB 服务器部署中删除默认的匿名用户。
- 输入 Y 禁用 MariaDB root 用户的远程登录。
- 再次输入 Y 以从您的 MariaDB 系统中删除默认数据库“test”。
- 最后,再次输入 Y 以重新加载所有表权限并将新更改应用到 MariaDB 服务器。
完成 MariaDB 服务器部署后,运行以下 mysql 命令登录 MariaDB shell。
mysql -u root -p
运行以下查询为 ownCloud 创建新的 MariaDB 数据库和用户。在此示例中,用户和数据库将命名为 \owncloud\,密码为 \owncloudpass\。
CREATE DATABASE owncloud;
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'owncloudpass';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

现在使用以下查询验证 MariaDB 用户“owncloud”的权限。确保 \owncloud\ 用户有权访问数据库 \owncloud\。
SHOW GRANTS FOR 'owncloud'@'localhost';

下载 OwnCloud 源代码
至此,您已经完成了 ownCloud 安装的 LAMP Stack(Linux、Apache2、MariaDB 和 PHP)的基本配置。现在您将 ownCloud 源代码下载到您的系统。
首先,使用以下命令转到 /var/www/ 目录。
cd /var/www/
现在使用下面的 wget 命令下载最新版本的 ownCloud 源代码和用于验证的校验和文件。你会看到 ownCloud 源代码的新文件 \owncloud-complete-latest.tar.bz2\ 和 \owncloud-complete-latest.tar.bz2.sha25 6\ 用于校验和文件。
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256
然后使用下面的 sha256sum 命令运行验证。如果验证成功,您将看到诸如“OK”之类的输出消息。
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2

之后,使用以下命令提取 ownCloud 源代码。你应该看到一个名为 \owncloud\ 的新目录,它将用作你的 ownCloud 安装的 DocumentRoot/WebRoot 目录\/var/www/owncloud \”。
tar -xf owncloud-complete-latest.tar.bz2
最后,使用以下命令将 \owncloud\ 目录的所有权更改为 \www-data\。
sudo chown -R www-data:www-data owncloud
为 ownCloud 设置 Apache2 虚拟主机
现在您将为 ownCloud 设置 Apache2 虚拟主机。在此示例中,我们将使用域名 \hwdomain.io\ 进行 ownCloud 安装,并在 Apache2 网络服务器上启用安全 HTTPS/SSL。
使用 nano 编辑器创建一个新的虚拟主机文件 \/etc/apache2/sites-available/owncloud.conf\。
sudo nano /etc/apache2/sites-available/owncloud.conf
将以下 Apache2 配置添加到文件中。此外,请务必使用您的配置详细信息更改 SSL 证书的域名和路径。使用此配置,您的 ownCloud 安装将在路径 URL \/owncloud\ 中可用(即 https://hwdomain.io/owncloud)
<VirtualHost *:80>
ServerName hwdomain.io
ServerAlias www.hwdomain.io
Redirect permanent / https://hwdomain.io/
</VirtualHost>
<VirtualHost *:443>
ServerName hwdomain.io
DocumentRoot /var/www
ServerAlias www.hwdomain.io
Protocols h2 http:/1.1
<If "%{HTTP_HOST} == 'www.hwdomain.io'">
Redirect permanent / https://hwdomain.io/
</If>
ErrorLog ${APACHE_LOG_DIR}/hwdomain.io-error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hwdomain.io/privkey.pem
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression off
Header always set Strict-Transport-Security "max-age=63072000"
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
</VirtualHost>
完成后保存并关闭文件。
接下来,使用以下命令激活虚拟主机配置“owncloud.conf”。
sudo a2ensite owncloud.conf
使用以下命令检查并验证 Apache2 配置。如果您的配置正确,您将看到诸如“Syntax: OK”之类的输出消息。
sudo apachectl configtest
最后,运行以下命令重新启动 Apache2 Web 服务器并应用新的虚拟主机配置 \owncloud.conf\。现在您已准备好从 Web 浏览器启动 ownCloud 安装向导,但您也可以选择从命令行启动 ownCloud 安装向导。
sudo systemctl restart apache2
启动 ownCloud 安装向导
要完成 ownCloud 安装,您需要访问 ownCloud 安装向导并为 ownCloud 设置详细信息数据库和管理员用户。这可以通过两种不同的方式完成,使用网络浏览器,或使用终端服务器的命令行。
在此示例中,您将从终端服务器通过命令行访问 ownCloud 安装向导。
将您的工作目录更改为 ownCloud DocumentRoot 目录 \/var/www/owncloud\。
cd /var/www/owncloud
现在运行以下命令来完成 ownCloud 安装。请务必更改数据库详细信息以及新的管理员用户和密码。全部完成后,您将在终端屏幕上看到输出消息,例如“ownCloud 已成功安装”。
sudo -u www-data /var/www/owncloud/occ maintenance:install \
--database "mysql" \
--database-name "owncloud" \
--database-user "owncloud"\
--database-pass "owncloudpass" \
--admin-user "admin" \
--admin-pass "adminpassowncloud"

接下来,您还需要使用 nano 编辑器编辑 ownCloud 配置\/var/www/owncloud/config/config.php\。
sudo nano /var/www/owncloud/config/config.php
将您的 ownCloud 安装域添加到 \trusted_domains\ 配置,如下所示。本例中ownCloud安装域名为“hwdomain.io”。
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'hwdomain.io',
),
完成后保存并关闭文件。
接下来,打开您的网络浏览器并在地址栏中输入您的 ownCloud 安装的域名(即 https://hwdomain.io/owncloud/)。现在您应该会看到 ownCloud 登录页面。
输入您 ownCloud 安装的管理员用户和密码,然后单击“登录”。

如果您的用户名和密码正确,您现在将看到 ownCloud 用户仪表板。这意味着您已经在您的 Ubuntu 服务器上成功安装了 ownCloud。

ownCloud 的性能调优
此时,ownCloud 已启动并运行。但是,您仍然需要添加一些额外的配置以获得更高的性能。现在您将使用 cron 为 ownCloud 设置后台作业,并使用 Redis 设置缓存系统。
运行以下命令将 ownCloud 后台作业更改为“cron”。
sudo -u www-data /var/www/owncloud/occ background:cron
接下来,使用以下命令为 ownCloud 创建一个新的 cron 配置。如果您的系统上没有默认编辑器,系统会要求您选择要使用的编辑器。
sudo crontab -u www-data -e
选择您要使用的编辑器并添加 cron 配置,如下所示。
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron
完成后保存并关闭文件。
接下来,要为 ownCloud 设置缓存系统,您需要修改 ownCloud 配置 config.php。
使用 nano 编辑器编辑文件\/var/www/owncloud/config/config.php\。
sudo nano /var/www/owncloud/config/config.php
现在将以下配置添加到文件中。
<?php>
....
....
'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],
....
....
);
完成后保存并关闭文件。
要验证您的配置,您可以转到 ownCloud 仪表板上的“管理 > 设置”菜单。
移至左侧的“常规”菜单并检查“安全和设置警告”部分。如果您看到诸如“所有检查已通过。”之类的消息,那么您的 ownCloud 安装和配置是正确且完整的。但如果出现警告,您应该会看到有关配置的详细信息,其中包括解决该警告的链接建议。
结论
恭喜!您现在已经使用 LAMP Stack 在 Ubuntu 22.04 上成功安装了 ownCloud。您还学习了 ownCloud 安装向导的基本 \occ\ 命令。最后,您还通过将默认后台作业从 Ajax 切换到 Cron 并在您的 ownCloud 上使用 Redis 设置缓存系统,为您的 ownCloud 安装配置了一些性能调整。