Іноді, при установці деяких компонентів CMS, а зокрема компонентів joomla, скрипт, привласнює собі права адміністратора, і Ви вже не можете змінити права папок / файлів, встановлених через адмінку движка, і не можете видалити joomla повністю. Але прочитавши статтю, у вас більше не виникне проблем зі зміною прав папок на сервері і питання як видалити joomla.
Частенько, при експериментах з Joomla, виходило так, що мені потрібно було видалити наворочене мною і відновити сайт, який був до змін. У деяких випадках, після некоректної установки деяких компонентів joomla, виходить так, що ні на сайт, ні в адмінку Joomla зайти не виходить. Значить і компонент, через якого виникла проблема, вже не вийде видалити через адмінпанель Джумли. У таких випадках, доводиться повністю видаляти Joomla і відновлювати сайт, який був до змін. Але тут з'являється проблема, деякі папки і файли джумли не видаляються, немає прав на їх видалення. Змінити права не виходить не через Total Commander, ні через c-panel хостингу.
В черговий раз, укомплектовуючи Joomla доповненнями, встановив кілька компонентів. Встановив так, що потім не зміг потрапити на сайт, сервер видавав помилку. Потрапити в адмінку також не вдалося. Вирішив видалити сайт повністю і залити дамп, який я природно зробив. Але в черговий раз я не зміг видалити папки з доповненнями, які я встановлював через адмінку.
Звичайно, можна було звернутися в саппорт хостингу, вони допомогли б вирішити проблему і відновити права, але до хостера в цей день я вже звертався, і звертався з такою ж проблемою і з тим же сайтом. ) Тому вирішив даремно їх не смикати, а знайти рішення сам. Тим більше, я давно десь читав, що в таких випадках, права можна змінити стороннім скриптом.
Почав шукати і щось знайшов. )
Знайшов статтю Рекурсивна зміна прав доступу на PHP з скриптом. Що таке рекурсивна зміна прав, я так і не зрозумів, але вирішив, що це те, що мені і треба. Перевірив. Воно і є. ) Легко змінив права на папки і файли джумли, які я не міг видалити. Після цього я без проблем зміг видалити Joomla, точніше її залишилися компоненти.
Попереднє налаштування і робота скрипта для зміни прав
$ PARENT_DIR - тут пишіть шлях до папки, в якій Ви хочете змінити права. Права змінюватися у всіх підпапок і файлів цієї папки, але у самій папки, права залишаться колишні. Шлях потрібно вказувати абсолютний - /home/login/domen.ru/folder/ (може бути і іншим, залежить від конкретного хостингу).
$ FILE_MODE і $ DIR_MODE - тут пишіть права доступу, які потрібно встановити для файлів і папок відповідно. Якщо вам, як і мені, потрібно просто видалити файли, то ставите права 777. За замовчуванням стоять $ FILE_MODE = 0644; і $ DIR_MODE = 0755. Чи змінюєте на $ FILE_MODE = 0777; і $ DIR_MODE = 0777 ;.
Якщо після запуску скрипта - білий екран, то значить все пройшло успішно :).
У мене білого екрану не було, а вилізло кілька помилок англійською, але права все одно успішно змінилися і я видалив joomla.
Усе. Тепер при чергових експериментах з Joomla, я більше не турбую саппорт свого хостера, якщо у мене не виходить видалити joomla, а сам вирішую проблему за допомогою цього невеликого скрипта.