Магазин VirtueMart и хостинг
Если вам вдруг пришла в голову идея запустить на удаленном хостинге магазин VirtueMart, подумайте дважды, прежде чем это делать.
Прямая установка магазина на сервере чревата проблемами, связанными с той кашей, которая творится в Joomla с правами на папки и файлы. В большинстве случаев вы никак не сможете на них повлиять или подправить как нужно, если только вы не являетесь владельцем серверного железа, или, по карйней мере, имеете доступ к серверу по протоколу ssh (если у вас арендованный хостинг, то в подавляющем большинстве случаев такого доступа вам не дадут, объяснения просты "по соображениям безопасности безопасный протокол отключен" :) ).
Что же происходит на сервере, отчего многие компоненты, модули и плагины просто загибаются, и вы ничего с этим сделать не можете. В силу того, что они устанавливаются через административный интерфейс Joomla, то система сама выставляет все права на папки и файлы, и делает это настолько некорректно, что часто препятствует работе установленного программного обеспечения.
Конкретно - Joomla устанавливает файлы с правами доступа пользователя www и группы www. Если это арендованный сервер, и у вас нет доступа к нему по ssh, то вы никогда не увидите то, о чем я говорю, и, следовательно не сможете исправить - через предоставляемую пользователям административную панель сервера, будь то cpanel или ISPManager, этого не видно; вы можете видеть только, что с файлами в принципе можно делать - только читать, читать и записывать, и т. д. Но от чьего имени созданы эти файлы, посмотреть (и поменять) негде.
Таким образом, получается, что папки и файлы сформированы от имени пользователя www в группе www, а вы заходите на сервер со своим логином (например, vasyapupkin) и паролем. И пытаетесь поменять права на запись в файл с 644 на 777. Что присходит? Правильно, серверная операционная система видит, что вы нагло пытаетесь взломать чужой файл, и дает отлуп. Сделать с этими файлами вы ничего не можете - ни исправить, ни стереть, ни переместить... Ничего.
В конфигурации Joomla предусмотрены настройки для борьбы с такой ситуацией - разработчики предлагают настроить доступ по фтп. Это ерунда. Это НЕ РАБОТАЕТ.
Так как же все-таки установить на удаленный сервер магазин VirtueMart так, чтобы он был работоспособным?
Ответ прост - по возможности нужно все собирать в локальном режиме, и переносить на удаленный сервер после сборки.
Это относится ко всем компонентам, модулям и плагинам Joomla. В частности, только таким образом можно заставить работать AcaJoom; попробуйте, у вас все получится ;).
Что же конкретно нужно сделать?
А вот что.
- Устанавливаем Joomla и все нужные компоненты, модули и плагины на локальный сервер.
- Устанавливаем компонент резервного копирования JoomlaPack (можно обойтись без него и сделать все ручками, чуть ниже я об этом напишу, но с этим компонентом будет проще).
- Из административной панели компонента JoomlaPack создаем резервную копию, запакованную архиватором zip (бесплатная версия компонента JoomlaPack предусматривает только зипование, чего вполне достаточно. Версия JoomlaPack Plus позволяет работать с архивами в формате tar. Это может быть удобно, если на вашем хостинге установлена панель ISPManager, которая не позволяет распаковывать zip-архивы. Впрочем, zip-архив можно перепаковать в tar уже после архивирования, просто дополнительная процедура.). В архив входят все файлы и архив базы данных, то есть JoomlaPack создает полный архив вашего сайта, пригодный для переноса на удаленный хостинг.
- Заливаем архив на удаленный сервер по фтп.
- Распаковываем архив в нужной папке.
- Заходим на сайт через браузер, как обычно при установке Joomla, в данном случае она подхватит архив и восстановит сайт на удаленном сервере в том виде, в каком вы его подготовили на локальном сервере.
- После окончания установки необходимо установить права на запись для папок и файлов. В силу того, что установка производилась от вашего имени, владельцем всех папок и файлов являетесь вы, и система не заблокирует вашу рабботу ни с какими папками и файлами. Для начала можно просто зайти в админку и в меню помощи посмотреть, на какие папки система просит установить права на запись. Это основная работа. Однако не вся - система не учитывает, что права на запись 777 (или 766, если сервер позволяет работать в таком режиме) нужны некоторым дополнительным модулям в соответствующих папках. Если вы знаете, на какие еще папки нужно подправить права доступа - правьте. Если нет, то по ходу дела при возникновении сбоев в работе модулей просто отслеживайте возникающие ошибки и меняйте права по необходимости. В общем случае права 777 нужно выставить на все временные папки (tmp) и большинство папок с изображениями, находящимися внутри папок компонентов.
Для магазина VirtueMart перейдите в папку компонента магазина и установите права на запись 777 на конфигурационный файл магазина. - Теперь в административной панели магазина VirtueMart нужно исправить настройки урл сайта, чтобы при навигации по магазину он не пытался перебросить посетителей на локальный сервер.
Вот, собственно, и все.
Если вы по каким-то причинам не хотите использовать компонент JoomlaPack для архивирования сайта, а хотите все перенести вручную, не проблема. Заходите в папку своего сайта на локальном сервере, и архивируйте все, что в ней есть.
Далее создаем архив базы данных - либо через phpMyAdmin, либо используя дополнительные утилиты типа дампера.
Затем заливаем архив сайта на сервер, и распаковываем его там. Восстанавливаем базу данных (опять же, через phpMyAdmin или дампер).
Теперь находим в корне сайта конфигурационный файл, и открываем его на редактирование - вам нужно подправить информацию о сайте на сервере: пути, пользователей (сайта и базы данных), пароли... Просмотрите все строки, и поменяйте те, что относятся к конфигурации на сервере.
Далее меняем права на запись в папки и файлы, точно так же, как и в так сказать полуавтоматическом режиме, описанном выше.
Теперь у вас все должно работать.
А как только заработало, бежим на блог Шопмастера http://shopmaster.blogmasters.ru, и оставляем комментарии, или пишем свои замечания и комментарии на адрес электронной почты shopmaster@list.ru
Удачного всем дня!
Шопмастер
P.S. Да, если вы все-таки начали производить установку на удаленный сервер изнутри Джумлы, и теперь не знаете, что делать, потому что не можете удалить папки и файлы компонентов, поскольку система блокирует все ваши попытки, то как вариант можете попробовать следующее.
Зайдите в вышележащую родительскую папку, и из нее переименуйте ту папку, которую не удается удалить с сервера. Если снова неудача - поднимитесь на уровень выше. Постепенно вы поднимитесь до того уровня, на котором сервер даст вам все-таки переименовать папку. Удалить не даст, но переименовать сможете.
Как только переименовали, создаете папку с таким же именем через свой фтп-клиент, и заливаете в нее по фтп все содержимое. Поскольку вы делаете это по фтп, то папки и файлы создаются от вашего имени, вы являетесь их владельцем, и дальше можете спокойно с ними работать.
Такая ситуация возникает, например, когда вы хотите дописать русский языковый файл в папку languages. Ан нет - если папку languages сформировала Джумла, то ничего у вас не выйдет.
Действуйте согласно тому, что я только что написал, и вы сможете создать новую папку languages и уже после этого поместить туда нужный вам языковый файл.
В результате таких действий на сервере останутся хвосты в виде переименованных папок, но вы все-же получите работоспособную систему.
Удачи на просторах Интернета!



























