如何在 Debian 12 上安装 ownCloud
ownCloud 是一款用于创建 Google Drive 和 DropBox 等文件托管服务的软件解决方案。它是免费的开源文件托管软件,允许您在自己的服务器上设置自托管文件托管。 ownCloud 提供服务器应用程序(ownCloud 软件套件的主要组件)和客户端应用程序,可以安装在 Linux、Windows、macOS、Android 和 iOS 等多个操作系统上。
ownCloud 主要是用 PHP、JavaScript 和 Go 编写的。它允许您轻松同步日历事件并存储档案、图像和文件。它还允许您组织任务、地址簿等。ownCloud 是一个可扩展的应用程序,允许您在其上安装其他应用程序。
按照本指南逐步了解如何在 Debian 12 上安装 ownCloud 软件。了解如何通过 LAMP Stack 上的命令行安装 ownCloud,并使用 Letsencrypt 的 SSL/TLS 证书保护 ownCloud。
先决条件
要开始此过程,请确保您具备以下条件:
- Debian 12 服务器。
- 具有管理员用户的非 root 用户。
- 域名指向服务器IP地址。
安装依赖项
在下一节中,您将安装 ownCloud 所需的包依赖项。以下是您将要安装的一些软件包:
- Apache2 网络服务器。
- MariaDB 数据库服务器。
PHP 7.4 - ownCloud 仍不支持当前的 PHP 8.x 版本,因此您将通过第三方存储库安装 PHP 7.4。 - Redis 服务器。
- 其他软件包,例如 ImageMagick、Certbot、Pear 和 PHP 扩展。
首先,运行以下命令将一些依赖项安装到您的系统中。
sudo apt install lsb-release ca-certificates curl -y
现在运行以下命令将 PHP GPG 密钥和存储库添加到您的 Debian 系统。不幸的是,ownCloud 仍然不支持 PHP 8.x,您必须通过第三方存储库将 PHP 7.4 安装到您的 Debian 机器上。
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
接下来,运行以下命令来更新并刷新您的 Debian 存储库。
sudo apt update
然后通过执行以下 apt install 命令安装 ownCloud 的依赖项。这样,您将安装 LAMP Stack(Apache2、MariaDB 和 PHP 7.4)、Certbot、Redis、其他 PHP 扩展和 ImageMagick。
sudo apt install apache2 mariadb-server imagemagick certbot python3-certbot-apache smbclient redis-server unzip rsync libapache2-mod-php7.4 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
输入 y 继续安装。
安装依赖项后,通过执行以下命令验证每个依赖项。
运行以下命令验证 apache2 服务,确保该服务正在运行。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
以下输出显示 apache2 已启用并正在运行。
使用以下命令验证 mariadb 服务。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
输出应该类似,输出启用确认 mariadb 已启用,输出 active (running) 确认 mariadb 正在运行。
现在使用以下命令验证 Redis。
sudo systemctl is-enabled redis
sudo systemctl status redis
Redis 服务器应该正在运行并启用,如下所示:
接下来,运行以下命令在 Debian 计算机上配置默认 PHP 版本。
sudo update-alternatives --config php
选择默认 PHP 版本为 PHP 7.2。
运行以下命令配置其他 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
之后,使用以下命令验证默认 PHP 版本和一些启用的扩展。
php -v
php -m
下面的输出确认 PHP 7.2 已安装并成为 Debian 计算机上的默认 PHP 版本。
最后,使用以下命令检查 Certbot 的二进制路径及其版本。
which certbot
certbot --version
您应该看到 Certbot 2.1.0 安装到 /usr/bin/certbot。
升级 PHP Pear
安装依赖项后,下一步是将 Pear 包升级到最新版本,这可以通过 Pear 命令行完成。
执行以下命令创建新的临时目录/tmp/pear/cache并将pear版本升级到1.10.13。
sudo mkdir -p /tmp/pear/cache
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 version
您应该会看到 Pears 已更新至 v1.10.13。
配置 MariaDB 服务器
在下一节中,您将通过 mariadb-secure-installation 实用程序创建并保护 MariaDB Server 安装。然后,您将创建一个将由 ownCloud 使用的新数据库和用户。
要保护 MariaDB 服务器的安全,请在终端上运行以下命令。
sudo mariadb-secure-installation
在此过程中,会询问您一些MariaDB的配置。输入 Y 接受配置或输入 n 拒绝配置。以下是您需要提供的一些 MariaDB 配置:
- 切换到 unix_socket 身份验证?输入 n 并按 ENTER 键。默认的 MariaDB root 用户已受到保护。或者,您还可以通过键入 y(表示“是”)来启用它。
- 修改root密码?输入 y 确认并设置新的 MariaDB root 密码。
- 删除匿名用户?输入 y 确认。
- 禁止远程root登录?输入 y 确认。如果您使用 MariaDB root 用户,则仅允许本地连接。
- 删除测试数据库并访问它?输入 y 确认并删除默认数据库“test”。
- 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有表权限并应用新的更改。
保护 MariaDB 后,您将创建一个将由 ownCloud 使用的新数据库和用户。为此,您必须通过 mariadb 客户端登录 MariaDB 服务器。
执行以下命令登录MariaDB Server。出现提示时输入您的 MariaDB root 密码。
sudo mariadb -u root -p
现在执行下面的 MariaDB 查询来为 ownCloud 创建新的数据库和用户。在此示例中,您将创建一个新数据库 owncloud、用户 owncloud,密码为 password。
CREATE DATABASE owncloud;
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
最后,通过执行以下查询来验证用户 owncloud 的权限。
SHOW GRANTS FOR 'owncloud'@'localhost';
您应该看到用户 owncloud 可以访问数据库 owncloud,该数据库将用于您的 ownCloud 安装。
现在输入quit退出MariaDB服务器。
下载ownCloud源代码
配置 MariaDB 服务器后,您将下载 ownCloud 源代码并为您的 ownCloud 安装配置 DocumentRoot 目录及其适当的权限和所有权。
首先,将您的工作目录更改为/var/www。
cd /var/www
然后,运行以下 wget 命令将 ownCloud 源代码和相应的校验和文件下载到您的系统。
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
现在运行以下命令以确保您 ownCloud 源代码的完整性。如果成功,您应该得到输出“owncloud-complete-latest.tar.bz2: OK”。
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2
接下来,运行以下命令来提取ownCloud源代码。 ownCloud 源代码将被提取到 /var/www/owncloud 目录,该目录也将用作 DocumentRoot 目录。
tar -xf owncloud-complete-latest.tar.bz2
最后,运行以下命令将 /var/www/owncloud 目录的所有权更改为用户 www-data。
sudo chown -R www-data:www-data /var/www/owncloud
配置 Apache2 虚拟主机
在本部分中,您将创建一个新的虚拟主机配置,用于运行 ownCloud。您还将通过 Certbot 从 Letscrypt 生成 SSL/TLS 证书。因此,在开始之前,请确保您的域名指向您的服务器 IP 地址。
首先,运行以下命令以启用 ownCloud 将使用的一些 Apache2 模块。
sudo a2enmod rewrite env dir mime unique_id headers ssl
现在使用以下 nano 编辑器命令创建一个新的虚拟主机文件 /etc/apache2/sites-available/owncloud.conf。
sudo nano /etc/apache2/sites-available/owncloud.conf
插入以下配置,并确保更改 ServerName 参数中的域名。
<VirtualHost *:80>
ServerName hwdomain.io
ServerAlias www.hwdomain.io
DocumentRoot /var/www/owncloud
ErrorLog ${APACHE_LOG_DIR}/hwdomain.io-error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io-access.log combined
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>
完成后保存文件并退出编辑器。
接下来,运行下面的 a2ensite 命令来激活虚拟主机文件 owncloud.conf 并通过 apachectl 命令验证您的 Apache2 语法。如果您的语法正确,您应该得到输出“Syntax OK”。
sudo a2ensite owncloud.conf
sudo apachectl configtest
现在运行下面的 systemctl 命令来重新启动 apache2 服务并应用您所做的更改。
sudo systemctl restart apache2
最后,运行下面的 certbot 命令为您的 ownCloud 域名生成 SSL/TLS 证书。请务必使用您的信息在以下命令中更改域名和电子邮件地址。
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email -d hwdomain.io
该过程完成后,您的 SSL/TLS 证书将在 /etc/letsencrypt/live/hwdomain.io 目录中可用。此外,您的虚拟主机文件 owncloud.conf 将自动配置 HTTPS。
通过命令行安装 ownCloud
至此,您已经安装并配置了 ownCloud 所需的所有依赖项。您可以通过网络浏览器或命令行开始安装步骤。在此示例中,您将通过命令行安装 ownCloud。
将您的工作目录移至/var/www/owncloud。
cd /var/www/owncloud
通过命令行执行以下命令安装ownCloud。请务必更改 MariaDB 数据库的详细信息以及 ownCloud 的新管理员用户和密码。
sudo -u www-data /var/www/owncloud/occ maintenance:install \
--database "mysql" \
--database-name "owncloud" \
--database-user "owncloud"\
--database-pass "password" \
--admin-user "admin" \
--admin-pass "adminpassowncloud"
安装完成后,您应该得到以下输出。
接下来,使用以下 nano 编辑器命令打开 ownCloud config.php 脚本。
sudo nano /var/www/owncloud/config/config.php
将您自己的云域名添加到 trust_domains 中,如下所示。
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'hwdomain.io',
),
完成后保存并关闭文件。
现在打开您的网络浏览器并访问您自己的云域名,例如http://hwdoamin.io/。您将被重定向到安全的 HTTPS 连接并获得 ownCloud 登录页面。
输入您的管理员用户和密码,然后点击登录。
如果一切顺利,您应该会看到如下所示的 ownCloud 仪表板。
ownCloud 的性能调优
现在您已经安装了 ownCloud,在最后一部分中,您将添加新配置以增强您的 ownCloud 安装。您将为 ownCloud 创建一个新的 crontab 并将 Redis 集成到您的 ownCloud 安装中。
通过执行以下命令为 ownCloud 创建一个新的 cron。
sudo crontab -u www-data -e
选择您喜欢的文本编辑器并输入以下配置。这样,您将每 15 分钟执行一次命令“/usr/bin/php -f /var/www/owncloud/occ system:cron”。
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron
完成后保存并关闭文件。
接下来,使用 nano 编辑器命令再次打开 ownCloud config.php 文件。
sudo nano /var/www/owncloud/config/config.php
将 Redis 服务器添加为 memcache.locking,如下所示:
<?php>
....
....
'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],
....
....
);
完成后保存并退出文件。
现在返回 ownCloud 仪表板,单击用户图标,然后选择设置。
单击常规菜单并检查安全和设置警告部分,以获取有关您的 ownCloud 安装的详细建议。
结论
恭喜!您已经逐步完成了 Debian 12 服务器上 ownCloud 的安装。您已使用 LAMP Stack(Apache2、MariaDB 和 PHP)安装 ownCloud,使用 Letsencrypt 的 SSL/TLS 证书保护 ownCloud,并将 Redis 服务器集成到您的 ownCloud 安装中。