CentOS 7 OpenLDAP+MySQL+PHPLDAPadminをインストールする(本人試験合格)


転載先:http://www.cnblogs.com/bigbrotherer/p/7251372.html
インストール環境:CentOS 7
1.データベースのインストールと設定
CentOS 7では、デフォルトでインストールされているデータベースはMariaDBであり、MySQLデータベースのブランチであるため、MariaDBを使用しています.インストールコマンドは次のとおりです.
[root@localhost ~]# yum install mariadb-server -y

インストール時間は長くありません.インストールが完了した後の様子は以下の通りです.

次に、データベース・サービスを開始します.
[root@localhost ~]# systemctl start mariadb

[root@localhost ~]# systemctl enable mariadb //      

データベースの基本設定:
[root@localhost ~]# mysql_secure_installation

CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第1张图片最初はパスワードがなく、直接車に戻ると、パスワードの再設定を自動的に要求され、自分のデータベースのパスワードを設定することができます.パスワードを設定した後は他の基本的な設定で、直接'y'または'n'で解決でき、そのヒントに照らして設定を完了することができます.次に、文字セットを設定します.文字セットの設定は/etcの下にあります.
[root@localhost ~]# vim /etc/my.cnf

# [mysqld]         :
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

[root@localhost ~]# vim /etc/my.cnf.d/client.cnf

# [client]         :
default-character-set=utf8

[root@localhost ~]# vim /etc/my.cnf.d/mysql-clients.cnf

# [mysql]         :
default-character-set=utf8


次に、サービスを再起動します.
[root@localhost ~]# systemctl restart mariadb

これでデータベースのインストールと設定がほぼ完了します.このデータベースをLDAPのバックエンド・データベースとして終了するため、LDAPに接続するデータベースとしてユーザーldapとデータベースldapを新規作成します.
[root@localhost ~]# mysql -uroot -p

CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第2张图片 ldapユーザーを追加し、パスワードをldapに設定し、ldapユーザーに権限を追加し、データベースldapを新規作成します.
MariaDB [(none)]> CREATE USER 'ldap'@'%' IDENTIFIED BY 'ldap';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'%';
MariaDB [(none)]> CREATE USER 'ldap'@'localhost' IDENTIFIED BY 'ldap';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'localhost';
MariaDB [(none)]> show databases;

次にデータベースを終了し、2番目のステップに進みます.
2.ODBCのインストールとldapデータベースの構成
直接yumインストール:
[root@localhost ~]# yum install unixODBC mysql-connector-odbc

接続プロファイルodbcを作成する.ini:
[root@localhost ~]# vim /etc/odbc.ini

#      
[ldap]
Description = LdapToMysql
Driver = MySQL
Database = ldap
Server = 127.0.0.1
User = ldap
Password = ldap
Port = 3306


接続が成功したかどうかを確認します.
[root@localhost ~]# isql -v ldap

CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第3张图片データベースを表示するコマンドを入力します.
SQL> show databases;

CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第4张图片接続成功!
3.インストールのダウンロードとOpenLDAPの構成
LDAPを/optディレクトリにインストールします.
[root@localhost ~]# yum install wget make gcc mysql-devel unixODBC-devel groff -y
[root@localhost ~]# cd /opt
[root@localhost opt]# wget ftp://mirror.switch.ch/mirror/OpenLDAP/openldap-release/openldap-2.4.43.tgz
[root@localhost opt]# tar zxvf openldap-*.tgz
[root@localhost opt]# rm -rf openldap-*.tgz
[root@localhost opt]# mv openldap-* openldap
[root@localhost opt]# cd /opt/openldap
[root@localhost openldap]# ./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info --enable-sql --disable-bdb --disable-ndb --disable-hdb
[root@localhost openldap]# make depend
[root@localhost openldap]# make
[root@localhost openldap]# make install


インストールが完了したら、LDAPを構成し、まず自分のLDAPパスワードを生成します.
[root@localhost openldap]# slappasswd

