【メモ】Vagrant上のTinyTinyRSSでフィード更新に失敗する場合【#np2020】

tt-rss.png


サーバ引っ越しの準備をあれこれ進めつつ、RSSリーダーに関してはもう既に完全に「TinyTinyRSS」に移行してしまっています。ローカルの仮想環境(Vagrant上のCentOS)に「TinyTinyRSS」をインストールし、仮想環境が起動している間にフィードを更新、購読するという感じです。引っ越しを実施するまではユーザーは僕1人で僕がパソコンを立ち上げている時しか利用しないので、これで十分運用出来てしまっています。


で、同じ環境でWordpressも入れてカスタマイズ中なのですが、デフォルトの状態だとWordpressのアップデートが出来ないことがわかりました。Vagrantの共有フォルダおよび共有フォルダ内のファイルは通常「user:vagrant」「group:vagrant」になっているのですが、Wordpressが更新するためにはそれをユーザー「apache」が変更出来るようにしないといけない。一番手っ取り早い方法が、共有フォルダのユーザー/グループを「apache」に変えることだったのでそう変更したんですね。そうしたら「TinyTinyRSS」がフィードを更新出来なくなってログに次のエラーが。

fopen(lock/update.lock): failed to open stream: Permission denied
1. include/functions.php(1027): fopen(lock/update.lock, w)
2. update.php(154): make_lockfile(update.lock)

「TinyTinyRSS」は「update.php」をcronなどで動かしてフィード更新をするんですが、その設定をユーザー「vagrant」のcrontabでしていたんです。今まではlockディレクトリの所有者が「vagrant」だったから問題なかったんですが、それが「apache」に変わってしまったので更新出来なくなったと。

通常のサーバ環境であれば、lockディレクトリの権限を変更すれば解決出来るんですが、vagrantの共有フォルダの権限ってそういうわけにいかないんですよね。個別に変更出来ない。なんとも歯がゆい。



というわけで解決策

「TinyTinyRSS」の「update.php」を管理者権限で動かす

sudo crontab -e

あんまりやりたくないことですけどね……仕方ないです。
あくまでローカルの仮想環境だからやるってことで。


vagrantの共有フォルダの権限設定が面倒だったので一応メモ書き。
なんか解決方法はあるんでしょうけどね。