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

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

JFolder::create: Could not create directory

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


person Techie    schedule 04.04.2013    source источник


Ответы (4)


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

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

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

Подробнее

person Techie    schedule 04.04.2013
comment
у меня такая же проблема и я сделал это, но ничего не меняется. Что я могу сделать? я использую джумла 2.5 - person Mohsen Safari; 31.08.2013
comment
убедитесь, что apache может писать в эти папки и является владельцем всего в вашем проекте joomla - person ContextSwitch; 14.11.2013

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

Решение первое:

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

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

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

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

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

Впредь:

  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. Откройте папку "джумла"
  9. Откройте папку "файловая система"
  10. Щелкните правой кнопкой мыши «folder.php» и нажмите «Изменить».
  11. Найдите строку (search = obd): $obd = ini_get('open_basedir'); Закомментируйте эту строку // в начале, чтобы она стала следующей: //$obd = ini_get('open_basedir');
  12. Сохрани и закрой.
person Hbirjand    schedule 27.09.2014
comment
Редактировать файлы ядра не рекомендуется. - person Techie; 27.09.2014
comment
просто чтобы вы знали - если папки tmp и logs неверны, вы не можете войти в административную часть Joomla, так как вы получите то же сообщение. Я обнаружил, что лучший способ — использовать php-код getcwd() в файле с именем path.php в корне вашей установки joomla, загрузить path.php и скопировать правильный путь, затем открыть файл configuration.php и добавить его. в начало переменных $log_path и $tmp_path - person TheKLF99; 19.08.2017
comment
Я боролся с этим в течение часа, думая, что /home/MYWEBISTE/public_html/tmp — это абсолютный путь. Вместо этого я попробовал /Applications/MAMP/htdocs/home/MYWEBSITE/public_html/tmp в качестве абсолютного пути (что и есть!). Это сработало для меня (очевидно, с использованием Mac и MAMP). - person gelviis; 15.06.2019

Вы можете изменить владельца папок 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 .
person Mukesh Chapagain    schedule 10.06.2016

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

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

person Community    schedule 05.03.2015