Встановлення та налаштування 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/Kyiv'
locale: uk_UA.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/*







