如何在Ubuntu 16.04上安装和配置Nextcloud

介绍

Nextcloud是ownCloud的一个分支,它是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在一个集中位置,与Dropbox非常相似。与Nextcloud的区别是它的所有功能都是开源的。它还将敏感数据的控制和安全性返回给您,从而避免使用第三方云托管服务。 在本教程中,我们将在Ubuntu 16.04服务器上安装和配置Nextcloud实例。

先决条件

要完成本指南中的步骤,您需要以下内容:
  • 你的服务器上要有sudo用户 :您可以按照创建使用sudo权限的用户Ubuntu 16.04服务器初始设置指南
  • LAMP环境:Nextcloud需要Web服务器,数据库和PHP才能正常工作。 设置LAMP(Linux,Apache,MySQL和PHP)服务器满足所有这些要求。 按照本指南安装和配置这个软件。
  • SSL证书 :你如何设置这取决于你是否拥有一个解析为您的服务器域名。 - 如果你有一个域名......,以确保您的网站是咱们的加密,它提供免费的,可信证书的最简单方法。 按照咱们的加密指南为Apache设置。 - 如果你没有域名......你只是使用测试或个人使用此配置,您可以使用自签名证书来代替。 这提供了相同类型的加密,但没有域验证。 按照自签名的SSL指南Apache才能完成设置。

第一步 - 下载Nextcloud

首先,请访问 Nextcloud发布页面NextCloud发布页面 向下滚动到页面底部,单击鼠标右键,复制 .tar.bz2链接,最新的稳定版本。可能有更新的版本,如下图所示: NextCloud发布页面 在服务器上,移动到可写目录:
cd /tmp
然后,使用 curl命令和Nextcloud链接下载压缩包文件:
curl -LO https://download.nextcloud.com/server/releases/nextcloud-10.0.1.tar.bz2
虽然我们直接从项目的网站下载tarball,但最佳做法是验证从Internet下载的项目的真实性和完整性。此验证方法证明文件在下载过程中既未被篡改,也未损坏或损坏。返回到 发布页面单击鼠标右键,复制的链接 .sha256 ,您之前下载的压缩包文件的版本相匹配的文件。 回到服务器上,使用 curl命令和新的链接下载校验和文件:
curl -LO https://download.nextcloud.com/server/releases/nextcloud-10.0.1.tar.bz2.sha256
接下来,使用 shasum命令来计算哈希为 .tar.bz2文件,并把它比作在校验值 .sha256文件。 该 -a标志定义算法和 -c标志读取指定的文件并检查其反对的哈希值之和 .tar.bz2文件:
shasum -a 256 -c nextcloud-10.0.1.tar.bz2.sha256 < nextcloud-10.0.1.tar.bz2
Outputnextcloud-10.0.1.tar.bz2: OK
您可以安全地删除 .sha256文件与 rm命令:
rm nextcloud-10.0.1.tar.bz2.sha256
下载Nextcloud并验证文件的完整性,让我们继续安装。

第2步 - 安装Nextcloud

Nextcloud的安装包括提取tarball以为Apache创建文档根目录,执行脚本以设置提取的文件的正确所有权和权限,并更新Apache的配置以使其了解新应用程序。 通过启动 tar使用命令 -C标志归档的内容保存到指定的目录。 该 -x标志执行提取功能, -v产生冗长的输出, -j过滤通过存档 bzip2压缩实用程序,并 -f指定要上执行的操作的文件名:
sudo tar -C /var/www -xvjf /tmp/nextcloud-10.0.1.tar.bz2
tarball不是特定于发行版的,因此文件的所有权和权限不正确。然而, Nextcloud有一个脚本 ,我们可以用它来解决这个问题。 创建具有一个shell脚本文件 nano编辑器:
nano /tmp/nextcloud.sh
将以下内容添加到文件中:
/tmp/nextcloud.sh
#!/bin/bash
ocpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater

printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chmod 755 ${ocpath}

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ

printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
 then
  chmod 0644 ${ocpath}/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
 then
  chmod 0644 ${ocpath}/data/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi
