Установка 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

Комментарии: 3

  1. Юлия

    Для перехвата ошибки «403 Forbidden», возникающей, например, при доступе к сайту по адресам с префиксом /.ht, поместите в начало файла .htaccess такую директиву:

    ErrorDocument 403 /404
    

    В результате будет выводиться обычная страница ошибки 404 при условии, что у сайта не существует категория 404 (в терминах G-Drive). Если она существует, укажите в показанной выше директиве вместо адреса /404 любой другой недействительный адрес.

    При желании можно организовать и вывод обычной страницы ошибки 403. Для этого создайте специальную категорию, например с идентификатором 403, и прикрепите к ней заголовочный файл следующего содержания:

    <?php error(403);
    

    В заключение укажите в показанной выше директиве адрес созданной категории, например /403.

  2. Админ

    Предлагаю уделять больше внимания конфигурациям для других Web-серверов, а то тут люди, не сильно желающие вникать в суть, уже начинают писать «Ваш движок использует Apache». Приходится их переубеждать подобными простыми примерами:

        root        /var/www/gdrive/docs;
        try_files   $uri @php;
    
        location @php {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param  SCRIPT_FILENAME  /var/www/gdrive/index.php;
            include        fastcgi_params;
        }
    
  3. Юлия

    Сюда же можно добавить такой аналог второго правила из .htaccess:

    rewrite ^(/.*?)/+$ $1 permanent;
    

Отправить комментарий

Ваш адрес E-mail не будет опубликован.