如何在Nginx服务器上使用phpLDAPadmin安装OpenLDAP

时间:2020-03-05 15:28:05  来源:igfitidea点击:

轻型目录访问协议,俗称LDAP。
它用于管理和访问集中式,分层文件和目录结构中的相关信息。
LDAP信息目录是一种数据库,但不是关系数据库。
与设计用于每分钟处理数百或者数千个更改的数据库不同的是,例如电子商务LDAP目录中经常使用的联机事务处理(OLTP)系统已针对读取性能进行了优化。

大多数LDAP服务器易于安装,易于维护且易于优化。
在本教程中,我将为我们提供有关如何在Ubuntu 16.04服务器上安装OpenLDAP以及如何使用PHPldapadmin轻松管理OpenLDAP的说明。

安装OpenLDAP

首先,我们需要安装OpenLDAP服务器守护程序和传统的LDAP管理实用程序。
这些分别在软件包slapd和ldap-utils中找到。

$apt install slapd ldap-utils

slapd的安装将创建一个有效的配置。
特别是,它将创建一个数据库实例,可用于存储数据。
但是,此实例的基本DN将根据本地主机的域名确定。
它将与/etc/hosts文件中的一样。
因此,建议使用FQDN修改主机名,并在hosts文件中设置适当的条目。
就我而言,我将主机名设置为“ ldap01.theitroad.com”。

在安装过程中,将要求我们选择并确认LDAP的管理员密码。
如果需要,我们实际上可以在将来重置它。

如何重新配置Slapd设置

在初始安装过程中,仅使用默认设置安装了该软件包。
现在,我们将使用所需的设置对其进行重新配置。
在此阶段,它将提出很多问题。

$dpkg-reconfigure slapd

这些是重新配置阶段中的几个阶段。

  • 省略OpenLDAP配置是/否:否
  • DNS域名:ldap01.theitroad.com
  • 机构名称:我们可以提供首选名称。
  • 管理员密码
  • 确认管理员密码
  • 要使用的数据库后端:HDB

我们可以参考/usr/share/doc/slapd/README.Debian.gz了解更多详细信息。

7. Do you want to remove the database when slapd is purged? Yes/No : Yes
8. Move old database? Yes/No : Yes
9. Allow LDAPv2 Protocol? Yes/No : No

安装后,我们可以通过运行命令“ slapcat”来确认拍子设置。

root@ldap01:~# slapcat
dn: dc=ldap01,dc=theitroad,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: VIP
dc: ldap01
structuralObjectClass: organization
entryUUID: 5aa381ee-6023-1036-9173-3d709bfb7bb0
creatorsName: cn=admin,dc=ldap01,dc=theitroad,dc=com
createTimestamp: 20151227015557Z
entryCSN: 20151227015557.816230Z#000000#000#000000
modifiersName: cn=admin,dc=ldap01,dc=theitroad,dc=com
modifyTimestamp: 20151227015557Z
dn: cn=admin,dc=ldap01,dc=theitroad,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9TXBudUpGK3JhWVd1WXBIMFJHZ2ZkTGpGQ2oxem5xQ2o=
structuralObjectClass: organizationalRole
entryUUID: 5aa41e24-6023-1036-9174-3d709bfb7bb0
creatorsName: cn=admin,dc=ldap01,dc=theitroad,dc=com
createTimestamp: 20151227015557Z
entryCSN: 20151227015557.820223Z#000000#000#000000
modifiersName: cn=admin,dc=ldap01,dc=theitroad,dc=com
modifyTimestamp: 20151227015557Z

如何安装Nginx和PHP

下一步是安装Nginx和PHP。
与Apache不同,Nginx不提供mod_php。
我们也不能在CGI中使用PHP!必须使用FastCGI并对其进行配置,以便它启动进程PHP。

$apt-get install ngnix
$apt-get install php7.0-fpm

现在我们可以通过在/usr/nginx/html/www下放置一个包含内容(<?
php phpinfo();?

)的PHP信息页面(即info.php)来检查PHP是否正常工作,并修改默认的虚拟主机(/etc/nginx/sites-available/default)与我们的主机名。

server {
listen 80;
server_name ldap01.theitroad.com;
root /usr/share/nginx/www;
index index.php index.html;
access_log /var/log/nginx/localhost.access.log;
location ~ \.php${
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}

我们可以访问URL >> ldap01.theitroad.com/info.php以确认其正常工作。

如何安装phpLDAPadmin

尽管可以通过命令行管理LDAP,但是大多数用户将更喜欢使用Web界面管理LDAP的更简单方法。
让我们安装提供此功能的phpLDAPadmin,以帮助消除学习LDAP工具的一些麻烦。
可以使用以下单个命令安装它:

$apt-get install phpldapadmin

我们的Web服务器已配置为服务于该应用程序。
但是我们需要在Nginx虚拟主机中进行必要的更改,以使其按要求工作。
我已经修改了默认的虚拟主机文件,以根据需要加载该应用程序。

配置phpLDAPadmin

该软件包已安装,现在我们需要配置一些东西,以便它可以连接到我们在OpenLDAP配置阶段创建的LDAP目录结构。

首先,在文本编辑器中使用root特权打开主配置文件(/etc/phpldapadmin/config.php),并使用服务器IP和LDAP服务器基本DNS名称进行以下更改。

最后,我们需要调整设置以控制警告消息的可见性。
默认情况下,phpLDAPadmin将在其Web界面中引发有关模板文件的许多烦人的警告消息,这些消息对功能没有影响。

我们可以通过搜索hide_template_warning参数,取消注释包含它的行并将其设置为“ true”来隐藏它们:

$config->custom->appearance['hide_template_warning'] = true;

将所有这些更改保存在配置文件中。

为phpLDAPadmin创建虚拟主机

由于没有任何特定配置,因此我修改了默认虚拟主机以允许该应用程序。
我们可以使用首选主机名进行修改。

$cat /etc/nginx/sites-available/default
server {
server_name ldap01.theitroad.com;
listen 80;
# document root
root /usr/share/nginx/www;
index index.php index.html index.htm;
# application: phpldapadmin
location /phpldapadmin {
alias /usr/share/phpldapadmin/htdocs;
index index.php index.html index.htm;
}
location ~ ^/phpldapadmin/.*\.php${
root /usr/share;
if ($request_filename !~* htdocs) {
rewrite ^/phpldapadmin(/.*)?$/phpldapadmin/htdocs;
}
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
# logging
error_log /var/log/nginx/phpldapadmin.error.log;
access_log /var/log/nginx/phpldapadmin.access.log;
}

进行此更改后,请重新启动Nginx和php-fpm以更新这些更改。
现在,只需在浏览器>> http://ldap01.theitroad.com/phpldapadmin/中调用此URL,就可以访问phpLDAPadmin Web界面。

我们可以使用在安装阶段创建的LDAP管理员凭据登录。

我们已经完成了phpLDAPadmin。
我相信我们可以轻松管理LDAP服务器。
我们可以从phpLDAPadmin界面添加用户,组织单位,组和关系。
LDAP在我们希望如何构造数据和目录层次结构方面非常灵活。