Розглянемо стандартну ситуацію, з 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 not 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 виконується від імені користувача, все норм. А в підсумку - нічого не змінилося.
Всі брешуть, вірно дядечко Хаус. )
Хостери, ставитеся дбайливіше до замовників, саме від Вас вони йдуть на хости, перевірені виконавцями.
За сім все, добраніч :)
Валентин, ми говоримо про ситуацію, коли маємо шаред-хост і хостер ніяк навіть не здогадується що конфиг батьківського може бути подібним. Що і призводить до таких наслідків.
І до чого тут панель управління - мені зовсім не зрозуміло. Повторюся, php запущений / встановлений на сервері з-під Апача і все. Панелька сильно допоможе?
І при чому тут хостери? Якщо справа в панелі керуванням. Як вона створить віртуальний хост так і буде. Залежить від патча веб-сервера і т.д. Хостер може тільки вибрати панельку для клієнтів. А все інше буде залежати від вимог і можливостей цієї панелі, якщо звичайно ця панель є.