パスワードを入力すると、「{SSHA}XDEtT 6 s 3 MTzrSbHeJl 7 OlRoqk 0 w 1 by 1 X」のような暗号化されたパスワードが返されます.次に、/etc/openldapディレクトリの下にあるLDAPプロファイルを開きます.
[root@localhost openldap]# vim /etc/openldap/slapd.conf

#  5         
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema

#   55   
database sql
#   56、57  dc (       example,      ldap      ,         ,              dn   )
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
#   61 rootpw  ,            
rootpw {SSHA}XDEtT6s3MTzrSbHeJl7OlRoqk0w1By1X
#    65、67    
#directory /var/openldap-data
#index objectClass eq
#  61 rootpw        
rootpw {SSHA}XDEtT6s3MTzrSbHeJl7OlRoqk0w1By1X
dbname ldap
dbuser ldap
dbpasswd ldap
has_ldapinfo_dn_ru no
subtree_cond "ldap_entries.dn LIKE CONCAT('%',?)"


dc(domainComponent)についての質問は、https://www.bbsmax.com/A/WpdKKPaodV/この文章の中で説明したのはとても良くて、私のインストールの配置もここから学んだのです.
これでOpenLDAPのインストールと構成は完了したが、データベースに対応するテーブル構造がないため、LDAPを実行することはできない.LDAPはBD以外のデータベースを使用することができるが、定義したテーブル構造を使用する必要がある.対応するテーブル構造は/opt/openldap/servers/slapd/back-sql/rdbms_depend/ディレクトリの下には、MySQL、Oracle、PGSQLなど、さまざまなデータベースのテーブル構造があります.mysqlディレクトリの下には、次のようなsqlファイルがあります.
     CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第5张图片 backsql_create.sqlは基礎的なテーブル構造であり、他のテーブルがあるかどうかにかかわらず、これらのテーブルは必要である.testdb_create.sqlはテストされたテーブル構造であり、personテーブルのようないくつかのテーブル構造を含む.testdb_data.sqlはテストテーブルのデータです.testdb_metadata.sqlはベーステーブルのデータです.データベースにアクセスして、これらのsqlファイルを実行します.
[root@localhost ~]# mysql -uldap -p
Enter password: 
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use ldap

MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/backsql_create.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_create.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_data.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_metadata.sql


LDAPが実行されます.
[root@localhost ~]# /opt/openldap/servers/slapd/slapd -d 5 -h 'ldap:/// ldapi:///' -f /etc/openldap/slapd.conf &

4.LDAP管理ツールPHPldapadminのインストールと構成
まず、ApacheとPHPをインストールします.
[root@localhost ~]# yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml

次にphpldapadminをインストールします.
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum --enablerepo=epel -y install phpldapadmin

次に、プロファイルを変更します.
[root@localhost ~]# vim /etc/phpldapadmin/config.php

#397     ,398     
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');

[root@localhost ~]# vim /etc/httpd/conf.d/phpldapadmin.conf

//     

# Apache 2.4
Require local
#      ,      ip (          ,             ,        ip)
Require ip 192.168.85.132


起動してからApacheを起動するように設定します.
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd
  phpldapadmin           ,     SELinux  ,  SELinux              :
error Unable to connect to LDAP server Cloud-Lab.Com
error: Can't contact LDAP server (-1) for user
error Failed to Authenticate to server

Invalid Username or Password.

この構成を開きます.
[root@localhost ~]# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> off
[root@localhost ~]# setsebool -P httpd_can_connect_ldap on
[root@localhost ~]# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> on

ブラウザアクセスphpldapadmin:
http://(localhost      )/phpldapadmin/

phpldapdminにログインし、ユーザー名パスワードはデータベースldapのテーブルpersonsで検索できます.CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第6张图片ログイン成功インタフェース:CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第7张图片
注意事項:
(1)phpldapadminページにログインしたユーザー名記入フォーマット(テスト済み)
CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin(本人测试通过)_第8张图片