• PHP 7.0 5.6 下安裝 phpLDAPadmin 发生错误的修正方法


    在稍具規模的網路環境中, 網管時常選用 LDAP 來進行帳號的統整管理, 一方面提供管理便利度, 另一方面使用者也不必因為不同系統而記憶不同帳號, phpLDAPadmin 是一套常見的 LDAP 管理介面, 但 phpLDAPadmin 已經很久沒有更新了, 若想要安裝在 PHP 5.6 以上, 甚至是最新版的 PHP 7 的環境中, 是無法順利安裝的, 因此我們需要做些修正.

    Session 相關錯誤

    打開 index.php 時出現下列錯誤:

    • Undefined variable: _SESSION in …. on line 379
    • Fatal error: Uncaught Error: Call to a member function getValue() on null in … on line 379

    導致這個錯誤的主要原因是因為 phpLDAPadmin 需要使用 session, 在 PHP 中若要使用 session, 需要先執行 session_start() 這個函數, 但不知道為什麼 phpLDAPadmin 並沒有這麼做, 因此要解決這個問題, 一種方法是自己找正確的地方加上 session_start(), 另一種方法則是啟動 auto_start 這個特性, 這邊介紹如何啟動 auto_start 這個特性

    編輯 php.ini 中的 session.auto_start

    修改為

    password_hash 相關錯誤

    修正完 session 的問題後, 畫面上還有一個關於 password_hash 的錯誤

    • Fatal error: Cannot redeclare password_hash() in … on line 2236

    造成這個錯誤的原因在於 php 5.5 以後內建了 password_hash 這個函數, 導致內建的 password_hash 與 phpLDAPadmin 自己的 password_hash 發生衝突, 因此只要將 phpLDAPadmin 的 password_hash 名稱替換成別的名稱就可以避開這個問題了

    具體的解決辦法如下

    對檔案打 patch

    修改 TemplateRender.php

    Mac 的使用者會遇到 invalid command code W 這個錯誤, 具體原因與解決辦法請參考 MAC 下執行 sed 指令出現錯誤: invalid command code W

    記得把指令中的 ./phpldapadmin 替換成 phpldapadmin 的實際位置

    出现invalid command code f 没有影响

  • 相关阅读:
    Django Rest Swagger生成api文档
    django 完整日志配置
    django解决跨域请求的问题
    Django REST framework 自定义字段
    Django model 定义属性
    mysql server has gone away的原因
    也谈时间管理和GTD
    MySQL之thread cache
    MySQL之aborted connections和aborted clients
    TokuDB的特点验证
  • 原文地址:https://www.cnblogs.com/mafeng/p/10101046.html
Copyright © 2020-2023  润新知