Клонирование Софта

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

Наверняка многие некоторые сталкивались с проблемой дупликации софта на своём сервере. Так, например, если кому-либо вдруг надо завести второй вики, или, скажем третий форум, или десятую гостевую книгу, ну, в общем — что душе угодно в более чем одном варианте, то, обычно, этот кто-либо просто заливал на сервер вторую копию какого-либо «движка» и радовался жизни. Проблемы, однако, начинали стучаться в дверь, когда наступало злачное время апдейта софта, ибо обновлять приходилось более чем одну установку какой-либо прогги.

Порой приятно быть очень ленивым человеком, ибо меня подобная ситуация в корне не устраивала, а посему в поисках оптимизации я довольно быстро наткнулся на вполне простое и элегантное решение: всё что требуется — это динамично создавать файл конфигурации софта основываясь на каком-либо стороннем факторе, в динамичных же файлах можно указывать доступ к разным СУБД, чтобы тянуть нужную инфу. Так, например, проекты [ » ] wiki.inses.ru и [ » ] wiki.essentialmind.com работают на одной кодовой основе.

Сегодня же на одну кодовую основу установил два совершенно разных форума: [ » ] forum.essentialmind.com и [ » ] forum.inses.ru. Как это было сделано? Нет ничего проще:

  1. Закачал файлы на сервер в папку, на которую указывает домен forum.essentialmind.com и провёл процесс установки.
  2. Переименовал свежий файл config.php в config_temp.php
  3. Создал для сервера forum.essentialmind.com alias forum.inses.ru
  4. Запустил инсталлятор с домена forum.inses.ru и провёл установку в другую СУБД
  5. Отредактировал config.php (см. пример)

Вот то, что там было:


<?

// phpBB 2.x auto-generated config file
// Do not change anything in this file!
    $dbms = 'mysql';

    $dbhost = 'localhost';
    $dbname = 'database';
    $dbuser = 'user';
    $dbpasswd = 'password';

    $table_prefix = 'phpbb2_';

define('PHPBB_INSTALLED', true);

?>

А вот, что стало:


<?php

// phpBB 2.x auto-generated config file
// Do not change anything in this file!
if($_SERVER['HTTP_HOST'] == "forum.inses.ru"){
    $dbms = 'mysql';

    $dbhost = 'localhost';
    $dbname = 'database';
    $dbuser = 'user';
    $dbpasswd = 'password';

    $table_prefix = 'phpbb2_';
}else{
    $dbms = 'mysql';

    $dbhost = 'localhost';
    $dbname = 'database';
    $dbuser = 'user';
    $dbpasswd = 'password';

    $table_prefix = 'phpbb1_';
}

define('PHPBB_INSTALLED', true);

?>

Теперь царит щастя у меня на сервере, ибо на одной софтверной основе работает аж два форума. Между прочим, на одном вики движке у меня на данный момент «заведено» аж четыре разных ваки.

Top

Слова: coding, internet, php

Комментарии Отключены