Установка Blox CMS

На веб-сервере должны быть уже установлены MySQL, Apache, PHP. Будет также полезной система управления базами данных MySQL, например: phpMyAdmin. Если вы не собираетесь разбираться с вышеперечисленными программами, проще разместить Blox CMS на сервере хостинговой компании (как правило, там все эти программы уже установлены).

  1. Разархируйте файл дистрибутива на локальном компьютере. В дистрибутиве должны находится следующие папки и файлы:
    BLOX/ Папка с файлами системы управления сайтом
    templates/ Папка для шаблонов (tpl), а также всех связанных с ними файлов
    (tdd, css, js, tplh, tddh, tuh, jpg, gif)
    .htaccess Файл дополнительной конфигурации веб-сервера Apache
    config.php Файл дополнительной пользовательской конфигурации сайта (не обязателен)
    index.php Главный файл сайта (с основными конфигурационными переменными)
    robots.txt Файл с директивами для поисковых роботов (не обязателен)

    Собственно файлы системы управления находится в папке BLOX, которую при многосайтовом использовании можно переименовать (например в BLOX.12.0.53) и поместить в другом месте, указав путь к ней, о чем написано ниже. Все папки и файлы, кроме папки BLOX, относятся к конретному сайту, и в дальнейшем, говоря о файлах сайта, будем иметь в виду их. После инсталяции появятся и другие папки.

  2. Закачайте все папки и файлы на сервер в папку сайта.
    Для закачки файлов можно воспользоваться бесплатным FTP-клиентом FileZilla.

    Доступ к папке сайта и путь вы должны получить от хостинговой компании. Например, для сайта www.aaa.com папка может быть следующей: /home/aaa/www/ (для Unix систем).

    Разворачивать сайт можно не только в папке, выделенной вам хостинговой компанией. В более глубокой папке (например, /home/aaa/www/products/) можно создать подсайт, как новый сайт, закачав туда таким же образом папки и файлы сайта, и сконфигурировав файл ./index.php. В этом случае адрес сайта будет выглядеть так: www.aaa.com/products/

     

  3. Сделайте необходимую конфигурацию сайта в файле index.php
    (скачав этот файл обратно, или отредактировав его заранее).

    index.php
    <?php
    
    /** 
     * Конфигурация сайта
     *
     * Параметры базы данных MySQL (узнать у хостинговой компании)
     * При создании базы данных выбирайте имя сличения (collation), которое начинается на
     * "utf_" и заканчивается на "_ci", то есть, регистронезависимое (case-insensitive).
     * Для русского языка своего сличения пока нет, поэтому выбирайте "utf8_general_ci".
     */
    $dbhost = 'localhost'; # Хост базы данных (БД)
    $dbname = 'aaa';     # Имя БД
    $dbuser = 'root';     # Имя пользователя БД (часто совпадает с именем БД)
    $dbpass = ''; # Пароль пользователя БД
    
    /** 
     * Префикс имен таблиц в БД
     * Чтобы в одной БД можно было создавать таблицы нескольких сайтов
     */
    $prefix = '';
    
    /**
     * Язык сайта.
     * По умолчанию 'ru'.
     * Другие примеры: ru-RU, en, en-US, en-GB, fr, fr-CA. 
     * $lang = 'ru'; 
     */
     
    /**
     * Язык интерфейса CMS.
     * По умолчанию - как язык сайта.
     * $cmslang = 'en'; 
     */
    
    /**
     * Тип шаблонизатора (движка шаблонов). 
     * Возможные значения: PHP, Smarty, Twig. По умолчанию: PHP. 
     * $templater = 'Smarty';
     */
    
    /**
     * Включить серверное кэширование страниц.
     * $caching = true;
     */
    
    /**
     * Отключить браузерное кэширование файлов. 
     * Используется обычно во время отладки сайта.
     * $nocache = true;
     */
    
    /** 
     * Производить транслитерация ЧПУ на латиницу.
     * По умолчанию ЧПУ будет на языке сайта (например, на русском).
     * Если доменное имя сайта на латинице, ЧПУ рекомендуется делать также на латинице.
     * Чтобы преобразование происходило автоматически, нужно к ссылкам применять метод Router::convert().
     * Вручную алиасы вводятся в панели управления > Страница > Настройки страницы
     */
    $transliterate = true;
    
    /**
     * Изменение формата вывода временны́х данных.
     * Формат задается в том же стандарте, как для php-функции date().
     * Касается только типов данных: datetime, date, time,
       объявляемых в массиве $types файлов .tdd.   
     * По умолчанию: 'Y-m-d H:i:s'.
     * $dateTimeFormat = 'd.m.Y H:i';
     */
    
    /**
     * Вести журнал одинаковых SQL запросов 
     * с целью переделки таких запросов в подготавливаемые выражения.
     * Логирование будет производиться в стандартный файл ошибок "---bloxErrors.log".
     * $logRepeatedSqlQueries = true;
     */
    
    /** 
     * Отмена или изменение базового URL <base href="">  
     * $baseurl = false;
     */
     
    /** 
     * Путь к папке BLOX.
     * Папка BLOX должна находиться в корневой папке вашего сайта.
     */
    $bloxdir = __DIR__.'/BLOX'; 
    
    /**
     * Путь к папке BLOX.
     * Когда вы хотите использовать Blox CMS, установленный на другом сайте того же сервера.
     * Абсолютный путь к папке BLOX:
     * $bloxdir = 'D:/sites/site2.ru/BLOX';
     * Абсолютный URL папки BLOX:
     * $bloxurl = "http://site2.ru/BLOX";
     */
    
    /**
     * Путь к папке templates.
     * Когда вы хотите использовать шаблоны другого сайта. 
     * Абсолютный путь к папке templates:
     * $templatesdir = 'D:/sites/site2.ru/templates';
     * Абсолютный URL папки templates:
     * $templatesurl = 'http://site2.ru/templates';
     */
    
    include $bloxdir.'/go.php';
    
    ?>
    • Префикс имен таблиц ($prefix) используется для того, чтобы на одной базе данных можно было разместить данные нескольких сайтов. Префикс рекомендуется использовать, даже если для каждого сайта выделена отдельная база данных. Это упростит, в случае чего, перенос данных.
    • Серверное кэширование ($caching) - это хранение однажды сгенерированных страниц в отдельных html-файлах. Это потребует доп. дискового пространства. Однако, при большой нагрузке на сервер, кэширование позволяет ускорить вывод страниц.

      Кэширование страниц производится после редактирования какого-либо блока страницы и первого посещения страницы незарегистрированным пользователем. Кэшированные страницы предъявляются только для незарегистрированных пользователей.

      Страницы, содержимое которых может изменяться из-за различных специальных запросов (поиск, сортировка, выборка по частям и т.д.), желательно отключить от кэширования, иначе произойдет обратный эффект, то есть страницы будут открываться дольше, чем без кэширования, так как система управления будет постоянно заниматься кэшированием всех разновидностей страниц. К тому же, отведенное под сайт дисковое пространство будет быстро заполнено. Отключить кэширование можно с помощью параметра $params['nocaching'] в дескрипторе шаблона.

  4. Запустите из браузера скрипт http://www.aaa.com/?install для того, чтобы создать таблицы в базе данных.
  5. Система управления сайтом Blox CMS установлена, однако сайта, как такового, еще нет. Конкретное представление сайта задается с помощью шаблонов, находящихся в папке templates. В эту папку закачиваются файлы шаблонов (.tpl) и дескрипторы шаблонов (.tdd). Туда же закачиваются, если нужно, другие файлы, а именно: файлы стиля (.css), картинки стиля (.jpg, .gif), файлы JavaScript (.js) и предобработчики (.tplh, .tddh и .tuh). Для первоначального ознакомления с Blox CMS в дистрибутив по умолчанию помещен простой комплект шаблонов. О том, как разработать свои шаблоны, читайте в разделе "Для разработчика сайта".
  6. В следующей статье вы можете посмотреть урок сборки простого сайта на основе шаблонов, поставляемых вместе с дистрибутивом Blox CMS.

