LDAP认证服务器

1.要准备的环境与软件(这里测试环境是Centos6.0-64位系统) alfresco-community-4.2.c-installer-linux-x64.bin (注: alfresco是一个免费开源系统,可以自己去下载) apache-tomcat-7.0.42.tar db-4.5.20.tar jdk-6u45-linux-x64.bin openldap-stable-20100219.tar phpldapadmin-1.2.3.tar mysql-5.5.13.tar.gz (totaralms要求mysql的版本5.1以上) nginx-1.1.5.tar.gz php-5.4.14.tar.gz (注意:由于totaralms要求php必须5.4以上版本才能正常安装) totaralms-2.4.1.tar.gz (注:totaralms其实就是moodle,一个教育平台,也是免费开源的,可以自己去下载)

2.这里先检测下硬盘情况 df –h

3装一些依赖包 yum -y install gcc gcc-c++ ncurses ncurses-devel libxml libxml2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel gd gd-devel pcre pcre-devel cmake gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* libmcrypt* curl* icu gettext 清除缓存文件 yum clean all 4.由于php要添加ldap模块,需要ldap先安装并且已启用,才能正常添加,这里我们先安装ldap,首先安装db数据库(注:ldap需要db数据库) tar zxvf db-4.5.20.tar.gz -C /usr/src/ cd /usr/src/db-4.5.20/build_unix/ …/dist/configure make make install 安装ldap tar zxvf openldap-stable-20100219.tgz -C /usr/src/ cd /usr/src/openldap-2.4.21/ env CPPFLAGS=“-I/usr/local/BerkeleyDB.4.5/include” LDFLAGS=“-L/usr/local/lib -L/usr/local/BerkeleyDB.4.5/lib -R/usr/local/lib” LD_LIBRARY_PATH=“/usr/local/BerkeleyDB.4.5/lib” ./configure --enable-crypt --with-pam (注意这里都是一行) make depend make (make后,这里发现一些错误)

解决方法 yum -y install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig 然后重新安装一次 env CPPFLAGS=“-I/usr/local/BerkeleyDB.4.5/include” LDFLAGS=“-L/usr/local/lib -L/usr/local/BerkeleyDB.4.5/lib -R/usr/local/lib” LD_LIBRARY_PATH=“/usr/local/BerkeleyDB.4.5/lib” ./configure --enable-crypt --with-pam make depend make make install 5.修改ldap的配置文件 vim /usr/local/etc/openldap/slapd.conf 添加三行到指定位子 include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema

修改Ldap认证登录 注意:这里先创建一个符合复杂性的密码 /usr/local/sbin/slappasswd -v -u -s 你的密码 -h {crypt} 这里可能出现报错的情况

解决方法: ln -s /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.so /usr/lib/libdb-4.5.so ldconfig 会得到下面的结果

Copy 上面密码的加密字符串

修改ldap配置文件

vim /usr/local/etc/openldap/slapd.conf

注解: Suffix 指的登录域 Rootdn 指创建一个管理域的管理员 Rootpw 指管理员的密码(这里可写明文,但很不安全所以用了加密) 6.启用ldap,看是否正常运行 /usr/local/libexec/slapd ps auxw | grep slapd

也可以检测389端口是否启用,ldap默认用的是389端口

这里我们强制关闭ldap

pkill slapd

在看看ldap情况

在启动ldap

/usr/local/libexec/slapd

