В результате я обнаружил ошибку ниже при попытке установить компонент, модуль или плагин.JFolder :: create: Не удалось создать каталог - Joomla
JFolder::create: Could not create directory
В чем может быть проблема?
В результате я обнаружил ошибку ниже при попытке установить компонент, модуль или плагин.JFolder :: create: Не удалось создать каталог - Joomla
JFolder::create: Could not create directory
В чем может быть проблема?
Измените приведенную ниже переменную на конфигурационный файл (configuration.php
), как показано.
public $log_path = '/logs';
public $tmp_path = '/tmp';
Также убедитесь, что эти папки имеют разрешения папки 755.
У меня есть такая же проблема и сделала это, но ничего не изменилось. Что я могу сделать? я использую joomla 2.5 –
убедитесь, что apache может писать в эти папки и является владельцем всего в вашем проекте joomla. – ContextSwitch
Теперь я нашел два решения для решения этого вопроса, и оба из них были разработаны очень хорошо:
Решение первое:
Сначала найдите точный абсолютный путь к своей папке tmp
, используя этот трюк :
Создайте файл в корень вашего вебсайта, например path.php
Поместите этот фрагмент кода в файл и нажмите кнопку Сохранить
<?php
$path = getcwd();
echo "Your Absolute Path is: ";
echo $path;
?>
Перейдите к yourdomain.com/path.php
в вашем браузере
С этого момента:
"Absolute Path(you've just found)"/tmp
Вставьте эту строку кода в файле .htaccess: php_value open_basedir NULL
Это решение было работал очень хорошо для меня, и это не касается какого-либо хакерского файла Joomla.
Решение Два:
/public_html/tmp
просто tmp
$obd = ini_get('open_basedir');
Закомментируйте эту линию с // в начале, так что становится: //$obd = ini_get('open_basedir');
Редактирование файлов ядра не рекомендуется. – Techie
@ Dasun, Правильно!, И я соответствующим образом обновил ответ. – Hbirjand
, так что вы знаете - если неправильные папки tmp и logs неверны, вы не можете войти в административную часть Joomla, когда получите одно и то же сообщение. Я нашел, что лучший способ - использовать php-код getcwd() в файле path.php в корневой папке вашей установки joomla, загрузить path.php и скопировать правильный путь, затем открыть файл config.php и добавить его к началу переменных $ log_path и $ tmp_path – user1784974
После многих неприятностей с этой ошибкой я получил прорыв. В файле configuration.php отредактируйте значения var tmppath var logpath, как показано ниже: var $log_path = '/home/public_html/sitename/logs'; var $tmp_path = '/home/public_html/sitename/tmp';
Это определенно будет работать. И работает для меня.
Вы можете изменить владельца папок 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. Вы можете использовать следующую команду, чтобы сделать это:
(я полагаю, что ваш апач пользователь www-data
)
sudo chown -R www-data:www-data /path/to/your/joomla
Если вы уже внутри директории Joomla, то вы можете выполнить следующую команду:
sudo chown -R www-data:www-data .
Папки разрешений? – Bakual
Возможный дубликат [JFolder :: create: Не удалось создать каталог на всех страницах] (http://stackoverflow.com/questions/18546171/jfoldercreate-could-not-create-directory-in-all-pages) – Joe