📜  laradock ext-ldap - PHP (1)

📅  最后修改于: 2023-12-03 15:17:11.640000             🧑  作者: Mango

使用 Laradock 扩展 LDAP 的 PHP 程序员介绍

Laradock 是一个基于 Docker 的 PHP 开发环境,可以方便快捷地搭建 PHP 开发环境。其中,包含了众多扩展和工具,以方便我们使用。

本次介绍的是 Laradock 中的 ext-ldap 扩展,主要提供了 LDAP (轻量目录访问协议) 的支持。

安装

首先需要保证安装了 Docker 和 Docker Compose 工具,如果尚未安装,可以参考官方文档进行安装。

接着,我们需要执行以下命令:

# 进入 Laradock 目录
cd path/to/laradock

# 修改 .env 文件,开启 ext-ldap 扩展,取消注释 `PHP_INSTALL_LDAP=true`
nano .env

# 构建并启动容器
docker-compose up -d nginx php-fpm

这时,我们就可以在 PHP 代码中使用 LDAP 扩展了。

使用

LDAP 扩展提供了众多函数,可以查询、修改、删除 LDAP 目录中的数据。这里简单介绍几个常用的函数。

ldap_connect

该函数用于连接 LDAP 服务器,其定义如下:

function ldap_connect ($uri = "ldap://localhost", $port = 389)

其中,$uri 为 LDAP 服务器的地址或者主机名,$port 为端口号,默认为 389。

ldap_bind

该函数用于绑定到 LDAP 服务器,其定义如下:

function ldap_bind ($link_identifier, $bind_rdn = null, $bind_password = null)

其中,$link_identifier 为连接到 LDAP 服务器的标识符,$bind_rdn 为绑定时使用的 DN (区别名),$bind_password 为该 DN 的密码。

ldap_search

该函数用于搜索 LDAP 目录中的数据,其定义如下:

function ldap_search ($link_identifier, $base_dn, $filter, $attributes = array(), $attrsonly = 0, $sizelimit = 0, $timelimit = 0, $deref = LDAP_DEREF_NEVER)

其中,$link_identifier 为连接到 LDAP 服务器的标识符,$base_dn 为搜索的起始 DN,$filter 为搜索的过滤条件,$attributes 为要返回的属性列表,$attrsonly 为是否只返回属性名,$sizelimit 为返回条目的最大数量,$timelimit 为搜索的最大时间限制,$deref 为解析别名时的选项。

ldap_get_entries

该函数用于获取搜索结果,其定义如下:

function ldap_get_entries ($link_identifier, $result_identifier)

其中,$link_identifier 为连接到 LDAP 服务器的标识符,$result_identifier 为搜索结果的标识符,可以由 ldap_search 函数获得。

示例代码

以下是一个简单的示例,演示了如何连接到 LDAP 服务器并查询数据:

<?php
// 连接到 LDAP 服务器
$ldapconn = ldap_connect("ldap://localhost", 389);

// 绑定到 LDAP 服务器
$ldapbind = ldap_bind($ldapconn, "cn=admin,dc=example,dc=com", "password");

// 搜索 LDAP 目录
$ldapsearch = ldap_search($ldapconn, "dc=example,dc=com", "(objectclass=*)");

// 获取搜索结果
$ldapresults = ldap_get_entries($ldapconn, $ldapsearch);

// 输出搜索结果
print_r($ldapresults);

// 断开 LDAP 连接
ldap_close($ldapconn);
参考链接