Skip to content

Ubuntu 16.04 手动安装 NextCloud 12

NextCloud 是 OwnCloud 的开源分支,使用 PHP 语言开发,类似程序通常采用 LAMP 或 LNMP 运行环境。本文介绍在 Ubuntu 16.04 LTS 系统上安装 NextCloud  11 最新版的标准方法。

过程概述

手动安装 NextCloud 实际就是搭建 Apache + MySQL + PHP 运行环境并配置使用的过程,由于 Ubuntu 16.04 的软件仓库中提供了搭建运行环境所需的一切,因此只需要几个命令即可完成安装和配置。

运行环境建议

  • WEB 服务器:Apache 2.x
  • 数据库:MariaDB
  • PHP:php 7.0
提示:本文使用 MariaDB 数据库,它是 MySQL 的开源分支,你也可以使用 MySQL,他们的命令和用法几乎完全一样。

服务器信息

为确保本指南的可用性,我在 Vultr 创建了一台云服务器,配置如下:
  • 位置:Silicon Valley – 硅谷
  • CPU:1 vCore
  • 内存:1024 MB
  • 硬盘:25 GB SSD
  • 系统:Ubuntu 16.04 x64
  • 主机名:ubuntu-1g-sv
  • IP 地址:45.63.45.63 (非真实地址,仅用于演示)
我同时创建了 herald 普通用户,它能够通过执行 sudo 命令获得 root 权限,相关内容请参考 《Ubuntu 16.04 服务器初始化设置指南》。

通过 SSH 连接到服务器

如果你还不知道如何登陆你的云服务器,请先阅读《如何使用 SSH 连接到你的云服务器》。
192:~ Herald$ ssh [email protected]

配置 LAMP 环境

第一步 更新系统

更新软件列表
herald@ubuntu-1g-sv:~$ sudo apt update
执行软件更新
herald@ubuntu-1g-sv:~$ sudo apt -y upgrade

第二步 安装 Apache

herald@ubuntu-1g-sv:~$ sudo apt install apache2

第三步 安装 MariaDB

herald@ubuntu-1g-sv:~$ sudo apt install mariadb-server

第四步 安装 PHP 7.0

herald@ubuntu-1g-sv:~$ sudo apt install libapache2-mod-php7.0

第五步 安装 PHP 扩展

herald@ubuntu-1g-sv:~$ sudo apt install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip

准备 NextCloud 源代码

第一步 下载 NextCloud 12 源码包

访问 NextCloud 官方网站 https://nextcloud.com/changelog/,如下图,在这里能找到 NextCloud 的所有版本。
截止本文发稿,NextCloud 的最新版本为12.0.0。提供.tar.bz2和.zip两种压缩包,任选一种即可。
使用wget命令下载.tar.bz2格式的源码压缩包:
herald@ubuntu-1g-sv:~$ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.0.tar.bz2

第二步 解压源码包

herald@ubuntu-1g-sv:~$ tar jxf nextcloud-12.0.0.tar.bz2

第三步 复制源代码到 web 服务器目录

将解压出来的nextcloud程序源代码目录复制到/var/www/目录中:
herald@ubuntu-1g-sv:~$ sudo cp -r nextcloud /var/www/

第四步 设置 nextcloud 的目录权限

herald@ubuntu-1g-sv:~$ sudo chown -R www-data:www-data /var/www/nextcloud/

配置 apache 虚拟主机

第一步 绑定域名

在域名管理平台新增一条A记录,指向你所使用的服务器公网 IP 地址,本例中,我将nc.onit.run域名绑定到45.63.45.63。

第二步 创建 nextcloud.conf 虚拟主机配置文件

herald@ubuntu-1g-sv:~$ sudo nano /etc/apache2/sites-available/nextcloud.conf
将以下配置信息粘贴到配置文件中,注意,请将配置文件中的nc.onit.run替换成你自己的域名:
Alias /nextcloud “/var/www/nextcloud/”
<VirtualHost *:80>
ServerName nc.onit.run
DocumentRoot /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>
</VirtualHost>

