По просьбам коллег и пользователей решила написать о «ручной» установке G-Drive или сайта на G-Drive...
Даже если ваш сайт на G-Drive не снабжен скриптом установки, установить его несложно. Распакуйте дистрибутив сайта в его основной или корневой каталог. В нем должны появиться в том числе и файлы с расширением .sql
, например site_categories.sql, которые необходимо импортировать в специально созданную для сайта базу данных. Данные для доступа к этой базе данных нужно внести в файл mods/include/dbconfig.php, если находящиеся в нем данные неактуальны. После импорта в базу данных файлы с расширением .sql
в целях безопасности следует удалить.
Условием распаковки дистрибутива в основной каталог сайта является наличие в дистрибутиве каталога docs – корневого каталога сайта. При необходимости каталог docs можно переименовать, например в public_html, потому что сайты на G-Drive не должны зависеть от имени корневого каталога сайта (в крайнем случае нужно будет изменить определение константы наподобие ROOT_PATH).
Если после описанных выше действий при доступе к сайту будет возникать ошибка Web-сервера (здесь и далее предполагается Web-сервер Apache), откройте файл .htaccess, находящийся в корневом каталоге сайта, и вставьте символ # в начало каждой из следующих трех строк, после чего сохраните внесенные изменения (и в дальнейшем не забывайте сохранять изменения):
<IfModule mod_dir.c> DirectorySlash Off </IfModule>
Одной из самых востребованных настроек при создании нового или установке ранее созданного сайта на G-Drive является перенос каталога mods за пределы корневого каталога сайта. Это естественный, простой и надежный метод защиты содержимого каталога mods от прямого доступа извне.
Переместите каталог mods из корневого каталога сайта на один уровень вверх, т.е. разместите его в одном каталоге с корневым каталогом сайта, и измените в основном файле движка определение константы PATH на такое:
define('PATH', dirname(dirname(__FILE__)).'/mods/');
Или на такое:
define('PATH', dirname(__DIR__).'/mods/');
После переноса каталога mods за пределы корневого каталога сайта можно открыть файл .htaccess и вставить символ # в начало следующей строки (или полностью удалить данную строку):
RewriteRule ^mods/ - [NC,F]
Если у сайта отсутствует основной каталог, отличный от его корневого каталога, рекомендуется изменить структуру каталогов, добавив такой каталог. В крайнем случае для группировки каталога mods и корневого каталога сайта добавьте к их именам общий префикс, не забыв его указать в определении константы PATH.
При определенной настройке Web-сервера файл .htaccess тоже можно вынести за пределы корневого каталога сайта, однако для этого может потребоваться его усложнение, например (к шаблонам двух правил добавлен префикс ^docs/
):
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] RewriteRule ^docs/(.*?)/*$ http://%1/$1 [R=301,L] RewriteRule ^docs/(.*?)/+$ /$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.* /index.php
В дистрибутиве G-Drive расположение файлов одновременно соответствует и непрофессиональному, и наиболее профессиональному подходу. Наиболее профессиональный подход, при котором основной файл движка находится за пределами корневого каталога сайта вместе с каталогом mods, предполагает отсутствие или отключение использования файла .htaccess и конфигурирование сайта на уровне основных конфигурационных файлов Web-сервера. Наличие файла .htaccess и отсутствие каталога docs в дистрибутиве G-Drive не должно никого смущать. Его можно распаковывать и в корневой, и в основной каталог сайта (в зависимости от выбранного подхода к расположению файлов).
Для перехвата ошибки «403 Forbidden», возникающей, например, при доступе к сайту по адресам с префиксом
/.ht
, поместите в начало файла .htaccess такую директиву:В результате будет выводиться обычная страница ошибки 404 при условии, что у сайта не существует категория 404 (в терминах G-Drive). Если она существует, укажите в показанной выше директиве вместо адреса
/404
любой другой недействительный адрес.При желании можно организовать и вывод обычной страницы ошибки 403. Для этого создайте специальную категорию, например с идентификатором 403, и прикрепите к ней заголовочный файл следующего содержания:
В заключение укажите в показанной выше директиве адрес созданной категории, например
/403
.Предлагаю уделять больше внимания конфигурациям для других Web-серверов, а то тут люди, не сильно желающие вникать в суть, уже начинают писать «Ваш движок использует Apache». Приходится их переубеждать подобными простыми примерами:
Сюда же можно добавить такой аналог второго правила из .htaccess: