Установка Albireo CMS
Требования к серверу
Albireo CMS рассчитана на обычные хостинги.
- PHP 8.3..8.4. На практике будет работать на 8.1, но это не гарантировано.
- SQLite 3.38 и выше. Лучше использовать 3.48 и выше.
- Поддержка Phar. Это стандартная возможность PHP, но хостеры иногда её отключают.
- Библиотеки mbstring, openssl и т.п. — давно уже базовые возможности PHP.
- Сервер Apache, но можно другой, главное настроить его
.htaccess.
Проверка минимальных требований к Albireo CMS с помощью тестового файла
Сохраните этот код как test-albireo.php и загрузите его на сервер. После этого наберите в браузере вашсайт/test-albireo.php. Он выдаст необходимый отчет.
<?php
/*
File: test-albireo.php
Проверка минимальных требований к Albireo CMS
Загрузите файл на сервер и наберите в браузере вашсайт/test-albireo.php
*/
$phpVersion = PHP_VERSION;
if (version_compare($phpVersion, '8.1.0', '<')) {
echo "❌ PHP ниже 8.1.0 — не поддерживается.<br>";
} elseif (version_compare($phpVersion, '8.3.0', '<')) {
echo "⚠️ PHP $phpVersion работает, но рекомендуется обновить хотя бы до 8.3.<br>";
} else {
echo "✅ PHP $phpVersion<br>";
}
echo class_exists('Phar') ? "✅ Phar доступен<br>" : "❌ Phar недоступен<br>";
echo extension_loaded('gd') ? "✅ Модуль <b>gd</b> доступен<br>" : "❌ Модуль <b>gd</b> не доступен.<br>";
echo extension_loaded('mbstring') ? "✅ Модуль <b>mbstring</b> доступен<br>" : "❌ Модуль <b>mbstring</b> не доступен.<br>";
echo extension_loaded('openssl') ? "✅ Модуль <b>openssl</b> доступен<br>" : "❌ Модуль <b>openssl</b> не доступен.<br>";
echo extension_loaded('exif') ? "✅ Модуль <b>exif</b> доступен<br>" : "⚠️ Модуль <b>exif</b> не доступен.<br>";
echo extension_loaded('zip') ? "✅ Модуль <b>zip</b> доступен<br>" : "⚠️ Модуль <b>zip</b> не доступен.<br>";
echo extension_loaded('pdo_sqlite') ? "✅ Модуль <b>pdo_sqlite</b> доступен<br>" : "❌ Модуль <b>pdo_sqlite</b> не доступен.<br>";
if (in_array('sqlite', PDO::getAvailableDrivers())) {
try {
$pdo = new PDO('sqlite::memory:');
$currentVersion = $pdo->query('SELECT sqlite_version()')->fetchColumn();
if (!version_compare($currentVersion, '3.38.0', '>=')) {
echo "⚠️ Требуется SQLite версии 3.38.0 или выше. Обновите SQLite.<br>";
} else {
echo "✅ Текущая версия SQLite: $currentVersion<br>";
}
} catch (PDOException $e) {
echo "❌ Ошибка подключения к SQLite: " . $e->getMessage();
}
} else {
echo "❌ SQLite не поддерживается на этом сервере.<br>";
}
# end of file
Загрузочные zip-архивы
Lite-версия состоит из одного zip-архива (примерно 25Мб). Ссылки на загрузку Albireo CMS Lite публикуются в телеграмм-канале maxsite . Полная версия высылается индивидуально для каждого клиента через телеграмм сразу после оплаты.
Полная версия Albireo CMS состоит из нескольких zip-файлов:
-
albireo-cms_X.zip(9Мб), который содержит каталогwebsiteс полным шаблоном, -
домен_X.zip(200Кб), который содержит каталогsystemс персональным ключом лицензии, -
demo.zip(9Мб) — демо-данные, которые нужно распаковать вwebsite/pages. -
landings.zip(56Мб) — дополнительные лендинги, которые нужно распаковать вwebsite/pages.
Такое разделение обусловлено тем, что демо-данные и лендинги обновляются редко и нет смысла их заново загружать при обновлении Albireo CMS.
Для рабочего сайта можно убрать все демо-данные и примеры изображений.
Установка
Для установки Albireo CMS достаточно загрузить файлы из архивов на свой сервер.
Albireo CMS состоит из:
📁 system/ 📁 website/ 📝 index.php 📝 license.md 📝 zip.php
- Каталог
systemхранит системные файлы ядра, а также файл лицензии. Не нужно ничего в нём менять! - Каталог
website— хранит все файлы вашего сайта. Это ваш рабочий каталог. - Файл
index.php— это входящий файл вашего сайта. - Файл
license.md— лицензия Albireo CMS. - Файл
zip.php— скрипт, с помощью которого можно сделать бэкап вашего сайта (инструкция внутри).
После загрузки файлов на сервер, наберите в браузере ваш-сайт/index.php (именно с index.php!). В основном каталоге должен появится файл .htaccess, который отвечает за организацию адресов ЧПУ («человеко понятный УРЛ»). Если файл не появился или возникли какие-то сложности, то файл можно создать вручную на основе каркаса: system/install/htaccess.txt.
Точно также будет автоматически создан файл robots.txt (если его нет).Если уже есть .htaccess, то система его не будет менять — вам нужно будет переименовать старый .htaccess, потом зайти на сайт и система создаст новый .htaccess.
На некоторых хостингах файл .htaccess также служит для указания версии PHP. В этом случае вам лучше вначале создать .htaccess согласно правил хостинга, а потом добавить в него ниже код из system/install/htaccess.txt.
Если вы используете не сервер Apache, а какой-то другой, то нужно чтобы сервер все обращение отправлял на корневойindex.php. Используйтеsystem/install/htaccess.txtв качестве образца.
500 ошибка
Если сервер выдаёт 500 ошибку, то с 99% вероятностью можно сказать, что дело в .htaccess. Albireo CMS рассчитана на самые распространённые хостинги, где указанные команды работают без проблем. Но если на сервере какие-то особые настройки, то что-то в .htaccess может не работать на вашем сервере. Поэтому нужно обратиться либо к разделу помощи хостера, либо посмотреть логи сервера, где будет указана ошибка.
Например (очень) старые хостинги не поддерживают Options +SymLinksIfOwnerMatch. Вместо неё нужно использовать Options +FollowSymLinks. Этот код уже есть в .htaccess в закомментированном виде.
Также некоторые хостинги указывают версию PHP в .htaccess:
AddHandler application/x-httpd-php83 .inc .php .php4 .php3 .php5 .phtml .phps # phpvs v83
Эта строчка также есть в файле, но лучше свериться с документацией хостинга.
Изменение рабочего каталога сайта
Вы можете изменить имя каталога сайта с website на любое другое, например my. Для этого просто переименуйте website, а потом укажите его в корневом index.php в строчке:
// имя каталога web-сайта
define('FRONT_NAME', 'website');
на
// имя каталога web-сайта
define('FRONT_NAME', 'my');
Каталог основного сайта должен иметь имя, которое не будет использоваться в адресах страниц сайта, потому что для посетителя это одно и тоже, а для сервера это уже реальный каталог.
Мультисайтинг. Создание «подсайтов»
Например ваш сайт mysite.com. Когда происходит обращение по этому адресу, то система автоматически подключит сайт, указанный в FRONT_NAME (по умолчанию это website). Если вам нужен ещё один сайт, например mysite.com/blog, то вам нужно сделать копию каталога website как каталог blog. Больше ничего нигде указывать не нужно.
При первом обращении к mysite.com/blog в нём появится файл .htaccess, как и в корне сайта, только будет уже учитываться путь к blog.
Каталоги сайтов полностью изолированы друг от друга, но используют общее ядро системы.
Если вы используете несколько сайтов на одном ядре, то возможно вам будет удобней использовать и общий каталог шаблонов. По умолчанию он расположен в website/templates. Вы можете вынести его в корень своего сайта, а потом создать файл base-constants.php в каталоге каждого своего сайта, например website/base-constants.php, blog/base-constants.php и т.п.
<?php
// каталог шаблонов на уровень выше
define('TEMPLATES_DIR', LEVEL_UP_DIR . 'templates' . DIRECTORY_SEPARATOR);
define('TEMPLATES_URL', LEVEL_UP_URL . 'templates/');
# end of file
Избегайте смешивания протоколов http и https
Albireo CMS автоматически определяет протокол сайта и может работать с любым из них. Но учитывайте, что одновременная работа и по http и по https может вызывать некоторые проблемы. На уровне системы адреса хранятся в полном виде, включая протокол. Если смешать протоколы, то часть данных окажется недоступна, поскольку это будут другие адреса страниц. Например это может привести к неотображению части комментариев, хотя все они будут находиться в базе.
Чтобы исключить подобные ситуации, лучше сделать автоматический редирект с http-адресов на https. В файле .htaccess уже есть готовый для этого код (нужно убрать комментарии в исходном файле):
# for 301-redirect http to https
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]
После этого желательно обновить кэш сайта. Для этого вы можете изменить файл любой страницы — Albireo CMS автоматически перестроит кэш. Или вручную удалить файл website/service/storage/filesinfo.sqlite.