Заметки / FLEXIcontent - "failed to open output stream. temporary path not writable"

Ethicist 12 июня 2021

Проблема

У нас установлена CMS Joomla и система управления контентом FLEXIcontent. При загрузке изображения в галерею материала файл не сохраняется на сервере и появляется Alert с сообщением failed to open output stream. temporary path not writable.

Решение

Кратко: проверить и исправить пути в configuration.php Joomla.

Подробно:

Для начала нам нужно найти абсолютный путь ко временной директории сайта.
Для этого создадим скрипт path.php

<?php
  $ini_path = php_ini_loaded_file();

  if ($ini_path) {
    echo 'php.ini: ' . $ini_path;
  } else {
    echo 'A php.ini file was not loaded';
  }

  $path = getcwd();
  echo 'Your absoluthe path is: ' . $path;
?>

Если такой возможности нет, то можно посмотреть настройки PHP в панели управления хостингом, или же вызвать где-нибудь в коде

<?php phpinfo(); ?>

В зависимости от сервера, пути могут различаться. В моём случае это /var/www/vhosts/sitename.com/httpdocs/logs и /var/www/vhosts/sitename.com/httpdocs/tmp.

Это мы и дописываем или исправляем в configuration.php в директории установки Jooomla.

public $log_path = '/var/www/vhosts/sitename.com/httpdocs/logs';
public $tmp_path = '/var/www/vhosts/sitename.com/httpdocs/tmp';
public $upload_tmp_dir = '/var/www/vhosts/sitename.com/httpdocs/tmp';

Теперь загрузка изображений должна работать. Разумеется если проблема была в пути к директориям. Дополнительно можно проверить права доступа к вышеуказанным директориям.

Смотрите также: