简介:
nextcloud也就是云盘(完全免费),可以理解为百度云盘一样的功能
不仅支持Windows,macOS,LinuxAPPimage桌面客户端,而且支持安卓,苹果移动应用
数据存储在Linux目录中,即使nextcloud网站瘫痪,也能将里面的数据拷贝出来
还有更加多的应用功能可以使用,详情请查看官网
Nextcloud由ownCloud发明人Frank Karlitschek和十几位经验丰富的开源企业家和工程师发起,使用户能够收回对数据和通信的控制权。
因为ownCloud已商业化。
国内的云盘有seafile,但是seafile的开源版(免费)的功能很少,seafile的企业版(收费)的功能很多。其中LDAP的功能存在于seafile企业版。
nextCloud资料:
官方地址:https://nextcloud.com
服务器和客户端下载地址:https://nextcloud.com/install/
管理手册:https://docs.nextcloud.com/server/13/admin_manual/installation/
搭建:
1.搭建LNMP:
使用源码进行搭建,这边使用oneinstack进行自动搭建:
oneinstack的官网:https://oneinstack.com
进入官网之后点击自动安装,然后在选择stack的时候选择LNMP即可,然后根据自己的需求,可以选择数据库为mysql的源码编译安装。
如下图所示,复制命令到centos7命令行中粘贴即可进行安装
特别说明:
此LNMP源码安装的位置都是在/usr/local/目录下
服务的开启/停止/重启/自启动:例子:systemctl start/stop/restart/enable nginx.service。其他的类似
web网站的根目录/data/wwwroot/
2.下载nextcloud放入到网站目录中
进入nextcloud官网中,下载最新的nextcloud压缩包
然后将其放入到root目录下(可以使用winscp工具)
解压nextcloud压缩包,将解压到的目录复制到网站中,将网站赋予给www用户
命令如下:
unzip nextcloud-13.0.5.zip
cp -r nextcloud /data/wwwroot/
chown -R www:www /data/wwwroot/nextcloud
创建nextcloud的储存的数据目录nextcloud_data,建议将数据存到nextcloud网站目录之外的地址,命令如下:
mkdir /data/wwwroot/nextcloud_data
chown -R www:www /data/wwwroot/nextcloud_data
3.配置Nginx指向nextcloud的网站目录,并且搭配本地SSL证书
创建虚拟主机。命令如下:
cd /usr/local/nginx/conf/
mkdir vhost
cd vhost
touch cloud.example.com.conf
到这里之后,请查看官网的Nginx配置
https://docs.nextcloud.com/server/13/admin_manual/installation/nginx.html
我们只需要Nextcloud in the webroot of nginx下的配置,将其复制粘贴到记事本中,并且根据官网的要求
a.调整server_name,root,ssl_certificate和 ssl_certificate_key以满足您的需求。
b.确保服务器可以读取您的SSL证书(此处我这边弄成本地证书)。
c.某些环境可能需要将PHP的配置文件(php.ini)配置cgi.fix_pathinfo设置为1。
此环境的站点为:/data/wwwroot/nextcloud
域名为:cloud.example.com
所以
a.将记事本中的root /var/www/nextcloud/修改为root /data/wwwroot/nextcloud即可,然后复制记事本中的所有内容,粘贴到cloud.example.com.conf文件中
b.制作本地SSL证书:
mkdir /etc/ssl/nginx
openssl req -new -x509 -days 365 -nodes -out /etc/ssl/nginx/cloud.example.com.crt -keyout /etc/ssl/nginx/cloud.example.com.key
此处命令会交互式的问答,问答的翻译如下:因为是本地的SSL所以随意填写即可。
chmod 700 /etc/ssl/nginx
chmod 600 /etc/ssl/nginx/*
c.修改PHP的配置文件(php.ini)配置cgi.fix_pathinfo设置为1。命令如下:
vi /usr/local/php/etc/php.ini
查找到cgi.fix_pathinfo,如果前面有分号,去掉,然后设置为1。也就是cgi.fix_pathinfo=1
4.创建数据库nextcloud
oneinstack搭建数据库的时候。可以自己设置密码,默认是oneinstack
然后创建数据库nextcloud,命令如下:
mysql -uroot -poneinstack
create database nextcloud;
quit;
5.以上修改完Nginx和PHP配置,需要重启服务
命令如下:
systemctl restart nginx.service
systemctl restart php-fpm.service
6.nextcloud安装向导
可以查看官网的安装向导
https://docs.nextcloud.com/server/13/admin_manual/installation/installation_wizard.html
特别说明:因为网站的域名是cloud.example.com,所以需要在本地的hosts文件(window系统的hosts文件在C:\Windows\System32\drivers\etc)中,添加ip地址对应的域名,即可访问cloud.example.com网站
至此CentOS7+LNMP+nextCloud私有云盘已经搭建完,此时的私有云盘的LDAP功能开启为灰色(不能开启)因为未安装php-ldap模块
7.LDAP整合到nextcloud
因为我们搭建的LNMP是源代码安装的,所以要安装php-ldap模块需要去官网上下载源码包进行编译安装
我安装的是PHP 7.0.31版本的,如果不知道的,可以在Linux命令行中输入命令:php -v
php官网网站源代码下载:http://www.php.net/downloads.php
根据自己的PHP版本下载相对应的源码包(php-7.0.31.tar.bz2),下载完之后,将其上传到/usr/local/src/目录下(可以使用winscp)
cd /usr/local/src/
tar -xjvf php-7.0.31.tar.bz2
cd php-7.0.31/ext/ldap/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
出错信息:configure: error: Cannot find ldap.h
解决方法:yum install -y openldap openldap-devel
./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
出错信息:configure: error: Cannot find ldap libraries in /usr/lib
解决方法:cp -frp /usr/lib64/libldap* /usr/lib/
./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
make && make install
安装完成之后,修改php配置文件(php.ini),将extension=ldap.so前的分号去掉,保存退出
vi /usr/local/php/etc/php.ini
如果有;extension=ldap.so,前面有分号的,请去掉
如果没有;extension=ldap.so,在PHP.ini文件末尾处添加extension=ldap.so
然后重启PHP服务即可
systemctl restart php-fpm.service