2024-10-17
计算机
0
请注意,本文编写于 66 天前,最后修改于 66 天前,其中某些信息可能已经过时。

目录

什么是Nextcloud?
主要特点
适用场景
如何在Ubuntu上安装和配置Nextcloud
1. 更新系统并安装Apache2
2. 安装PHP 8.2及相关扩展
3. 安装MariaDB
4. 配置MariaDB以支持Nextcloud
5. 安装Nextcloud
6. 配置Apache以支持Nextcloud
7. 生成SSL证书
8. 部署Nextcloud
自动化部署

什么是Nextcloud?

Nextcloud是一款开源的自托管云存储解决方案,旨在提供安全、私密和可扩展的文件存储和共享服务。它的功能类似于Dropbox或Google Drive,但不同之处在于用户可以完全控制自己的数据,并在自己的服务器上运行Nextcloud,从而保护隐私和安全。

主要特点

  1. 自托管:用户可以在自己的服务器或虚拟机上安装Nextcloud,这样可以完全控制数据和存储环境。

  2. 文件存储与共享:Nextcloud允许用户上传、下载、分享和同步文件,支持多种文件类型。

  3. 多用户支持:可以为不同用户设置权限,方便团队协作和文件管理。

  4. 丰富的应用生态:Nextcloud提供了大量的应用插件,可以扩展功能,例如日历、联系人、任务管理、在线文档编辑等。

  5. 安全性:支持端到端加密、SSL加密传输等多种安全措施,确保用户数据的安全。

  6. 跨平台:Nextcloud提供Web界面以及适用于Windows、macOS、Linux、Android和iOS的客户端,方便用户在不同设备上访问文件。

适用场景

  • 个人云存储:用户可以在自己的服务器上存储和管理个人文件。
  • 团队协作:企业和团队可以使用Nextcloud来共享文件和管理项目。
  • 教育机构:学校和大学可以利用Nextcloud为学生和教职员工提供安全的文件存储和共享平台。

如何在Ubuntu上安装和配置Nextcloud

在本篇博客中,我们将逐步介绍如何在Ubuntu系统上安装和配置Nextcloud,这是一款功能强大的自托管云存储解决方案。我们将涵盖从系统更新到Apache、PHP、MariaDB及Nextcloud本身的安装和配置。

1. 更新系统并安装Apache2

首先,我们需要确保系统是最新的,并安装Apache2作为我们的Web服务器。

bash
sudo apt update sudo apt install apache2 -y sudo apt install software-properties-common -y

2. 安装PHP 8.2及相关扩展

根据Nextcloud的官方文档,建议使用PHP 8.2及其所需的扩展,因此我们将安装PHP 8.2及相关的必要组件。

bash
sudo add-apt-repository ppa:ondrej/php -y sudo apt update sudo apt install php8.2 libapache2-mod-php8.2 php8.2-gd php8.2-mysql php8.2-curl php8.2-mbstring php8.2-intl php8.2-gmp php8.2-bcmath php8.2-xml php8.2-imagick php8.2-zip -y

3. 安装MariaDB

接下来,我们将安装MariaDB,根据Nextcloud的官方文档,我们将安装MariaDB 10.6来存储Nextcloud数据的数据库。

bash
wget https://dlm.mariadb.com/3859034/MariaDB/mariadb-10.6.19/repo/ubuntu/mariadb-10.6.19-ubuntu-jammy-amd64-debs.tar tar -xvf mariadb-10.6.19-ubuntu-jammy-amd64-debs.tar cd mariadb-10.6.19-ubuntu-jammy-amd64-debs sudo ./setup_repository sudo apt update && sudo apt install mariadb-server -y

启动并启用MariaDB服务:

bash
sudo systemctl start mariadb sudo systemctl enable mariadb

4. 配置MariaDB以支持Nextcloud

我们需要为Nextcloud创建一个数据库和用户。

bash
sudo mysql -u root -e "CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" sudo mysql -u root -e "CREATE USER 'anthony'@'localhost' IDENTIFIED BY 'nextcloud';" sudo mysql -u root -e "GRANT ALL PRIVILEGES ON nextcloud.* TO 'anthony'@'localhost';" sudo mysql -u root -e "FLUSH PRIVILEGES;"

5. 安装Nextcloud

现在我们来下载并安装Nextcloud。

bash
cd ~ sudo apt install unzip -y wget https://download.nextcloud.com/server/releases/latest.zip wget https://download.nextcloud.com/server/releases/latest.zip.sha256 sha256sum -c latest.zip.sha256 < latest.zip unzip latest.zip sudo cp -r nextcloud /var/www sudo chown -R www-data:www-data /var/www/nextcloud

6. 配置Apache以支持Nextcloud

我们需要为Nextcloud配置Apache虚拟主机。

bash
cat <<EOL | sudo tee /etc/apache2/sites-available/nextcloud.conf ServerName 192.168.124.128 # 服务器IP 或域名 <VirtualHost *:80> ServerAdmin anthony@localhost DocumentRoot /var/www/nextcloud RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L] </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin anthony@localhost DocumentRoot /var/www/nextcloud ErrorLog \${APACHE_LOG_DIR}/error.log CustomLog \${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/cert.pem SSLCertificateKeyFile /etc/ssl/cert-key.pem <Directory /var/www/nextcloud/> Require all granted AllowOverride All Options FollowSymLinks MultiViews </Directory> </VirtualHost> </IfModule> EOL

禁用默认站点并启用Nextcloud站点:

bash
sudo a2dissite 000-default.conf sudo a2dissite default-ssl.conf sudo a2ensite nextcloud.conf

启用必要的Apache模块:

bash
sudo a2enmod rewrite headers env dir mime setenvif php8.2 ssl

7. 生成SSL证书

为了确保Nextcloud的安全性,我们需要为它配置SSL证书。如果没有域名,我们可以使用mkcert来生成本地证书。

bash
sudo apt install libnss3-tools -y wget https://dl.filippo.io/mkcert/latest?for=linux/amd64 -O mkcert chmod +x mkcert sudo mv mkcert /usr/local/bin/ mkcert --install mkcert X.X.X.X localhost 127.0.0.1 ::1

X.X.X.X 替换成服务器IP

最后,将生成的证书移动到正确的位置:

bash
sudo cp X.X.X.X-key.pem /etc/ssl/cert-key.pem sudo cp X.X.X.X.pem /etc/ssl/cert.pem

重启Apache以应用更改:

bash
sudo systemctl restart apache2

8. 部署Nextcloud

打开浏览器输入服务器IP或域名,用在MariaDB中创建的数据库及用户名登录并进行部署。

自动化部署

点击此处获取自动化部署Nextcloud。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DYMripper

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!