А что у нас тут?

Мастхевы

Всячина


Домены только тут!



Хостинг!!!


главная Блог Рабочие моменты Так кто владелец: я или сервер?

Так кто владелец: я или сервер?

Категория: Рабочие моменты
Автор: lostprophet   
1 марта 2012

Пост адресован в первую очередь хостерам, а потом владельцев сайтов на хостингах, которые не принимали этот пост во внимание до этого момента.
Скажу сразу, я не особо силен в *nix-системах, но все, изложенное ниже будет исходить из опыта и наблюдений.

Рассмотрим стандартную ситуацию, с Joomla.
Есть заказчик с техническим заданием вида: поставить и настроить/обверстать модуль/компонент/плагин.
Окай, просим ftp и доступ в админку, получаем, логинимся в ней, ставим заготовленный модуль (или что нужно), коннектимся по ftp, открываем нужный файл вывода или логики для редактирования/обверстки, редактируем, сейвим, переходим в FileZilla и получаем плюху:


Статус:    Начинаю закачивать C:\Users\lostprophet\AppData\Local\Temp\fz3temp-1\helper 2.php
Команда:    PASV
Ответ:    227 Entering Passive Mode (**,**,***,***,***,***)
Команда:    STOR helper.php
Ответ:    553 Can't open that file: Permission denied
Ошибка:    Критическая ошибка при передаче файлов
Статус:    Отключен от сервера

Так-с, разберемся, что значит сия грамота.
А значит она следующее, что для любых операций с фалом или "папкой" у Вас недостаточно прав. Почти винда, но в nixaх кроме атрибутов чтения-записи есть еще и группы и владельцы директорий. Отоноче, Михалыч, да простят меня жители Урала );)

Скрин ниже

Смотрим, что практически все папки имеют группу и владельца 598 и595. Это пользователь хостинга, от его имени и с его правами созданы эти директории и он может ими управлять.
А 99 99 - это права на папки и владелец никто иной как веб-сервер или Apache. А как известно, Апач главнее пользователя (только не root), и именно поэтому мы получаем при сохранении файлов сообщение об ошибке.

Почему так происходит.
Все просто. В *nix-системах, такие процессы как Mysql, php, perl и прочее (сильно упростил все, красноглазики, не пинайте) может запускаться от имени сервера или от имени пользователя.
Замечу, что пользователей может быть огромное множество (как при VPS или шаред-хостинге), а конфиг - один:)

Теперь, логическая цепочка, при которой создаются подобные недоразумения:
ставим мод -> в моде прописано: поставь исполняемые php-файлы в определенную директорию (если нет директории - создай её)!!!
Итак, представим, что ставим компонент фотогалереи, который должен создать папку с админкой, папку с фронтендом (то, что выводится на сайте) и папку с хранилищем изображений и их уменьшенных копий (превью).

А так как установщиком в большинстве случаев является php-файл и если php запущено от имени сервера, то получаем директории с правами и владельцами сервера.
К чему это приводит? Допустим, админ сайта не меняет конфиг галереи, не меняет разметку вывода, а просто пытается залить фотки в галерею.
Получает ошибку, потому как обращается к директориям от пользователя, которые имеют права от сервера (что главнее). Результат - скрин в начале поста или ошибка в движке.
Кстати, не путать прошу владельцев/групп и атрибуты директорий (многие умельцы не могут/умеют выставить правильные, даже после установки движка).

Зачастую, решить данную проблему можно из панельки хостинга (иногда под root - самым главным пользователем), поменяв руками нужное. Или файлом chmod.php (кто знает - отлично, кто не знает - пишите, растолкуем), но как быть дальше? Все сделали, сдали сайт, заказчик доволен. И тут он ставит еще что-то, опять не работает как надо. Опять пишет Вам, недоволен. Или Вы, как заказчик, пишете исполнителю петицию :)
Причем, в моей практике, такое бывает часто. Я проекты сдаю заказчику на своем VPS, где все отлично, потом переношу на их сервера. И очень часто начинаются недоразумения.

Решений вагон: взять VPS/VDS (настроить все самому или призвать знакомого админа через ssh), свалить на другой хост (не факт, что будет лучше), долбать мозги техподдержке (не факт, что поможет).

Кстати, недавно сдали сайт, перенесли на хост заказчика, чутка доделали в процессе, доустановили, столкнулись с такой проблемой.
Заказчик написал в ТП подготовленный нами текст, ТП ответила, мол php выполняется от имени пользователя, все норм. А в итоге - ничего не изменилось.

Все лгут, верно дядюшка Хаус? :)

Хостеры, относитесь бережнее к заказчикам, именно от Вас они уходят на хосты, проверенные исполнителями.

Не для рекламы: я более года арендую VPS и никогда ни я, ни люди, которым я порекомендовал этих хостеров, не жаловались)
Если интересно - пишите, обсудим.

За сим все, доброй ночи :)

 
Комментарии  
# lostprophet 11.03.2012 00:46
0
Валентин, мы говорим о ситуации, когда имеем шаред-хост и хостер никак даже не догадывается что конфиг родительского может быть подобным. Что и приводит к таким последствиям.

И причем тут панель управления - мне совсем не понятно. Повторюсь, php запущен/установлен на сервере из-под Апача и все. Панелька сильно поможет?
# Валентин 10.03.2012 12:24
0
И при чем тут хостеры? Если дело в панели управлением. Как она создаст виртуальный хост так и будет. Зависит от патча веб-сервера и т.д. Хостер может только выбрать панельку для клиентов. А все остальное будет зависеть от требований и возможностей этой панели, если конечно эта панель есть.
⇑ Наверх