CaBundle open_basedir ограничение - PullRequest
0 голосов
/ 26 июня 2019

У нас есть проект, который работал в течение нескольких месяцев (все его настройки работали нормально, никаких проблем - включая https и доступ пользователей).

Мы переписали часть кода под Symfony 4 (до этого не было фреймворка). На локальном все работает отлично, но в процессе производства мы начали получать следующую ошибку в журналах:

vendor/composer/ca-bundle/src/CaBundle.php is_dir(): open_basedir restriction in effect. File(/usr/local/etc/openssl) is not within the allowed path(s)

Любая идея, что может вызвать это (ну ... ошибка очевидна, и одним из исправлений было бы просто включить это в разрешенные пути, но я не хочу этого делать, пока не пойму причину проблемы)

Важные примечания:

  1. Мы не включили этот конкретный комплект, является частью композитора.
  2. Composer не дает сбоя, и при получении команды composer не получено никаких ошибок.
  3. Проект выглядит так, как ожидается, несмотря на строку журнала.
  4. Перед нами Cloudfare, и сертификат https корректно обрабатывается там.
  5. Список используемых комплектов довольно короткий, но при необходимости я могу предоставить список.
  6. Мы не делаем конкретных вызовов функций из этого пакета (если они сделаны, они создаются чем-то в пакетах Symfony / сторонних разработчиков, но быстрый поиск по всему коду (включая поставщика) ничего не выявил).

Мне не хватает идей о том, что может быть причиной проблемы, особенно если учесть, что это не происходит на локальном и даже на производственном уровне, и проект выглядит нормально.

1 Ответ

1 голос
/ 26 июня 2019

CA-связка пытается прочитать из usr/local/etc/openssl, и это не удается, потому что он не находится ни в одном из разрешенных каталогов для процесса PHP.

Это происходит на одном компьютере, а не на другомпотому что ваши локальные настройки openbase_dir не совпадают с настройками в производственной среде (и, скорее всего, они слишком слабые, как это обычно бывает при разработке).

У вас есть два варианта:

  • Измените настройку openbase_dir в рабочей среде, чтобы она была более доступной, по крайней мере для этого конкретного виртуального хоста.

  • Проверьте, какой пакет вы устанавливаете, зависит от Ca-Bundle и удалите этот пакет, чтобы он больше не включался.

Дополнительная информация:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...