Я настраиваю новый сервер CentOS 7 в Vagrant для запуска PHP, nginx, MySQL (MariaDB) и memcached (обратите внимание на d в конце). Я могу заставить memcached работать нормально, но я не могу загрузить файл Amazon Elasticache .so с помощью PHP. Я знаю, что файл существует. Как мне заставить PHP загружать это расширение или решить, почему этого не происходит?
Я выполнил инструкции по установке этого расширения здесь: Установка клиента кластера ElastiCache для PHP
Как мне устранить неполадки PHP и почему он может не загружать расширение?
В дополнение к отличному комментарию @Bazze относительно libsas вам может не хватать зависимости (или зависимости от правильной архитектуры)
Обратите внимание, что для некоторых приложений довольно часто приходится устанавливать как 32-разрядные, так и 64-разрядные библиотеки.
Если вы используете ldd /path/to/amazon-elasticache-cluster-client.so
, вы видите какие-либо строки с упоминанием «нерешенных» или аналогичных? (Опубликуйте весь вывод в своем вопросе.
Распространенную проблему, подобную этой, можно просто решить, запустив ldconfig
, который следует запустить после установки (или добавления символических ссылок) библиотек.
Другая проблема может быть связана с разрешениями или системами контроля доступа, такими как SELinux. Что значит sestatus
шоу? Возможно тебе нужно бежать restorecon
над каталогом, содержащим библиотеки.
Иногда просто набираю в командной строке:
$ php -m
Для просмотра загруженных модулей будет отображаться некоторая информация о том, почему некоторые модули не загружаются. Также из командной строки иногда выявляются синтаксические ошибки ini-файла, из-за которых модули не загружаются:
$ php --ini
Это первое, что я сделаю для отладки модуля, который не загружается.