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:
- войдите в панель администратора Joomla.
- перейти к глобальной конфигурации
- нажмите на вкладку "сервер"
- измените путь на
"Absolute Path(you've just found)"/tmp
-
вставьте эту строку кода в свой .файл htaccess:
php_value open_basedir NULL
это решение было очень хорошо работает для меня, и это не имеет дело с основным взломом файлов Joomla.
решение Два:
- войдите в панель администратора Joomla.
- перейти к глобальной конфигурации
- нажмите нет на вкладке "сервер"
- изменить путь с
/public_html/tmp
простоtmp
- войдите в Панель управления (CPanel), (или вы можете использовать учетную запись FTP для этой цели)
- открыть файловый менеджер (Если вы используете FTP,этот шаг должен быть пропущен)
- открыть папку "библиотеки"
- Открыть Папку "Joomla", а
- открыть папку "файловая система"
- Правой Кнопкой Мыши на папку".PHP" и нажмите кнопку "Редактировать".
- ищите линию, (поиск = obd):
$obd = ini_get('open_basedir');
прокомментируйте эту строку с / / в начале, чтобы она стала://$obd = ini_get('open_basedir');
- сохранить и закрыть.
вы можете изменить владельца папок 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';
Это определенно будет работать. И работает на меня.