Перебарываем друпаловский Warning: is_file(): open_basedir restriction in effect.

Я сам-себе горе хостер, сайты живут на самоподнятой убунте с zpanel. Если поднимать всё это изкоробки, как делал я, то оно конечно работает, в рамках заданного юзкейса, но шаг влево-вправо вызывает некоторые проблемы. Так несколько клиентов стали жаловаться на ошибки типа

  • Warning: is_file(): open_basedir restriction in effect. File(/tmp/phpfSHkAk) is not within the allowed path(s): (/var/zpanel/hostdata/zadmin/public_html/niph_info:/var/zpanel/temp/) в функции image_get_info() (строка 126 в файле /var/zpanel/hostdata/zadmin/public_html/niph_info/includes/image.inc).
  • Warning: getimagesize(): open_basedir restriction in effect. File(/tmp/phpfSHkAk) is not within the allowed path(s): (/var/zpanel/hostdata/zadmin/public_html/niph_info:/var/zpanel/temp/) в функции image_gd_get_info() (строка 349 в файле/var/zpanel/hostdata/zadmin/public_html/niph_info/modules/system/image.gd.inc).
  • Warning: getimagesize(/tmp/phpfSHkAk): failed to open stream: Operation not permitted в функции image_gd_get_info() (строка 349 в файле/var/zpanel/hostdata/zadmin/public_html/niph_info/modules/system/image.gd.inc).

Разберёмся, что мы сделали не так.

Сначала я полез читать про open_basedir. Чтука оказалась полезная, если вкратце она запрещает php скриптам делать fopen вне разрешённых директорий. Не знаю уж где zpanel её прописывает, да и неинтересно это, как видно по выводу (/var/zpanel/hostdata/zadmin/public_html/niph_info:/var/zpanel/temp/) настроена эта директива вполне логично. Небольшое гугление и здравый смысл показали что картинка закачивается вне этого разрешённого пути, а затем друпал пытается её обработать. Естественно разрешения не дают ему это сделать, и он ругается.

Решение - надо объяснить php что закачивать файлы надо не куда придётся, а, например, в /var/zpanel/temp/; Делается это директивой upload_tmp_dir, в файле php.ini прописываем

upload_tmp_dir = /var/zpanel/tem

 После чего чистим кеш и перезапускаем апач. Кстати, в рамках вышеописанной конфигурации tmp директорию друпала тоже надо установить в, например, /var/zpanel/hostdata/zadmin/public_html/niph_info/tmp ; Однако это требование движка более логично и понятно чем то, что было указано выше.

Добавить комментарий

Plain text

  • No HTML tags allowed.
  • Строки и параграфы переносятся автоматически.

Последние комментарии

Вход в систему

Powered by Drupal