Назад | Перейти на главную страницу

Как включить LDAP в PHP - Windows Server 2008

Я установил PHP на свой Win Server 2008 с помощью установщика веб-платформы. Установка прошла успешно, и я могу правильно отображать страницу phpinfo из моего виртуального каталога. Как я могу включить поддержку LDAP? c:\Program Files\PHP\Ext\ не содержит php_ldap.dll. Мне нужно сначала загрузить этот файл?

Редактировать :

а расширение LDAP все еще не работает.

Лучше всего загрузить последнюю версию PHP в формате Zip с PHP.net site, получите оттуда DLL и извлеките из нее файл DLL.

Не уверен, почему он не включен в установщик веб-платформы, кажется немного странным.

В моем случае:
* Windows Server 2008 R2
* PHP 5.3 через WebPlatformInstaller
* IIS

Строка ошибки была:

PHP Fatal error:  Call to undefined function ldap_connect() in ...Tageskonto.php on line 19

помог расширить файл
* c: \ программные файлы (x86) \ php \ v5.3 \ php.ini
чтобы загрузить dll:

[ExtensionList]
extension=php_ldap.dll

Пришлось включить модуль в IIS

запустить диспетчер iis на Windows Server 2008r2

перейдите к корневому сайту.

загрузите, установите и запустите php-менеджер (не устанавливается с WordPress через WPI).

прокрутите вниз и нажмите «Включить или отключить расширение»

прокрутите вниз до отключенного раздела, нажмите php_ldap.dll, чтобы выделить, затем в правом верхнем разделе под действиями нажмите «Включить»

exit out и ldap устанавливается для PHP 5.3.1, который был установлен с помощью «Установщика веб-платформы Microsoft» при установке «WordPress».

В Linux LDAP часто является необязательным расширение в PHP и требует отдельной установки. Это может быть и в Windows.

Если вы раскомментировали php_ldap.dll в разделе расширений PHP, я считаю, что PHP не читает должным образом php.ini.

  • IIRC Я всегда устанавливал PHP по пути без пробелов в пути (например, C:\PHP).
  • Попробуй скопировать C:\program files\php\php.ini к C:\windows\ и перезапустите Apache / IIS.

Может быть, отчасти это вам поможет.

Таким образом, вам может потребоваться проверить следующее на phpinfo ():

  1. Если вы используете IIS, убедитесь, что ваш рабочий процесс IIS имеет доступ для чтения в NTFS к вашему каталогу «C: \ Program Files \ PHP». Этот рабочий процесс может быть СЕТЕВОЙ СЕРВИС или IWAM_ <имя компьютера> или МЕСТНАЯ СИСТЕМА (Надеюсь нет).
  2. Когда вы загружаете phpinfo (); в выводе проверьте следующие строки, чтобы убедиться, что они находятся там, где вы ожидаете:
    - extension_dir
    - Загруженный файл конфигурации
    Эти элементы должны быть там, где вы ожидаете, что они будут сообщать, а не загружаться откуда-то еще.
  3. Вам также необходимо добавить файлы в системный "PATH": libeay32.dll и ssleay32.dll, и, вероятно, потребуется перезагрузка системы, чтобы начать работу; и, как документировали некоторые пользователи, размещение PATH в начале переменной PATH может устранить некоторые проблемы. Это описано здесь: http://us2.php.net/manual/en/ldap.installation.php

Я недостаточно прочитал исходный вопрос, чтобы увидеть, что он уже включил php_ldap.dll, но это была моя проблема.

При недавней установке WPI (начало 2014 г.) php_ldap.dll есть и готов к работе, просто он не настроен в php.ini.

  1. Выход phpinfo() не включает раздел ldap
  2. редактировать PHP.ini как администратор (полный путь см. в phpinfo () ... мой находится в C:\Program Files (x86)\iis express\PHP\v5.4\php.ini
  3. WPI помещает включенные модули в конец файла. Добавить extension=php_ldap.dll
  4. phpinfo() сразу показывает раздел ldap.