这个教训告诉我们,不要随便相信别人博客里的东西,文档还是官方的靠谱 ___
NextCloud 是 OwnCloud 的开源分支,使用 PHP 语言开发,类似程序通常采用 LAMP 或 LNMP 运行环境。本文介绍在 Ubuntu 16.04 LTS 系统上安装 NextCloud 13 最新版的标准方法。
运行环境
- WEB 服务器:Apache 2.x
- 数据库:MariaDB
- PHP:php 7.0
- docker: ubuntu 16.04
配置 LAMP 环境
运行docker
docker run -i -t -v ~/nextcloud:/home -p 9001:22 -p 9002:8000 -p 9003:80 --name nextcloud ubuntu:16.04 /bin/sh
1.更新系统
root@Ubuntu:~$ apt-get update
root@Ubuntu:~$ apt-get upgrade
2.安装 Apache
root@Ubuntu:~$ apt-get install apache2
3.安装 MariaDB
root@Ubuntu:~$ apt-get install mariadb-server python-pymysql
4.安装 PHP 7.0
root@Ubuntu:~$ apt-get install libapache2-mod-php7.0
5.安装 PHP 扩展
root@Ubuntu:~$ apt-get 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 官方网站 https://nextcloud.com/changelog/ ;使用 wget 命令下载 .tar.bz2 格式的源码压缩包:
root@Ubuntu:~$ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.0.tar.bz2
解压源码包
使用mac解压 也可以用 ubuntu tar解压
复制源代码到web服务器目录
root@Ubuntu:~$ cp -r nextcloud /var/www/
设置 nextcloud 的目录权限
root@Ubuntu:~$ chown -R www-data:www-data /var/www/nextcloud/
配置 apache 虚拟主机
绑定域名
暂时没有处理/本地服务器
创建 nextcloud.conf 虚拟主机配置文件
root@Ubuntu:~$ vim /etc/apache2/sites-available/nextcloud.conf
将以下配置信息粘贴到配置文件中,注意,请将配置文件中的 域名 替换成你自己的域名:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Alias /nextcloud "/var/www/nextcloud/"
<VirtualHost *:80>
ServerName 127.0.0.1
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>
让虚拟主机生效、启用必须的 apache 模块、重启 apache 服务器
root@Ubuntu:~$ a2ensite nextcloud.conf
root@Ubuntu:~$ a2enmod rewrite headers env dir mime ssl
root@Ubuntu:~$ service apache2 restart
MariaDB 数据库设置
通过交互式的命令,提示对数据库做安全初始化设置
修改权限、数据库安全初始化
root@Ubuntu:~$ chown -R mysql:mysql /var/lib/mysql
root@Ubuntu:~$ service mysql restart
root@Ubuntu:~$ mysql_secure_installation
创建 nextcloud 所需的数据库和账户
root@Ubuntu:~$ mysql -u root
MariaDB [(none)]> CREATE DATABASE nextcloud;
MariaDB [(none)]> CREATE USER nextcloud@localhost IDENTIFIED BY ‘password’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
配置 NextCloud
- 数据库用户:nextcloud (填写实际设置的用户名)
- 数据库密码:password (填写实际设置的密码)
- 数据库名:nextcloud
- localhost:数据库服务器地址,不用填。
启用 SSL 安全链接
此处我们使用 Let’s Encrypt 的免费 SSL 证书服务。
安装 certbot
添加 certbot PPA 软件源:
root@Ubuntu:~$ add-apt-repository -y ppa:certbot/certbot
刷新软件列表:
root@Ubuntu:~$ apt update
安装适用于 apache 的 certbot:
root@Ubuntu:~$ apt install python-certbot-apache
获取 ssl 证书
运行 certbot 程序:
root@Ubuntu:~$ certbot --apache
提示输入一个 email 用作接收通知和重置密钥:
Enter email address (used for urgent renewal and security notices)
(Enter 'c' tocancel):test@torchtree.com
询问是否接受用户协议:
-------------------------------------------------------------------------------
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
询问使用模式:
- Easy 简易模式:http 和 https 两种协议均可访问网盘
- 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 启用成功!