各位版上大大 好,
小弟我使用Docker的PHP與LDAP進行連線,
查找了一番網上資源並且沿用建立Dockerfile
# Dockerfile code
FROM php:7.4-fpm
COPY ./htdocs /usr/src/myapp
WORKDIR /usr/src/myapp
RUN apt-get update
RUN apt-get install -y libldap2-dev
RUN apt-get install -y libmemcached-dev zlib1g-dev
RUN pecl install https://pecl.php.net/get/uploadprogress-2.0.2.tgz
RUN rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/
RUN docker-php-ext-enable uploadprogress
RUN docker-php-ext-install mysqli ldap
RUN docker-php-ext-enable mysqli ldap
RUN apt-get purge -y --auto-remove libldap2-dev
以此image去建立Container以後,在頁面呈現上仍然無法套用Ldap的套件,
想詢問版上大神們小弟是否有哪裡有撰寫錯誤,或者有其他建議呢?
# Error msg.
Fatal error: Uncaught Error: Call to undefined function ldap_connect() in /www/index.php:15 Stack trace: #0 {main} thrown in /www/index.php on line 15
p.s.hostname, port皆沒有錯誤(已排除這個問題)
請確認在您的PHP配置文件中(extension_dir)是否正確設置了ldap.so的路徑,通常位於
/usr/local/lib/php/extensions/no-debug-non-zts-xxxxx/ldap.so
您也可以在程式中加入phpinfo()語句,執行後查看輸出的phpinfo內容,確認是否存在ldap套件。
另外,請確認是否重啟了PHP-FPM,以便讓新的設定生效。