一、NextCloud概述
云盘这个词无论是做技术出身的朋友还是普通的网民,想必已经听的非常多了,在日常生活当中我们用的最多的云盘莫过于百度网盘了
在前几年百花齐放的网盘市场,到现如今只剩下了百度网盘,说起百度网盘大家并不陌生,特别是它限速的特征,让广大朋友久久不能忘怀啊
不过也没办法,任何企业都是以盈利为目的,你既然享受了线上存储给你带来的便利,那你就得交钱,不交钱就给你限速,限到你哭晕在厕所
另一方面我们需要知道,做存储也是非常烧钱的,譬如给用户提供数据存储的磁盘开销,以及给用户提供数据上传与下载的带宽开销,所以大家也得谅解
有限速?不安全?要会员? 基于这几点大家可能会想到部署个人存储,部署个人存储的程序大家可能又会想到 Seafile、dropbox、OwnCloud、Syncbox,这其中有些是开源的,有些是收费的
今天写的这篇文章是基于 NextCloud 这个开源程序的,那NextCloud又是啥呢?NextCloud 由原 OwnCloud 团队所打造,号称是下一代存储,用过之后也算是实至名归
如果要部署个人云存储,那么使用 NextCloud 绝对是一个非常好的选择,开源这个特点咱们就抛开不说了,NextCloud 使用PHP与JavaScript 所编写
支持多种数据库类型,包括:MySQL、Oracle、Mariadb、SQLite、PostgreSQL 等主流的数据库
与此同时 NextCloud 也为 Linux、Windows、Android、ios、Mac 等各种主流平台提供了相应的客户端
从而实现了跨平台的设备数据共享与同步,不仅如此 NextCloud 还提供了许多应用软件与插件的安装,包括 office文档、日历、邮件、思维导图、在线编辑、文件管理、等丰富的附加功能
所以要是自己部署私有云存储,或者团队需要进行数据共享,那么 NextCloud 可以称得上是首选
说了那么多,下面进入正题,本文基于(CentOS7+Nginx-1.16.1+MySQL-5.6.45+PHP-7.3.13+Redis-3.2.13)来部署NextCloud
所采用的部署方式均为源码(.tar.gz),因为使用源码部署,在后面需要安装某些软件的扩展时非常方便、需要注意:这里的PHP版本需要5.X以上的,否则部署完成以后,在浏览访问会提示版本过低
nextcloud19的系统需求:
二、NextCloud部署
1)准备工作
1、关闭相应的安全软件、否则放行相应的流量
[root@nextcloud ~]# setenforce 0
[root@nextcloud ~]# systemctl stop firewalld
2、提前安装所有的依赖包
[root@nextcloud ~]# yum clean all && yum makecache
[root@nextcloud ~]# yum -y install libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel gmp-devel libxslt-devel libicu-devel
[root@nextcloud ~]# yum -y install libss-devel libstdc++-devel dbus-devel libaio-devel bison-devel libverto-devel curl curl-devel openssl openssl-devel bzip2 bzip2-devel icu libicu-devel gmp gmp-devel readline readline-devel pcre pcre-devel zlib zlib-devel gcc gcc-c++ ncurses-devel libaio-devel freetype freetype-devel ImageMagick ImageMagick-devel autoconf m4 libgcc e2fsprogs perl-Data-Dumper libcurl libcurl-devel libxml2 libxml2-devel gd gd-devel libjpeg libjpeg-devel libpng libpng-devel libxslt libxslt-devel
3、为MySQL与Nginx创建专门的运行用户
[root@nextcloud ~]# groupadd mysql
[root@nextcloud ~]# useradd -M -s /sbin/nologin nginx
[root@nextcloud ~]# useradd -M -s /sbin/nologin mysql -g mysql
2)部署Nginx
1、下载并安装Nginx
[root@nextcloud ~]# wget -c http://www.nginx.org/download/nginx-1.16.1.tar.gz
[root@nextcloud ~]# tar xf nginx-1.16.1.tar.gz -C /usr/src/
[root@nextcloud ~]# cd /usr/src/nginx-1.16.1/
[root@nextcloud nginx-1.16.1]# ./configure --prefix=/etc/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module && make -j 8 && make install -j 8 && cd ~
2、添加Nginx至环境变量、并将其添加为系统服务
[root@nextcloud ~]# echo 'export PATH=/etc/nginx/sbin:$PATH' >> /etc/profile
[root@nextcloud ~]# source /etc/profile && nginx
[root@nextcloud ~]# cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/etc/nginx/logs/nginx.pid
ExecStart=/etc/nginx/sbin/nginx
ExecReload=killall -s HUP $(cat /etc/nginx/logs/nginx.pid)
ExecStop=killall -s QUIT $(cat /etc/nginx/logs/nginx.pid)
PrivateTmp=Flase
[Install]
WantedBy=multi-user.target
EOF
[root@nextcloud ~]# systemctl daemon-reload && pkill -9 nginx
[root@nextcloud ~]# systemctl restart nginx && systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
3)部署MySQL
1、安装MySQL之前、我们先安装cmake工具
[root@nextcloud ~]# wget -c https://cmake.org/files/v2.8/cmake-2.8.12.tar.gz
[root@nextcloud ~]# tar xf cmake-2.8.12.tar.gz -C /usr/src/
[root@nextcloud ~]# cd /usr/src/cmake-2.8.12/
[root@nextcloud cmake-2.8.12]# ./configure && gmake -j 8 && gmake install && cd
2、下载并安装MySQL
[root@nextcloud ~]# wget -c https://downloads.mysql.com/archives/get/file/mysql-5.6.45.tar.gz
[root@nextcloud ~]# tar xf mysql-5.6.45.tar.gz -C /usr/src/
[root@nextcloud ~]# cd /usr/src/mysql-5.6.45/
[root@nextcloud mysql-5.6.45]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DENABLED_LOCAL_INFILE=ON \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_DEBUG=0 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock
make -j 8 && make install -j 8 && cd ~
可能报错:
— Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:126 (FIND_CURSES)
cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:250 (MYSQL_CHECK_READLINE)
— Configuring incomplete, errors occurred!
解决方法:
[root@localhost mysql-5.5.11]# rm CMakeCache.txt
[root@localhost mysql-5.5.11]# yum install ncurses-devel
Warning: Bison executable not found in PATH
— Configuring done
— Generating done
— Build fil