这里启动正常,说明ldap是正常的 (强调:ldap千万不要关闭了,这样会影响到后面php添加ldap模块) 7.添加ldap帐号(注:ldap导入账户信息都是.ldif,后缀不要弄错了) vim /root/addou.ldif dn: dc=demo,dc=com objectclass: dcObject objectclass: organization o: school dc: demo dn: cn=root,dc=demo,dc=com objectclass: organizationalRole cn: root dn: ou=jishubu,dc=demo,dc=com objectClass: organizationalUnit ou: jishubu vim /root/user.ldif dn: uid=Sam.tao,ou=jishubu,dc=demo,dc=com uid: Sam.tao cn: Sam.tao sn: SIRNAME mail: Sam.tao@demo.com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword: 123456 loginShell: /bin/sh uidNumber: 601 gidNumber: 601 homeDirectory: /home/Sam.tao dn: uid=Roy.zhao,ou=jishubu,dc=demo,dc=com uid: Roy.zhao cn: Roy.zhao sn: SIRNAME mail: Roy.zhao@kineo.com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword: 123456 loginShell: /bin/sh uidNumber: 602 gidNumber: 601 homeDirectory: /home/Roy.zhao dn: uid=Kelvin.zhang,ou=jishubu,dc=demo,dc=com uid: Kelvin.zhang cn: Kelvin.zhang sn: SIRNAME mail: Kelvin.zhang@kineo.com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword: 123456 loginShell: /bin/sh uidNumber: 603 gidNumber: 601 homeDirectory: /home/Kelvin.zhang 注意格式,千万不要加多空格,这里的userPassword可以是加密的,加密的方式前面说了 下面我们导入帐号信息 /usr/local/bin/ldapadd -x -W -D “cn=root,dc=demo,dc=com” -f /root/addou.ldif

这里输入的密码就是前面我们创建的管理员的密码,输入密码后看到上面3行就表示导入成功了 我们在导另外一个 /usr/local/bin/ldapadd -x -W -D “cn=root,dc=demo,dc=com” -f /root/user.ldif

测试以管理者登入查询ldap的dit

/usr/local/bin/ldapsearch -h 192.168.0.103 -x -D “cn=root,dc=demo,dc=com” -w 你的密码 -b “uid=Sam.tao,ou=jishubu,dc=demo,dc=com”

接下来我们先安装mysql

先检测mysql有没有安装

rpm -q mysql

建立mysql安装目录及数据存放目录 mkdir /usr/local/mysql mkdir /data/mysql 创建用户和用户组 groupadd mysql useradd -g mysql mysql 赋予数据存放目录权限 chown mysql:mysql -R /data/mysql/ tar zxvf mysql-5.5.13.tar.gz -C /usr/src/ cd /usr/src/mysql-5.5.13/ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/usr/local/mysql/etc \ -DMYSQL_DATADIR=/data/mysql \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \ -DEXTRA_CHARSETS=all \ -DWITH_READLINE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DWITH_SSL=system make && make install 创建my.cnf配置文件 mkdir /usr/local/mysql/log mkdir /usr/local/mysql/etc cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf 初始化数据库 执行前需赋给scripts/mysql_install_db文件执行权限 chmod 755 scripts/mysql_install_db scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql 创建管理MySQL数据库的shell脚本 cp support-files/mysql.server /etc/init.d/mysqld 赋予shell脚本可执行权限: chmod +x /etc/init.d/mysqld 将mysqld添加为系统服务 chkconfig --add mysqld chkconfig mysqld on 启动MySQL service mysqld start 这里可能会报错

解决方法: vim /usr/local/mysql/etc/my.cnf 添加一行 datadir = /data/mysql

service mysqld start

cd /root/ 编辑环境变量配置文件 vi /etc/profile 在最后一行添加一下代码: PATH=$PATH:/usr/local/mysql/bin 重新加载配置文件 source /etc/profile 为root帐户设置初始密码为root mysqladmin -u root password root 删除本机匿名连接的空密码帐号 mysql -u root -proot mysql>use mysql; //选择系统数据库mysql mysql>select Host,User,Password from user; //查看所有用户 mysql>delete from user where password=“”; mysql>flush privileges; mysql>select Host,User,Password from user; //确认密码为空的用户是否已全部删除 mysql>exit; 安装php (注意:在php的参数里面第一要添加–with-ldap --with-ldap-sasl ,不然ldap模块加载不了) tar zxvf php-5.4.14.tar.gz -C /usr/src/ cd /usr/src/php-5.4.14/ ./configure --prefix=/usr/local/php --with-gettext --with-config-file-path=/usr/local/php/etc --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-pdo_mysql --with-mysql=/usr/local/mysql/ --with-mysqli --enable-intl --with-icu-dir=/usr make make ZEND_EXTRA_LIBS=‘-liconv’ make install cp /usr/src/php-5.4.14/php.ini-production /usr/local/php/etc/php.ini 拷贝模板文件为php-fpm配置文件 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 编辑配置文件 vi /usr/local/php/etc/php-fpm.conf user = www #设置php-fpm运行账号为www group = www #设置php-fpm运行组为www pid = run/php-fpm.pid #取消前面的分号 设置 php-fpm开机启动 #拷贝php-fpm到启动目录 cp /usr/src/php-5.4.14/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限 chkconfig php-fpm on #设置开机启动 让root有权限执行 chmod 755 /etc/init.d/php-fpm 启动php /etc/init.d/php-fpm start 这里报错

