2013-04-04 5 views
7

В результате я обнаружил ошибку ниже при попытке установить компонент, модуль или плагин.JFolder :: create: Не удалось создать каталог - Joomla

JFolder::create: Could not create directory 

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

+0

Папки разрешений? – Bakual

+0

Возможный дубликат [JFolder :: create: Не удалось создать каталог на всех страницах] (http://stackoverflow.com/questions/18546171/jfoldercreate-could-not-create-directory-in-all-pages) – Joe

ответ

24

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

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

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

Read more

+1

У меня есть такая же проблема и сделала это, но ничего не изменилось. Что я могу сделать? я использую joomla 2.5 –

+1

убедитесь, что apache может писать в эти папки и является владельцем всего в вашем проекте joomla. – ContextSwitch

2

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

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

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

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

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

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

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

С этого момента:

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

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

Решение Два:

  1. Войти в панель Joomla Administartor.
  2. Перейти к глобальной конфигурации
  3. Нажмите кнопку Нет, вкладка «Сервер»
  4. Изменить путь от /public_html/tmp просто tmp
  5. Войти в панель управления (CPanel), (Или вы можете использовать FTP учетную запись для этой цели)
  6. Откройте Диспетчер файлов (если вы используете FTP, этот шаг должен быть пропущен)
  7. Открыть папку «библиотеки»
  8. Открыть папку «»
  9. Joomla
  10. Открыть папку «файловая система»
  11. Щелкните правой кнопкой мыши на «folder.php» и нажмите «Изменить».
  12. Посмотрите на линию (поиск = БДС): $obd = ini_get('open_basedir'); Закомментируйте эту линию с // в начале, так что становится: //$obd = ini_get('open_basedir');
  13. Сохранить и закрыть.
+0

Редактирование файлов ядра не рекомендуется. – Techie

+0

@ Dasun, Правильно!, И я соответствующим образом обновил ответ. – Hbirjand

+0

, так что вы знаете - если неправильные папки tmp и logs неверны, вы не можете войти в административную часть Joomla, когда получите одно и то же сообщение. Я нашел, что лучший способ - использовать php-код getcwd() в файле path.php в корневой папке вашей установки joomla, загрузить path.php и скопировать правильный путь, затем открыть файл config.php и добавить его к началу переменных $ log_path и $ tmp_path – user1784974

0

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

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

1

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