Установка и настройка
Права файлов и каталогов CMS без лишней открытости
Какие каталоги нужны PHP для записи, почему конфигурация закрывается отдельно и как проверять запреты без универсального совета поставить всем файлам 777.
На этой странице
Разделите чтение и запись
Большинство исходников CMS нужны веб-процессу только для чтения. Запись требуется загрузкам, компиляции Smarty и закрытой конфигурации в предусмотренные моменты. Установщик проверяет доступность uploads, compiles и .local, но это не отменяет правил конкретного хостинга.
Нет единственного набора числовых прав, одинаково правильного для всех серверов. Важны владелец файлов, группа, пользователь PHP и режим работы виртуального хоста. Общая запись для всех пользователей сервера обычно не является подходящим исправлением.
Защитите секреты отдельно
Конфигурация базы и секреты модулей находятся в .local. Этот каталог должен быть закрыт HTTP-правилами, а его файлы доступны только необходимому системному пользователю. Резервная копия конфигурации рядом с публичным корнем может раскрыть те же данные, даже если основной PHP-файл исполняется корректно.
Например, успешная загрузка фотографии доказывает право записи в uploads, но ничего не говорит о запрете скачивания config.php.bak. Такие копии вообще не должны находиться в публичной поставке.
Проверка после настройки
От имени CMS загрузите обычное изображение, сохраните объект и проверьте компиляцию страницы. Гостем откройте прямые служебные пути: должен быть отказ. Попытка загрузить исполняемый файл должна отклоняться проверкой типа и правилами сервера.
Если установщик не смог удалить себя, завершённая конфигурация и блокировка защищают повторный запуск, но файл всё равно следует убрать предусмотренным способом. Для коммерческих ZIP используйте отдельное закрытое хранилище вне document root: одних расширений и сложного имени недостаточно.
Продолжить работу
Проверьте последовательность на отдельной копии сайта. Сопоставьте задачу с возможностями ядра. Другой материал этого раздела: Создание администратора при установке CMS.