Примечания

  • Безопасность конфигурационных данных

    Обязательно убедитесь в наличии следующего кода в файле .htaccess

    .htaccess

    <Files "*.php">
        Order deny, allow
        Deny from all
    </Files>
    

  • Конфигурационный файл conf.php

    Для опеспечения большей безопасности все настройки из файла index.php (кроме $bloxdir и $bloxurl) можно поместить в отдельный файл conf.php, который необходимо положить не в корневую папку сайта, а на уровень выше. Теперь файл index.php будет выглядеть так:

    index.php

    <?php
        $bloxdir = __DIR__.'/BLOX'; // При стандартном пути переменная $bloxurl не нужна
        include $bloxdir.'/go.php';
    ?>
    

    Не путайте приведенный системный конфигурационный файл conf.php с файлом config.php - последний используется для пользовательских настроек.

  • Права доступа к файлам

    Если вы не устанавливали сайт заново, а переносили его, закачав файлы сайта и системы управления на новое место, то нужно проверить атрибут chmod (права доступа) некоторых папок, и, если они отличаются, то изменить их (например, с помощью программы FileZilla).

    Папки системы управленияПапки сайта
    BLOX/style755
    cached755
    datafiles755
    xfiles755
    Если вы устанавливаете сайт на локальный компьютер под Windows, просто уберите галочки в атрибутах папок (Щелкние правой кнопкой мыши на нужной папке > Свойства > Атрибуты).

    Вообще, основное правило следующее: права на все файлы должны быть 644, на папки 755.

  • Принцип нумерации версий Blox CMS

    Принцип нумерации версий строится исходя из действий, которые нужно предпринять для обновления системы управления существующего сайта, построенного на более ранней версии системы. Допустим мы хотим заменить систему управления на более новую версию: BLOX.14.8.153.
    • Если в новой версии по отношению к старой изменена только младшая группа цифр (153), то можно смело заменить файлы системы управления (содержимое папки BLOX) старого сайта на файлы более новой версии.
    • Если изменяется вторая группа цифр (8), то придется немного подредактировать какие-то файлы сайта, как правило шаблоны. При этом старые данные (база данных и файлы в папке datafiles) остаются пригодными. Какие изменения на сайте нужно произвести, чтобы перейти на более новую версию, можно узнать в журнале BLOX/CHANGELOG.txt.
    • Если изменена старшая группа цифр (14), то это означает, что произошли кардинальные перестройки, и данные текущего сайта становятся непригодными для новой версии Blox CMS. Для перехода на новую версию придется запускать специальный скрипт, и, может быть, переделывать шаблоны.

См. также