Установка и настройка Pico CMS
Pico устанавливается через Composer либо загрузкой готового архива. Требования минимальны: PHP 7.0+ (рекомендуется 8.0+), расширения mbstring и dom. База данных не нужна.
Установка через Composer
composer create-project picocms/pico-composer /var/www/mysite
cd /var/www/mysite
Установка из архива
curl -L https://github.com/picocms/Pico/releases/latest/download/pico-release-v3.0.0.zip -o pico.zip
unzip pico.zip -d /var/www/mysite
Nginx-конфигурация
server {
listen 80;
server_name mysite.com;
root /var/www/mysite;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# Закрыть служебные директории
location ~ ^/(config|content|lib|vendor|\.git) {
deny all;
return 404;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Apache (.htaccess)
Pico поставляется с готовым .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
# Защита контентных директорий
<FilesMatch "\.(md|yml|yaml|twig)$">
Order allow,deny
Deny from all
</FilesMatch>
Конфигурация config/config.yml
site_title: Мой Сайт
base_url: ~ # автоопределение; задать явно при проблемах
theme: my-theme
twig_config:
autoescape: false
cache: false # включить в продакшене: 'cache/twig'
debug: false
content_dir: content/
content_ext: .md
date_format: 'd.m.Y'
timezone: 'Europe/Minsk'
locale: ru_RU.UTF-8
rewrite_url: true # ЧПУ через mod_rewrite/Nginx
# Мета по умолчанию
meta:
- name: description
- name: author
- name: date
- name: robots
- name: template
# Порядок страниц
pages_order:
by: alpha
asc: true
# Плагины
PicoFeed:
enabled: true
PicoSitemapPlugin:
enabled: true
Установка плагинов
Плагины располагаются в plugins/. Установка вручную:
# Плагин для генерации sitemap
cd /var/www/mysite/plugins
git clone https://github.com/picocms/pico-plugin-sitemap.git PicoSitemap
# Или через composer если плагин опубликован
composer require picocms/pico-plugin-sitemap
Pico автоматически подключает все плагины из plugins/, где есть файл {PluginName}.php.
Структура контентной директории
content/
index.md # главная
404.md # страница ошибки
_navigation.md # _ в начале = скрытая (не в навигации)
about.md
services/
index.md
web-dev.md
mobile.md
blog/
index.md
%year%/
my-post.md # /blog/2024/my-post
Страницы сортируются по имени файла; для ручной сортировки добавляют числовой префикс: 01.about.md, 02.services.md.
Twig-кэш в продакшене
# config/config.yml
twig_config:
cache: 'cache/twig'
# Очистить кэш при обновлении контента/шаблонов
rm -rf /var/www/mysite/cache/twig/*







