PHP製のCMS「pico」の紹介
投稿日:
picoとは
PHP製のCMSで、DBなど利用せずファイルだけでWEBページが作成できます。
公式サイト
ページにはMarkdownを使えるので、Markdownでメモなどを取ることが多い人には
使いやすいCMSなのではないかと思います。
Wordpressと比べてどうか
ページの書きやすさ
Markdownに慣れている人にとっては書きやすいと思いますが
慣れていないライターさんなどを雇っている場合などは向かないと思います。
また、表現がMarkdownの域に絞られるので、直接HTMLを書けたWordpressの方が
描画は自由にできるかもしれません。
picoでもMarkdown内にHTML書けました
構築のしやすさ
基礎構築だけならソースコードを持ってきて終わりなので楽です。
ただし、プラグインを追加するにはテーマファイルに手を入れる必要があったりするので
単純に「インストール」をクリックするだけのWordpressに比べればそこが手間です。
あと、日本語の情報が少ないのも構築する上ではネックになるかもしれません。
管理のしやすさ
『管理画面』が無いので設定は全てソースコード上で行ないます。
なので、非エンジニアが運用するには難しいかと思います。
ですが、DBがないのでバックアップ管理などは楽です。
GitHubのprivateリポジトリが無料で作れるようになったので
全てそこで管理してしまえば良いと思います。
また、管理画面が無いのでセキュリティ的にも強いと思います。
機能面
Wordpressでデフォルトで用意されているタグやカテゴリがpicoには無いので
若干の不便さはあります。
一応プラグインで追加はできますが、やや煩雑です。
また、プラグインやテーマの数でもWordpressの方が勝ります。
picoの導入
プロジェクト作成
まず、composerでプロジェクトを作成します。
※composerが分からない人はこちら
composer create-project picocms/pico-composer pico
生成されたpicoディレクトリをそのままWEBサーバー上に配置すれば
もう既にデフォルトのページが表示されます
デフォルトページにはコンテンツの配置方法などが記載されているので
確認しておくと良いと思います。
URLリライト設定
picoはURLリライトを利用します。
(必須ではないが無いとURLの見た目がカッコ悪いし、SEO的にも良くなさそう)
URLリライトについてはpico内の.htaccess
に記載されています。
.htaccess
はApacheでなければ作動しないので、Nginxの場合は別途設定が必要です。
公式のリライト設定手順
設定ファイル作成
pico/config/config.yml.template
をコピー or リネームして
pico/config/config.yml
を作成してください。
とりあえず初期段階で書き換えるのは以下くらいかと思います。
設定項目 | 設定内容 |
---|---|
site_title | サイトのタイトルに書き換え |
timezone | 日本ならAsia/Tokyo |
※注意
timezoneはデフォルトがUTC
なのでJST
に変更すればいいと思わせつつ
ここはAsia/Tokyo
でないといけません。
config.ymlを配置した時点でデフォルトページは表示されなくなります
後はpico/content配下にmdファイルを作成していけばページが生成されます
主に以下のようにページを作成します
pico/content/index.md
いわゆるインデックスページ
https://your-pico-site.com/ にアクセスした時に表示される
pico/content/404.md
いわゆる404ページ
(作らなくてもデフォルトのページが表示される。カスタマイズしたいなら作る)
pico/content/hogehoge.md (hogehogeは任意)
https://your-pico-site.com/hogehoge にアクセスした時に表示される
デフォルトテーマでは、右上のページ一覧にも表示される
pico/content/fooooo/hogehoge.md (foooooとhogehogeは任意)
https://your-pico-site.com/fooooo/hogehoge にアクセスした時に表示される
デフォルトテーマでは、右上のページ一覧には表示されない
各ページのmdファイル構成は『YAMLヘッダー+コンテンツ』のようにします
例えば以下のようになります
---
title: サンプルページ
summary: これはサンプルページですよ
date: 2019-01-07
draft: false
---
これはサンプルページですよー
YAMLヘッダーについての詳細は公式ページを参照してください。
公式ページのYAMLヘッダー説明
上記のTemplate
には現在のテーマに用意してあるTwigファイル名を指定します
(デフォルトテーマはpico/themes/default
)
例えば、上記例であれば利用するテンプレートはindex.twig
です。
ブログ化する場合はpicoでブログ構築に続きます。