Настройка
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
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;
}
}
Настройка перенаправления в движке
Чтобы движок генерировал ссылки, соответствующие настроенной в 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, а также выводит время генерации страницы и количество запросов к базе данных вместо метки
define('S2_SHOW_QUERIES', 1);
— включает вывод текста и длительности выполненных