mongodb — — ini «(нет)» а не загрузка расширений

Так что я столкнулся с чем-то, что я просто надеюсь, что смогу получить некоторое понимание. Есть чистая машина Centos с чистой установкой PHP. На нем также был установлен драйвер mongoDB. При доступе к веб-приложению через браузер оно продолжало жаловаться, что клиент mongo не существует. Все процедуры установки были соблюдены, php.ini содержащиеся extension=mongo.soи httpd перезапустил. PHP info() не содержал монго конф. То, что закончилось работой, было добавлением mongo.ini подать в /etc/php.d каталог с extension=mongo.so написано к нему.

Я получаю подлое подозрение php.ini загружался неправильно, но я не понимаю почему. Причина, по которой я думаю, что это, например, это работало после добавления mongo.ini, Во-вторых, есть несовпадающий PHP info() выходы из интерфейса командной строки и браузера.

Cli выход

и из графического интерфейса

графический интерфейс

Оба из них были разорваны на несколько секунд. Никаких изменений конфигурации или перезапусков не было. По некоторым причинам вывод CLI говорит, что загруженный файл конфигурации был /etc/php.ini что и ожидалось. Однако графический интерфейс браузера показывает (none), Что здесь происходит? Вот почему extension=mongo.so никогда не загружался с php.ini файл?

версии

Apache/2.4.6
PHP/5.4.16
CentOS Linux release 7.3.1611

[someUser@someServer etc]# find / -name php.ini
/etc/php.ini

Так ли это даже подходящее место для этого? или я должен перейти на другой форум?

Обновить

После прочтения Григорий ИлизировВ комментариях и проводя некоторые исследования, я думаю, что на вопрос ответят, если он хочет опубликовать его. Похоже, конфиги php для apache не загружались. Я только что предположил /etc/php.ini файл был всем, что нужно было отредактировать. Теперь мне просто нужно выяснить, какого черта я собираюсь это сделать.

обновление 2

Вернулся к чистой установке и сделал все снова. На этот раз результаты CLI и веб-интерфейса те же, что и раньше, но теперь mongo не загружается вообще, несмотря на добавление в /etc/php.d/mongo.ini, подозреваю, что SELinux вмешивается в apache. mongo.ini больше не отображается в дополнительных разделах файла .ini. Отключение SELinux и перезагрузка позволяют ему загружаться в apache.

ЗАВЕРШЕНИЕ

Это действительно проблема SELinux. Теперь, это относится к SO для будущих пользователей?

0

Решение

Вы должны убедиться, что ваш PHP установил MongoDB extension.try use PHP -m посмотрите, установлен ли у вас MongoDB.

Затем загрузите исходный код с https://github.com/mongodb/mongo-php-driver-legacy.

выполните следующие шаги, чтобы установить расширение:

tar zxvf mongo-x.x.x.tgz -C ../
cd mongo-x.x.x/
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make clean
make
make install
extension=mongo.so //add this line to php.ini

после установки попробуйте запустить PHP -m еще раз, посмотрите, если расширение установлено успешно.

для получения дополнительной информации вы должны прочитать PHP документ.http://php.net/manual/en/mongo.installation.php#mongo.installation.fedora

0

Другие решения

Это был действительно SELinux, мешающий доступу Apache к файлу конфигурации PHP. Добавление контекста безопасности исправило это.

semanage fcontext -at httpd_sys_content_t '/etc/php.ini'
semanage fcontext -at httpd_sys_content_t '/etc/php.d/(/.*)?'
restorecon -Rv /etc/
systemctl restart httpd

Apache нашел файл конфигурации

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector