CentOS7+LNMP+nextCloud私有云盘+LDAP整合

简介:

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/

CentOS7+LNMP+nextCloud私有云盘+LDAP整合_第1张图片

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_namerootssl_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所以随意填写即可。

CentOS7+LNMP+nextCloud私有云盘+LDAP整合_第2张图片

            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

至此LDAP整合到nextcloud完成,可以在nextcloud页面上开启LDAP user and group backend应用

你可能感兴趣的:(CentOS7+LNMP+nextCloud私有云盘+LDAP整合)