第二步 让虚拟主机生效

herald@ubuntu-1g-sv:~$ sudo a2ensite nextcloud.conf

第三步 启用必须的 apache 模块

herald@ubuntu-1g-sv:~$ sudo a2enmod rewrite headers env dir mime ssl

第四步 重启 apache 服务器

herald@ubuntu-1g-sv:~$ sudo service apache2 restart

MariaDB 数据库设置

第一步 数据库安全初始化(可选,建议)

herald@ubuntu-1g-sv:~$ sudo mysql_secure_installation
通过交互式的命令,提示对数据库做安全初始化设置,过程略过不讲。

第二步 创建 nextcloud 所需的数据库和账户

请查阅《MySQL 数据库入门》了解 MySQL/MAriaDB 数据库操作基础知识。
打开数据库管理命令行:
herald@ubuntu-1g-sv:~$ sudo mysql -u root
创建 nextcloud 数据库:
MariaDB [(none)]> CREATE DATABASE ‘nextcloud’;
创建 nextcloud 用户,密码 password,请根据实际需要调整用户名和密码:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextcloud’@’localhost’ IDENTIFIED BY ‘password’;
为 nextcloud 用户分配 nextcloud 数据库的管理权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextcloud’@’localhost’;
刷新权限记录:
MariaDB [(none)]> FLUSH PRIVILEGES;
退出数据库命令行:
MariaDB [(none)]> EXIT;

安装 NextCloud

在浏览器中访问绑定的域名,即可看到下图所示的 NextCloud 安装向导。
按照页面的提示,填写表单。创建管理员用户名和密码比较简单,自行设置即可,重点是设置数据库信息,填写在 MariaDB 数据库配置环节创建的信息:
  • 数据库用户:nextcloud (填写实际设置的用户名)
  • 数据库密码:password (填写实际设置的密码)
  • 数据库名:nextcloud
  • localhost:数据库服务器地址,不用填。
安装完成,即可看到下图所示的用户界面。

启用 SSL 安全链接

此处我们使用 Let’s Encrypt 的免费 SSL 证书服务。

第一步 安装 certbot

添加certbotPPA 软件源:
herald@ubuntu-1g-sv:~$ sudo add-apt-repository -y ppa:certbot/certbot
刷新软件列表:
herald@ubuntu-1g-sv:~$ sudo apt update
安装适用于 apache 的 certbot:
herald@ubuntu-1g-sv:~$ sudo apt install python-certbot-apache

第二步 获取 ssl 证书

运行certbot程序:
herald@ubuntu-1g-sv:~$ sudo certbot –apache
提示输入一个 email 用作接收通知和重置密钥:
Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
询问是否接受用户协议:
——————————————————————————-
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
——————————————————————————-
(A)gree/(C)ancel: A
询问是否愿意把 email 地址共享给基金会:
——————————————————————————-
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let’s Encrypt project and the non-profit
organization that develops Certbot? We’d like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
——————————————————————————-
(Y)es/(N)o: N
询问要为哪个域名获取 SSL 证书:
Which names would you like to activate HTTPS for?
——————————————————————————-
1: nc.onit.run
——————————————————————————-
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter ‘c’ to cancel):1
询问使用模式:
  1. Easy 简易模式:http 和 https 两种协议均可访问网盘
  2.  Secure 安全模式:所有请求都会转向 https 安全链接
Please choose whether HTTPS access is required or optional.
——————————————————————————-
1: Easy – Allow both HTTP and HTTPS access to these sites
2: Secure – Make all requests redirect to secure HTTPS access
——————————————————————————-
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel): 2
刷新页面即可看到,超链接已经出现了绿色的安全标识,SSL 启用成功!

Comments are closed, but trackbacks and pingbacks are open.