Настройка
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
Если .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;
rewrite ^ http://example.com$request_uri? permanent;
}
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/ @s2;
}
location ^~ /_pictures {
index index.html;
# expires 1d;
}
location ~ \.php$ {
try_files $uri @s2;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
location @s2 {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param SCRIPT_NAME /index.php;
}
}
Настройка перенаправления в движке
Чтобы движок генерировал ссылки, соответствующие настроенной в 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 (по крайней мере, в определенных конфигурациях)
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); — включает вывод текста и длительности выполненных