JFolder:: create: не удалось создать каталог - Joomla

Я заканчиваю с ошибкой ниже, когда я пытаюсь установить компонент, модуль или плагин.

JFolder::create: Could not create directory

в чем может быть проблема?

4 ответов


измените нижеприведенную переменную в файле конфигурации (configuration.php), как показано.

public $log_path = '/logs';
public $tmp_path = '/tmp';

также убедитесь, что эта папка имеет разрешение на папку 755.

подробнее


теперь я нашел два решения для решения этой проблемы, и оба из них работали очень хорошо:

Решение Одно:

сначала найдите точный абсолютный путь к вашему tmp папка с помощью этого трюка:

создайте файл php в корне вашего сайта,например path.php

поместить этот фрагмент кода в файл и нажмите кнопку Сохранить

<?php
$path = getcwd();
echo "Your Absolute Path is: ";
echo $path;
?>

перейти к yourdomain.com/path.php в браузере

теперь on:

  1. войдите в панель администратора Joomla.
  2. перейти к глобальной конфигурации
  3. нажмите на вкладку "сервер"
  4. измените путь на "Absolute Path(you've just found)"/tmp
  5. вставьте эту строку кода в свой .файл htaccess: php_value open_basedir NULL

    это решение было очень хорошо работает для меня, и это не имеет дело с основным взломом файлов Joomla.

решение Два:

  1. войдите в панель администратора Joomla.
  2. перейти к глобальной конфигурации
  3. нажмите нет на вкладке "сервер"
  4. изменить путь с /public_html/tmp просто tmp
  5. войдите в Панель управления (CPanel), (или вы можете использовать учетную запись FTP для этой цели)
  6. открыть файловый менеджер (Если вы используете FTP,этот шаг должен быть пропущен)
  7. открыть папку "библиотеки"
  8. Открыть Папку "Joomla", а
  9. открыть папку "файловая система"
  10. Правой Кнопкой Мыши на папку".PHP" и нажмите кнопку "Редактировать".
  11. ищите линию, (поиск = obd): $obd = ini_get('open_basedir'); прокомментируйте эту строку с / / в начале, чтобы она стала://$obd = ini_get('open_basedir');
  12. сохранить и закрыть.

вы можете изменить владельца папок Joomla на пользователя сервера apache.

вы можете найти пользователя сервера apache со следующей командой:

ps aux | grep -v root | grep apache | cut -d\  -f1 | sort | uniq

источник: https://serverfault.com/questions/125865/finding-out-what-user-apache-is-running-as

для Ubuntu, это www-data.

после того, как вы знаете имя пользователя apache, вы можете изменить владельца всех папок и файлов вашей установки Joomla. Вы можете использовать следующая команда для этого:

(Я полагаю, что ваш пользователь apache www-data)

sudo chown -R www-data:www-data /path/to/your/joomla

если вы уже находитесь в директории Joomla, то вы можете выполнить следующую команду:

sudo chown -R www-data:www-data .

после многих проблем с этой ошибкой я получил прорыв. В конфигурации.php-файл, отредактируйте значения var logpath n tmppath, как показано ниже var $log_path = '/home/public_html/sitename/logs'; var $tmp_path = '/home/public_html/sitename/tmp';

Это определенно будет работать. И работает на меня.