S2Документация → Настройка

Настройка

config.php

Этот файл располагается в папке вместе с другими файлами S2. В нем хранятся параметры, указанные при установке движка. Для тонкой настройки движка, описанной ниже, файл config.php нужно редактировать вручную.

Пример содержимого config.php сразу после установки:

<?php

$db_type = 'mysqli';
$db_host = 'localhost';
$db_name = 's2';
$db_username = 'root';
$db_password = '';
$db_prefix = 'foo_';
$p_connect = false;

define('S2_BASE_URL', 'http://example.com');
define('S2_PATH', '');
define('S2_URL_PREFIX', '');

$s2_cookie_name = 's2_cookie_209796818';

Соединение с базой данных

Задается следующими переменными:

$db_type = 'mysqli';    // Вид базы данных (см. ниже)
$db_host = 'localhost'; // Хост, на котором запущен сервер баз данных
$db_name = 's2';        // Название базы данных, в которой лежат таблицы S2
$db_username = 'root';  // Имя пользователя базы данных
$db_password = '';      // Пароль пользователя базы данных
$db_prefix = 'foo_';    // Префикс таблиц S2
$p_connect = false;

$db_type определяет, к какой базе данных будет выполнено подключение. Возможные значения:

  • mysqli, mysql, mysqli_innodb, mysql_innodb (разные способы подключения к MySQL и виды таблиц, если не знаете, что выбрать, пробуйте разные варианты в порядке перечисления);
  • pgsql (PostgreSQL);
  • pdo_sqlite (SQLite 3 через PDO).

URL сайта

Во время установки уточняется значение параметра S2_BASE_URL, которое содержит полный адрес сайта без завершающего слеша. S2_PATH содержит тот же адрес без протокола и домена.

Если S2 устанавливается в корень сайта, значения параметров должны быть такими:

define('S2_BASE_URL', 'http://example.com');
define('S2_PATH', '');

Если S2 устанавливается в папку, например, subdir, значения будут следующими:

define('S2_BASE_URL', 'http://example.com/subdir');
define('S2_PATH', '/subdir');

Перенаправление URL

Чтобы использовать красивые URL, в веб-сервере нужно настроить перенаправление запросов на файл index.php.

Apache

Если веб-сервер — Apache с включенным mod_rewrite, перенаправление заработает автоматически благодаря файлу .htaccess в дистрибутиве:

# BEGIN S2


# MultiViews interfers with proper rewriting
Options +FollowSymlinks -MultiViews

RewriteEngine On

# Uncomment and properly set the RewriteBase if the rewrite rules are not working properly
#RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]


# END S2

Nginx

Веб-сервер nginx можно настраивать так:

server {
        listen       80;
        server_name  www.example.com;
        access_log   /var/www/example.com/logs/access.log;
        error_log    /var/www/example.com/logs/error.log error;
        return       301    http://example.com$request_uri;
}

server {
        listen       80;
        server_name  example.com;

        root         /var/www/example.com/public_html;
        access_log   /var/www/example.com/logs/access.log;
        error_log    /var/www/example.com/logs/error.log error;

        location / {
                index           index.html index.php;
                try_files       $uri $uri/ /index.php?$args;
        }

        location ^~ /_pictures {
                index           index.html;
#                expires         1d;
        }

        location ~ \.php$ {
                try_files       $uri /index.php?$args;
                include         /etc/nginx/fastcgi_params;
                fastcgi_pass    127.0.0.1:9000;
        }

}

Настройка перенаправления в движке

Чтобы движок генерировал ссылки, соответствующие настроенной в веб-сервере схеме URL, используется константа S2_URL_PREFIX. Если перенаправление на index.php настроено (например, одним из указанных выше способов), тогда S2_URL_PREFIX должно быть пустым, и ссылки будут иметь самый короткий вид:

define('S2_URL_PREFIX', '');             // http://example.com/section1/page1

Другие возможные значения S2_URL_PREFIX и примеры получающихся URL:

// Работает, если файл index.php ищется при обращении к папке
define('S2_URL_PREFIX', '/?');           // http://example.com/?/section1/page1

// Работает в некоторых конфигурациях Apache и Nginx
define('S2_URL_PREFIX', '/index.php');   // http://example.com/index.php/section1/page1

// Должно работать везде
define('S2_URL_PREFIX', '/index.php?');  // http://example.com/index.php?/section1/page1

Во время установки проверяются перечисленные выше значения S2_URL_PREFIX и выбирается первое заработавшее. Если вы настраиваете перенаправления запросов в веб-сервере после установки движка, вероятно, вам придется изменить и S2_URL_PREFIX в файле config.php.

Прочие необязательные параметры

Определения этих констант лучше всего добавлять в файл config.php. Тогда они не будут перезаписываться при обновлении движка.

Настройка папок

define('S2_IMG_DIR', '_pictures'); — переопределяет папку для загрузки картинок и других файлов.

Принудительное шифрование в панели управления

define('S2_FORCE_ADMIN_HTTPS', 1); — включает принудительное переключение на протокол https в панели управления. Эта константа автоматически добавляется при установке, если движку удалось распознать наличие поддержки https. Перед самостоятельным добавлением этой константы убедитесь, что на вашем хостинге поддерживается протокол https.

Отключение расширений

define('S2_DISABLE_HOOKS', 1); — временно отключает все расширения. Нужно в том случае, если установка нерабочего расширения привела к поломке сайта, и это расширение нужно удалить.

Отключение кеша

define('S2_DISABLE_CACHE', 1); — отключает кеш (запись параметров настройки и хуков расширений в папку _cache). Параметр был введен для возможности запуска движка на странных хостингах, где нельзя дать PHP права на запись в папку _cache. Крайне не рекомендуется использовать на нормальных хостингах.

Отладка

define('S2_DEBUG', 1); — включает вывод отладочной информации при ошибках и включает вывод замечаний (notice) в PHP, а также выводит время генерации страницы и количество запросов к базе данных вместо метки <!-- s2_querytime -->.

define('S2_SHOW_QUERIES', 1); — включает вывод текста и длительности выполненных SQL-запросов вместо метки <!-- s2_debug -->.