Я провел детальный анализ этого вопроса и могу дать обстоятельный ответ.
Дело в том, что эта проблема, как оказалось, косяк в самой jooml'e. Однако он проявляеться в зависимости от настроек php.ini
Я дам вам в итоге рекомендации по исправлению, а пока некоторые выкладки.
параметр open_baseDir в файле настройки PHP отвечает за доступ скриптов к вашим директориям и если он задан (не пустой), то только в этоих папках и их вложенных папках скрипты могут создавать файлы и директории, что в частности необходимо для установки компонентов. Этот параметр может содержать несколько путей, разделенных знаком ; в винде и : в некоторых других средах.
Вот пример
open_basedir = "F:\inetpub;G:\WWW;G:\Reanimator"
В винде используют "\", в линуксе и бсд "/"
Исходя из этого все папки, с которыми работают скрипты, должны быть вложены в эти разрешенные места. Таким образом работает механизм защиты системы от посягательств.
Если у вас PHP установлен на компе, то вы без труда сможете установить нужные пути.
вот несколько переменных, которые зависят от этого:
error_log = "f:\inetpub\error.log"
upload_tmp_dir = F:\inetpub\temp
session.save_path = "F:\inetpub\temp"
session.entropy_file = "F:\inetpub\dev\urandom"
Папки, обозначенные include_path и extension_dir трогать не надо. Здесь все работает.
Также обратите внимание на Общие настройки Joomla, вкладка "сервер", настройка "Путь к временной папке" тоже должно соответствовать пути open_basedir, и может быть такой же, как и upload_tmp_dir в php.ini
Конечно все эти директории уже должны быть созданы и у них должны быть права на запись и изменение.
Теперь о плохом. Даже при правильной настройке php.ini Joomla не будет загружать компоненты, поскольку имеется глюк в файле \libraries\joomla\filesystem\folder.php
посмотрите на сироку 210!
if (strpos($path, $test) === 0) {
Вы когда либо видели, чтобы столь настойчиво проверяли равенство?! ))
Исправьте на
if (strpos($path, $test) == 0) {
И скрипт начнет правильно обрабатывать переменную open_baseDir. Именно правильно работать, а не обходить ее!
Теперь тем, у кого php.ini прячут хостеры. Смотрим сюда
http://forum.joomla.org/viewtopic.php?f=431&p=1311987Если помог, шлите ваши благодарности Z128185952705, R411437650226