添加新用户和用户组www groupadd www useradd -g www www /etc/init.d/php-fpm start

添加开机启动 echo “/etc/init.d/php-fpm start” >> /etc/rc.local 安装nginx 查看是否安装openssl和pcre 没有安装的话,使用yum安装就可以了 [root@ns1 ~]# rpm -q openssl openssl-0.9.8e-12.el5_5.7 [root@ns1 ~]# rpm -q pcre pcre-6.6-6.el5 安装nginx tar zxvf nginx-1.1.5.tar.gz -C /usr/src/ cd /usr/src/nginx-1.1.5/ ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre make && make install 启动服务nginx服务 /usr/local/nginx/sbin/nginx echo “/usr/local/nginx/sbin/nginx” >> /etc/rc.local 查看80端口是否开启 netstat -anpt | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14640/nginx 整合Nginx与PHP 上面已经讲过,Nginx自己并不处理动态网页的请求,而且Nginx将得到的动态请求转交给PHP,下面我们打开Nginx的配置文件看一下 cd /usr/local/nginx/conf/ cp nginx.conf nginx.conf.bak vi nginx.conf 参照截图里面的改法

这里改完先不重启nginx和php Totaralms的发布安装 tar zxvf totaralms-2.4.1.tar.gz -C /usr/src/ cd /usr/src/ mv totaralms-2.4.1/ totaralms mkdir /data/wwwroot mv totaralms/ /data/wwwroot/ 重启nginx ,php /usr/local/nginx/sbin/nginx -s reload /etc/init.d/php-fpm restart

访问http://192.168.0.103/

发现访问不了,找下原因

vim /usr/local/nginx/conf/nginx.conf

说明php没有启用php-cgi模式 vim /usr/local/php/etc/php-fpm.conf 找到151行,启用php-cgi进程

这里还要改一下php.ini里面的参数

vim /usr/local/php/etc/php.ini

改完这些我们在重启php和nginx

/etc/init.d/php-fpm restart

/usr/local/nginx/sbin/nginx -s reload

再次访问http://192.168.0.103/,居然还是不行,防火墙没有允许

我们先把iptables停掉

再次访问http://192.168.0.103/

然后按照提示一步步安装

给一下权限

chmod 777 -R /data/

继续向后

这里又报错了

php没有和mysql连上

解决方法

vim /usr/local/php/etc/php.ini

找到1194行 mysqli.default_socket = /tmp/mysqld.sock

这里指一下mysqld.sock文件位子

重启php 继续向后

/etc/init.d/php-fpm restart

里面是一些配置要求

没有问题,继续下一步,这里的*号里面的一定要填

安装完了这里我们在totaralms里面启用Ldap认证

改完这些点下面的保存更改就好了

然后测试之前我们创建的ldap帐号是否能登录

这里之前我们创建了3个帐号,一个个试试

这里很明显已经登录进来了 Ldap的帐号创建如果都用命令导,这样很复杂,这里我们装个管理工具phpldapadmin tar zxvf phpldapadmin-1.2.3.tar.gz mv phpldapadmin-1.2.3 /data/wwwroot/ cd /data/wwwroot/ mv phpldapadmin-1.2.3/ phpldapadmin 配置phpldapadmin cd /data/wwwroot/phpldapadmin/config/ cp config.php.example config.php vim config.php 如图改

保存配置 cd /data/wwwroot/ mv phpldapadmin/ /data/wwwroot/totaralms/ 修改nginx配置文件 vim /usr/local/nginx/conf/nginx.conf 添加两行rewrite

重启nginx

/usr/local/nginx/sbin/nginx -s reload

然后访问http://192.168.0.103/phpldapadmin

这个界面更方便管理帐号信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值