Shaarliって?

マイクロかつシンプルなブックマークサービス。APIが一通り揃っているのでサードパーティ製の拡張機能やアプリからバンバン突っ込めてお便利。GitHub

インストール

Guideに沿って。

1
2
3
4
5
6
$ mkdir -p /path/to/shaarli && cd /path/to/shaarli/
$ git clone -b latest https://github.com/shaarli/Shaarli.git .
$ composer install --no-dev --prefer-dist
$ make build_frontend
$ make translate
$ make htmldoc

と書いてある。まず普通にクローン。

This is どうでもいい話
この前のOSC大阪でMastodonブースの番をしていたら外国の方が来て「MastodonはInstallすれば誰でも使えますか?」みたいなことを聞かれたので「既存のサーバーに入ってもいいし、GitHubからまずクローンして云々」って返したら「Oh, clone!!C-L-O-N-E!!」って感じだった。甘美な響きなのだろうか。

composerとあるしPHPだろうが、入れようと思ったマシンにはPHP 7.2が入ってたものの、composerは入ってなかった。これ見て適当に突っ込んだ。

composerすると、slim/slim 3.12.3 requires ext-simplexml * -> the requested PHP extension simplexml is missing from your system.って出てきた。あぁ、よくあるxmlがないやつねぇと思って適当にphp7.2-xmlをaptしてOK。

もう一度やってみると次はFailed to download phpunit/php-text-template from dist: The zip extension and unzip command are both missing, skipping.って出てきた。zipunzipくらい最初から入ってるもんかと思ってた。これもzip unzipをaptしてOK。

makeかー。まぁええわと思ってやったらyarnが無ぇって言われた。腹立つ。このマシンnpmしか入ってない。

npm i yarnで世界平和を目指すか〜と思ったけど、これも嫌なので、もうnpmだけでなんとかしようと思った。よくない。

npm iする。package.json覗いたらscriptsにはbuildwatchしかなかったのでnpm run build

あとの2つのmakeもやってみたけど通らなかった。でもまぁこれでヨシ!

Nginxの設定を書いて、ディレクトリ全体に実行権限を与えた。

そしたら最初にユーザー名とパス設定しろみたいなやつが出てきた。そして設定を書いて、ボタンを押したらいきなり!404。

/loginもindex.phpのargとしないといけないようだ。ということでまたドキュメントを見ると、いろいろ書いてあるが、そこにあったtry_filesを使うやつが上手く行かなかった。
いろいろ研究すると、locationブロック内で、rootがshaarliを指しているという自分の状態だと

try_files $uri /index.php$is_args$args;
で上手く行った。

結局、こんな感じのconfになった。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 443 ssl http2;
server_name shaarli.example.com;
### ココらへんにHTTPSの設定を入れる。俺はHTTPSなんて要らねぇっていう人は上のlistenを80にして末永くお幸せに。
location ~ \.php(?:$|/) {
root /var/www/html/shaarli;
index index.html index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS off;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
try_files $uri /index.php$is_args$args;
}
location / {
root /var/www/html/shaarli;
index index.html index.php;
try_files $uri /index.php$is_args$args;
}

}

プラグイン

これで終わったが、ShaarliにはMastodonプラグインがあるらしい。

Community & Related softwareには、たしかにShaarli2Mastodonがある。

plugins内でgit clone https://github.com/kalvn/shaarli2mastodonすればいいらしい。

そしてShaarliにログインしてTools内のPlugin administrationで、下のPlugin configurationを埋めた後チェックボックスをオンにすればOK。

以上。寝ながら書くとどんどん一文が短くなるのね…