Початкова сторінка

Микола Жарких (Київ)

Персональний сайт

?

Мультисайтінг

Смерека добре озброєна для підтримки кількох сайтів, але для цього треба прийняти певні рішення щодо конфігурації системи і провести їх в життя.

Мультисайтінгом ми будемо називати систему, в якій функціонує кілька [віртуальних] хостів і всі вони обслуговуються одним примірником базового коду Смереки.

Розглянемо деякі варіанти конфігурацій.

Один сайт – один каталог – одна база даних

Ця система є найпростішою в розгортанні : для кожного нового віртуального хоста створюється свій персональний кореневий каталог веб-документів, в нього копіюються інсталяційні файли Смереки, створюється нова БД, виконується її початкове завантаження і у файл customsettings.php записуються параметри БД.

Перевагою такої конфігурації є повна незалежність сайта від інших сайтів системи. Це може бути дуже істотним, коли треба надати замовнику сайта права глобального адміністратора (ці права діють в межах однієї БД Смереки).

Недоліки такої конфігурації – у складності підтримки : 1), оновлення програмного коду Смереки часто передбачає й оновлення метаінформації в БД; це оновлення треба виконувати для кожної БД в системі; 2), персональний інсталяційний каталог Смереки займає біля 1 Мб, і ці файли треба копіювати в кожен персональний каталог сайта (до речі, ці набори файлів теж можуть інколи оновлюватись); 3), персональні каталоги і особливо бази даних є цінними ресурсами, кількість яких в конкретних умовах хостінга обмежена.

Кілька сайтів – кілька каталогів – одна база даних

При такій конфігурації всі сайти з даної групи використовують одну базу даних і, відповідно, глобальні адміністратори мають до них однаковий доступ.

Перевагою такої конфігурації є один примірник метаінформації і можливість адміністрування кількома сайтами з використанням одного облікового запису глобального адміністратора.

Недоліком такої конфігурації є дублювання персональних каталогів, яке обговорювалось вище.

Кілька сайтів – один каталог – одна база даних

При такій конфігурації всі сайти з даної групи використовують одну базу даних і один персональний каталог, чим досягається максимальна ощадність цих цінних ресурсів. Усувається також дублювання стандартних наборів файлів в кількох персональних каталогах.

Недоліком такої конфігурації є необхідність модифікації файлу customsettings.php, який набуває рис опису віртуального хоста в Apache. Приклад такої модифікації може виглядати так:

switch ($_SERVER['HTTP_HOST']) {
	case 'example.com' :
	case 'www.example.com' :
		$HostName = 'example.com';
		$Languages = array('uk', 'ru', 'en');
		$PostProcessing = 'custom/postproc.php';
		break;

	case 'shop.biz' :
	case 'www.shop.biz' :
		$HostName = 'shop.biz';
		$Languages = array('en');
		$PostProcessing = '';
		break;
 /* other sites as need… */
}

В цьому прикладі передбачається мультисайтінг сайтів example.com та shop.biz, які мають різні набори мов та різні налаштування пост-обробки. Звичайно, перелік цих персональних налаштувань можна розширювати.

Певним недоліком такої конфігурації є необхідність дотримання дисципліни у використанні каталогу files в персональному каталозі сайтів, де можуть відбуватись конфлікти імен в стандартних каталогах Смереки (таких, як files/css).

Недоліком є також можливість кожному сайту з сімейства звертатись (в HTML коді своїх сторінок) до будь-якого файла, в тому числі «чужого» – це автоматично випливає з використання спільного кореневого каталогу документів сайта.