运行带有脚本 bash命令:
sudo bash /tmp/nextcloud.sh
OutputCreating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess
接下来,创建了一个网站的配置文件 /etc/apache2/sites-available目录:
sudo nano /etc/apache2/sites-available/nextcloud.conf
将以下行添加到文件:
/etc/apache2/sites-available/nextcloud.conf
Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
    Options +FollowSymlinks
    AllowOverride All

    <IfModule mod_dav.c>
        Dav off
    </IfModule>

    SetEnv HOME /var/www/nextcloud
    SetEnv HTTP_HOME /var/www/nextcloud

</Directory>
保存并退出文件。为了使该网站使用 a2ensite命令:
sudo a2ensite nextcloud
OutputEnabling site nextcloud.
. . .
除了启用该网站,使用 a2enmod命令来启用 mod_rewrite Apache模块,这Nextcloud要求才能正常工作。
sudo a2enmod rewrite
OutputEnabling module rewrite.
. . .
最后,在重新启动Apache之前,为Nextcloud中的其他功能安装一些可选的PHP模块:
sudo apt-get update
sudo apt-get install  php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip
现在,使用 systemctl实用程序与 reload命令来更改应用到Apache:
sudo systemctl reload apache2
在安装了Nextcloud并正确配置了Web服务器后,我们将继续为要使用的应用程序设置数据库。

第3步 - 创建MySQL数据库

要开始,请使用管理帐户登录MySQL:
mysql -u root -p
输入您在安装软件时为MySQL root用户设置的密码。 Nextcloud需要一个单独的数据库来存储管理数据。虽然你可以调用这个数据库不管你愿意,我们决定用这个名字 nextcloud让事情变得简单。
CREATE DATABASE nextcloud;
注意:每个MySQL的语句必须以分号(;)结束。 如果您遇到任何问题,请务必检查这是否存在。 接下来,创建一个单独的MySQL用户帐户,与新创建的数据库进行交互。从管理和安全的角度来看,创建单功能数据库和帐户是一个好主意。与数据库的命名一样,选择您喜欢的用户名。我们选择去与名称 nextcloud本指南
GRANT ALL ON nextcloud.* to 'nextcloud'@'localhost' IDENTIFIED BY 'set_database_password';
警告:请务必把一个实际的密码所在的命令读取: set_database_password 通过用户分配对数据库的访问权限,执行flush-privileges操作以确保MySQL的正在运行的实例知道最近的权限分配:
FLUSH PRIVILEGES;
MySQL的配置到此结束,因此我们将通过键入以退出会话:
exit
随着数据库的设置,我们准备把注意力转向配置Nextcloud。

第4步 - 配置Nextcloud

要访问Nextcloud Web界面,请打开Web浏览器并导航到以下地址:
https://server_domain_or_IP/nextcloud
如果正在使用自签名证书,您可能会收到警告,因为证书未由您的浏览器的可信授权机构签名。这是预期和正常的。我们只对证书的加密方面感兴趣,而不是对我们主机的真实性的第三方验证。单击适当的按钮或链接以继续到Nextcloud管理页面。 你应该看到这样: Nextcloud管理员页面 通过选择用户名创建管理员帐户(建议避免使用类似“admin”的安全原因)和密码。 Nextcloud管理员帐户 根据 存储和数据库部分保持 数据文件夹设置原样,并输入数据库信息,您在上一步中创建,在 配置数据库部分。下面是一个示例,它匹配我们在本指南中使用的数据库凭据: NextCloud数据库示例 点击 完成设置按钮登录到Nextcloud 一个安全的home为所有应该出现 的数据Nextcloud欢迎屏幕 单击 X在启动画面进入主界面的右上角: Nextcloud主界面 在这里,您可以创建或上传文件到您的个人云。

结论

Nextcloud可以复制流行的第三方云存储服务的功能。内容可以在用户之间或外部与公共URL共享。 Nextcloud的优点是信息安全地存储在您控制的地方。 探索界面和附加功能,使用安装插件 Nextcloud应用程序 。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