Нередко при установке в joomla компонентов, плагинов или модулей возникают разного рода ошибки. Попробуем рассмотреть некоторые, наиболее вероятные и критичные из них.
Could not create directory
Failed to copy file
Первым делом при таких ошибках следует проверить доступность для записи необходимых директорий в джумле. Для этого заходим в админку джумлы и идем сюда: Help->System Info ->Directory Permissions. На этой странице в колонке Status все директории должны иметь значение Writable(доступно для записи). Если для какой-то директории стоит красным значение Unwritable(недоступно для записи), следует это исправить.
Для этого можно воспользоваться любым FTP клиентом (например, FileZilla) и попробовать поставить chmod 777. В FileZilla это можно сделать, кликнув правой копкой мыши на нужную папку, выбрать File Permissions и в поле Numeric values поставить 777. Также можно воспользоваться файловым менеджером в панели управления хостингом, если провайдер это позволяет.
Возможен также случай, когда в файле конфигурации configuration.php стоит неверное значение для переменной $tmp_path. Это может случиться при переносе сайта на другой хостинг. Следует отметить, что путь в данной переменной должен быть абсолютным (как его узнать смотрите в конце поста). Если вышесказанное не помогает (в большинстве случаев этого достаточно) можно попробовать включить (выключить) FTP в том же файле конфигурации джумлы configuration.php. Сделать это можно задав правильные значения для следующих переменных:
var $ftp_enable = '1'; //1 – включает, 0 – выключает FTP var $ftp_host = 'ftp.site.com '; //Ваш FTP сервер var $ftp_port = '21'; //FTP порт var $ftp_user = 'username'; //Имя пользователя var $ftp_pass = 'userpass'; //Пароль var $ftp_root = 'public_html '; //Путь к установленной джумлы (тот, который вы видите в FTP клиенте)
За более редким случаем причиной возникновения такого рода ошибок является неправильные значения для владельца файлов или папок. Эти значения можно посмотреть в вашем FTP клиенте. В FileZilla это крайняя правая колонка, которая называется Owner/Group. Проверьте если владелец файлов и папок является Apache, FTP пользователь, или PHP пользователь.
Этого должно быть достаточно для успешного устранения возникших ошибок.
Как узнать абсолютный путь к файлам на сервере.
Абсолютный путь отличается от того, который мы видим в FTP клиенте. Его можно узнать у хостеров или же самостоятельно сделав так, как описано далее.
Создайте новый текстовый файл и вставьте в него следующий код:
<?php
//Get the document root
$doc_root = getenv("DOCUMENT_ROOT");
echo $doc_root;
?>
Дайте ему расширение php и загрузите по FTP на ваш сервер (в папку с джумлой). Затем выполните этот документ через браузер. Как результат его выполнения вы должны увидеть что-то похожее на это:
/usr/home/username/www/htdocs
Это и есть абсолютный путь к вашему сайту.
Добрый день!
Спасибо Вам за пост! Делаю все, как Вы пишете:
1. Сделала все папки доступными для записи.
2. Создала php-файл для проверки абс. пути. Вот что получилось:
?/var/www/olga7777/data/www/***.ru
А в файле configuration.php написано вот что:
public $tmp_path = ‘/var/www/olga7777/data/www/***.ru/tmp’;
Это и есть ошибка? Нужно убрать в configuration.php окончание – /tmp?
Попробовала ВСЁ! Ничего не помогает!… Модуль не хочет устанавливаться хоть ты тресни:
JInstaller: :Install: Failed to copy file
/var/www/olga7777/data/www/***.ru/modules/mod_image_show_gk4/mod_image_show_gk4.php to
/var/www/olga7777/data/www/***.ru/modules/mod_image_show_gk4/mod_image_show_gk4.php
/tmp – это не окончание, это Ваша временная папка в джумле. Похоже, что переменная $tmp_path имеет правильное значение.
Вы уверены, что все проверили? Проверьте кто владелец файлов.
Сложно сказать, что еще может быть без непосредственного доступа. Может у Вас дисковое пространство на исходе?