Ошибка установки компонентов из-за open_basedir
Unable to create destination
- Ищем файл /libraries/joomla/filesystem/folder.php
- В файле ищем строку
$obd = ini_get('open_basedir');
- Комментируем строку с помощью двух слешей перед строкой:
// $obd = ini_get('open_basedir');
Вуаля, компоненты загружаются и устанавливаются!
Отключение fetchscript.php в Virtuemart
Если вы пользуетесь Virtuemart, то борьба за производительность и скорость — хронический процесс. fetchscript.php собирает необходимые для темы файлы Javascript с расширением js и выполняет их сжатие, что теоретически должно уменьшать объем передаваемых данных и ускорять прорисовку страниц сайта. Однако при правильной многоуровневой настройке сервера такие файлы отдаются сервером nginx без привлечения сервера Apache и запуска тяжелого PHP. При этом теоретически клиент тоже может получить страницу быстрее, а серверу точно полегчает, поэтому я всегда отключаю fetchscript.php. Для этого:
- Ищем файл с параметрами конфигурации Virtuemart /administrator/components/com_virtuemart/virtuemart.cfg.php
- В верхней части файла добавить стороку:
$_REQUEST['usefetchscript'] = "0";
Оптимизация SQL-запросов Virtuemart
По вопросу оптимизации SQL-запросов в Virtuemart можно целую книгу написать, однако я здесь приведу всего один пример, который позволит ускорить ваш интернет-магазин с помощью всего одной правки:
- Ищем файл /administrator/components/com_virtuemart/html/shop_browse_queries.php
- Ищем в файле строку
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
- Меняем, вернее укорачиваем ее до такой:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
Эти действия можно делать, если в вашем магазине нет многоуровневых категорий, где в категориях верхнего уровня есть подкатегории и товары.