ХАХА Вам видимо просто с хостингом не повезло! На порядочном хостинге компонены и скрипты исполняются от имени пользователя а не от апача и с установленными файлами я могу делать все что заблагорассудится - неоднократно проверенно! ;) У меня лишь 1 раз сложилась ситуация когда на хосте скрипты устанавливались не от моего имени, но решилось все через панель управления файлами DirectAdmin и встроенную функцию управления файлов, она позволяет ресетить владельца, так что паника Ваша безпричинна...
Написал(а) a_z — 01 ÐÐ 2009, 06:22
Ну, паники-то никакой нет: у меня собственный хостинг, свое железо, в России и в США, поэтому я и могу реально рассказать, что там внутри происходит.
То, что Вам повезло и проблем не было - замечательно, Вам именно повезло.
К тому же - Вы переносили из локала на хостинг, или прямо на хостинге ставили? Это 2 большие разницы.
Для тех, у кого возникают такие проблемы, а их процентов 90, и написано, что же такое происходит, и как с этим бороться.
Спасибо, что затронули эту тему.
Прошу прошения, какая часть представленного выше текста касается непосредственно скрипта магазина? Выбор хостинга под конкретную задачу - отдельная и довольно обширная тема. ) Для магазина - тем более. Проблемы с "нободи" встречаются только у очень ленивых,или помешаных на "секьюрности" *-nix`овых хостерофф.. У них же, чаще всего, возникают и неприятности со всякого рода дырами и уязвимостями..
Написал(а) Alter — 21 ÐÐ 2009, 00:59
То, что описано здесь, относится к "Джумле" как к системе, и поскольку магазин работает на основе этой системы, то и к нему тоже. Если у Вас есть полный доступ к серверу, то вы легко решите проблемы, описанные в статье. В большинстве случаев полного доступа к серверу у шопмастеров нет, и "в лоб" решить возникшие проблемы не получается. Я потому и писал эту статью, чтобы показать, как эти препятствия можно обойти, если вы столкнулись с такой проблемой. Встречается такая ситуация часто, практически во всех cms, когда что-то устанавливается самой системой через админский интерфейс. Скажу более, некоторые пользователи макинтошей сталкиваются с этой проблемой в локальном решиме (но там через терминал можно все быстро решить). Так что, отвечая на ваш вопрос, описанная проблема характерна для всей "Джумлы", и через это - для любой установки магазина VirtueMart. Если у вас есть полный рутовый доступ к серверу, можете смело игнорировать возможность столкновения с такой проблемой. Если рутового доступа у вас нет, то есть способ обойти пробему; как именно это сделать - написано выше.
Написал(а) Shopmaster — 21 ÐÐ 2009, 03:16
Давайте поясню еще раз, другими словами, чтобы было понятно - это не паранойя хостера, это просто то, как функционирует система.
Скажу более, если такой проблемы на сервере не встречается, я бы, наверное, поостерегся хостится у такого провайдера - отсутствие этих проблем косвенно свидетельствует о некорректной настройке сервера, то есть потенциальной возможности того, что на ваш сайт зайдут злоумышленники, например, через соседей, и если не напакостят, то сделают дамп базы, сольют ваш уникальный и дорогой дизайн, скопируют базу данных клиентов и пр.
в общем, вот что происходит.
на сервере для вас создается учетная запись, скажем "vasya".
размещаемые вами на вервере файлы помечаются как файлы "васи", и только вася может их удалять, изменять, и пр.
дополнительно вася может изменять права доступа к файлам (это то, что может сделать любой вэбмастер или шопмастер) - разрешить всем доступ. или что-то ограничить.
чего в стандартном варианте (без рутового доступа к серверу) вася сделать не может, так это изменить владельца файлов с "вася" на, например, "петя".
таким образом, пользователь "петя", даже зайдя на сайт "васи", не может, скажем, удалять файлы, которые принадлежат "васе".
точно так же "вася" не может распоряжаться файлами "пети".
что же происходит дальше? а дальше система ("Joomla") устанавливает компоненты, и файлы, из которых состоят эти компоненты, принадлежат не "васе", а некоему пользователю "www", созданному "Джумлой".
вы все правильно поняли - "вася" уже не имеет права ничего сделать с файлами пользователя "www".
и не имея рутового доступа, не может сказать системе, что эти файлы принадлежат ему, "васе", а вовсе не какому-то там "www".
поэтому дальше "вася" может работать со своими файлами, но как только доходит до определенных файлов магазина VirtueMart, созданными "Джумлой" от имени "www".
получается, что магазин ваш, а к некоторым его файлам сервер вас не допускает, потому что владелец этих файлов вовсе не вы.
вот такая в кратце ситуация.
повторю, если вы не сталкивались с такой ситуацией на своем сервере, то я на вашем месте еще раз подумал бы о безопасности вашего хостинга.
если сталкивались, и ломали голову, что с этим можно сделать, то ответ вы найдете в пбликации выше.
удачного вам хостинга!
Написал(а) Shopmaster — 21 ÐÐ 2009, 04:43
Спасибо! Ваша статья меня спасла!!!! Я уже весь инет перерыла в поисках решения!!! Еще раз благодарю!!!
Написал(а) Ирина — 16 ÐÑ 2010, 04:30
Ирина, я рад, что смог Вам помочь. Если будут какие-то вопросы, обращайтесь на адрес электронной почты shopmaster@list.ru
У меня такая проблема... При переносе на хост, перестал добавляется товар в VirtueMart. А так же не могу поменять настройки магазина, например увеличить сумму оформляемого заказа. Присвоила через FTP всем папкам атрибуты 777. Не помогло. Может есть у вас соображения по этому поводу? Буду рада любым решениям, а то уже не один месяц бьюсь с этой проблемой. Санькс.
Написал(а) Оксана — 07 ЯР2011, 16:48