Điểm:0

Tích hợp LDAP không hoạt động với Drupal 9 (sử dụng Ludwig làm trình soạn nhạc thay thế - đã hoạt động trong Drupal 8)

lá cờ cn

Tôi đang gặp sự cố kể từ khi cập nhật lên Drupal 9, liên quan đến tích hợp LDAP. Trước đây, khi sử dụng Drupal 8, tôi đã tích hợp thành công LDAP trường học của mình để xác thực người dùng, bằng cách sử dụng mô-đun đóng góp thích hợp. Tuy nhiên, sau khi cập nhật lên Drupal 9, tích hợp LDAP đã ngừng hoạt động và bất cứ khi nào người dùng cố gắng đăng nhập, họ sẽ gặp lỗi màn hình trắng "Trang web gặp lỗi không mong muốn. Vui lòng thử lại sau."

Bây giờ, kiểm tra nhật ký, tôi luôn thấy lỗi này:

    Lỗi: Không tìm thấy lớp 'Symfony\Component\OptionsResolver\OptionsResolver' trong Symfony\Component\Ldap\Adapter\AbstractConnection->__construct() (dòng 26 của /var/www/www-dev/modules/ludwig/lib/grahl- ldap/source/Adapter/AbstractConnection.php)
#0 /var/www/www-dev/modules/ludwig/lib/grahl-ldap/source/Adapter/ExtLdap/Adapter.php(41): Symfony\Component\Ldap\Adapter\AbstractConnection->__construct()
#1 /var/www/www-dev/modules/ludwig/lib/grahl-ldap/source/Ldap.php(40): Symfony\Component\Ldap\Adapter\ExtLdap\Adapter->getConnection()
#2 /var/www/www-dev/modules/ldap/ldap_servers/src/LdapBridge.php(143): Symfony\Component\Ldap\Ldap->bind()
#3 /var/www/www-dev/modules/ldap/ldap_servers/src/ServerListBuilder.php(92): Drupal\ldap_servers\LdapBridge->bind()
#4 /var/www/www-dev/modules/ldap/ldap_servers/src/ServerListBuilder.php(58): Drupal\ldap_servers\ServerListBuilder->checkStatus()
#5 /var/www/www-dev/core/lib/Drupal/Core/Entity/EntityListBuilder.php(219): Drupal\ldap_servers\ServerListBuilder->buildRow()
#6 /var/www/www-dev/core/lib/Drupal/Core/Entity/Controller/EntityListController.php(23): Drupal\Core\Entity\EntityListBuilder->render()
#7 [chức năng nội bộ]: Drupal\Core\Entity\Controller\EntityListController->listing()
#8 /var/www/www-dev/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array()
#9 /var/www/www-dev/core/lib/Drupal/Core/Render/Renderer.php(578): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#10 /var/www/www-dev/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext()
#11 /var/www/www-dev/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext()
#12 /var/www/www-dev/vendor/symfony/http-kernel/HttpKernel.php(158): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#13 /var/www/www-dev/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#14 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle()
#15 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle()
#16 /var/www/www-dev/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#17 /var/www/www-dev/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass()
#18 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle()
#19 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#20 /var/www/www-dev/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#21 /var/www/www-dev/core/lib/Drupal/Core/DrupalKernel.php(717): Stack\StackedHttpKernel->handle()
#22 /var/www/www-dev/index.php(19): Drupal\Core\DrupalKernel->handle()
#23 {chính}

Bây giờ, điều quan trọng cần lưu ý là Tôi không duy trì trang web thông qua Composer - nó đã được cài đặt trước khi trình soạn nhạc là giải pháp mặc định để cài đặt/cập nhật. Do đó, tôi cập nhật lõi và mô-đun theo cách thủ công.

Tôi đã sử dụng thành công một mô-đun rất hữu ích - Ludwig - mà là một Trình soạn thảo thay thế cho các mô-đun đóng góp yêu cầu các thư viện PHP bên ngoài.

Thật vậy, ludwig dường như tìm thấy các thư viện bên ngoài cần thiết cho LDAP, xem ảnh chụp màn hình (và đó là nơi xảy ra lỗi, grahl/ldap lib).

ludwig tìm các gói cần thiết

Bây giờ, tôi đã tìm kiếm gói và tài liệu grahl/ldap và nó liệt kê một thư viện có tên tùy chọn-trình giải quyết như một yêu cầu.

Tôi đã tìm kiếm danh sách nhà cung cấp/symfony trên máy chủ web của mình và mặc dù tôi thấy một số thư viện (chẳng hạn như polyfill-php80, một yêu cầu khác của grahl/ldap), tôi không thấy lib trình giải quyết tùy chọn đó.

Tôi đã thử tải xuống các tệp theo cách thủ công (đã chạy nhà soạn nhạc yêu cầu symfony/options-resolver trong một thư mục tùy ý mới, xem những gì nó tìm nạp và sao chép nội dung của thư mục trình giải quyết tùy chọn vào nhà cung cấp/symfony). Tuy nhiên, tôi không ngạc nhiên khi lỗi vẫn tiếp tục, nó không thể tìm thấy lớp OptionsResolver.php, mặc dù nó "tồn tại" ở nơi lẽ ra phải có (?). Tôi nghi ngờ nó giữ một sổ đăng ký về những gì tồn tại - nó không chỉ đơn giản là kiểm tra đường dẫn và tìm kiếm một tệp ....

Nghe có vẻ ngu ngốc, nhưng tôi hoàn toàn mù mờ ở đây - rõ ràng là tôi không có nhiều kinh nghiệm trong tất cả những điều này ..

Tôi thực sự sẽ biết ơn nếu ai đó có thể cung cấp gợi ý .. Xin lỗi vì đã viết một câu hỏi quá chi tiết, tôi chỉ muốn cung cấp càng nhiều thông tin càng tốt ..

Tôi có nên cài đặt trình giải quyết tùy chọn thông qua Trình soạn thảo mặc dù cho đến nay tôi chưa sử dụng nó để cài đặt/cập nhật?

Mọi sự trợ giúp sẽ rất được trân trọng ..

Kevin avatar
lá cờ in
Với việc tải xuống thủ công, tôi đoán Trình soạn thảo trình tải tự động thường tạo không được cập nhật, vì vậy các không gian tên không được phân giải thành các tệp trong nhà cung cấp.
thomas avatar
lá cờ cn
hơi muộn, nhưng đánh giá cao ý kiến ​​đóng góp của bạn.. Tôi đoán nó phải giống như thế này. Tôi không thể giải quyết vấn đề đó, nhưng tôi nhận ra rằng có lẽ giải pháp tốt hơn là thử di chuyển toàn bộ trang web của tôi sang trình soạn nhạc, bởi vì sẽ có những vấn đề tương tự ở khắp mọi nơi .. Dường như có hướng dẫn cho điều đó, như ở đây: https://www.drupal.org/docs/installing-drupal/add-composer-to-an-current-site hoặc tại đây: https://github.com/grasmash/composerize-drupal trong số những người khác, vì vậy tôi sẽ hãy thử điều này khi tôi tìm thấy thời gian. Một lần nữa cảm ơn cho đầu vào của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.