OpenTaskが動かなくなって困った話

投稿者: | 2018年9月5日

うちは私と嫁のタスク管理にOpenTaskを使っています。主に仕事用に。
OpenTaskってなんぞやと言うと、フリーのしょぼいRedmineって感じです。

このOpenTaskをさくらのレンタルサーバで動かしてたんですけど、これがある日突然調子悪くなった。
具体的に言うと、タスクの一覧は見れるけど以下の現象が起きていた。

  • タスクを新規追加しようとするとエラー
  • タスクに添付されている添付ファイルをDLしようとするとエラー
  • タスクのタイトルとか説明は見れるけど、コメントが非表示

これは困った。経理のための添付ファイルとかいっぱいあったし。
ということで、原因調査と復旧に向けて私は動き出しました。

まず、原因について何か思い当たることは無いかなぁーっと考えてみて、影響ありそうなのはブログのSSL対応。
SSL対応するにあたって、同じサーバで動いてるワードプレスにさくらのSSL対応用プラグインを入れたりしました。
そのプラグインがPHPのバージョン上げないと動かなかったので、PHPのバージョンを5.6→7.2に上げた。
同じサーバ内にあるOpenTaskもPHP 7.2で動くようになってしまって、おかしくなってしまったと予想。
調べてみると、OpenTaskは古いPHPでしか動かないという情報を見つけた。どうやら原因はコレで合ってそう。

PHPのバージョンが原因だとして、どうやって対応すればいいのか。
まず、せっかく新しくしたPHPのバージョンをまた古くするのは嫌だ。
色々調べたところ.htaccessに以下の対応を入れることで動くようになるという情報を見つけた。

が、やってみたらエラーになって何も表示されなくなってしまった。
どうやらさくらのレンタルサーバではphp_flag short_open_tagの設定をするとエラーになるとのこと。
ガッデム。

となると、自力でソースコード修正してPHP7.2でも動くようにするか……。
あれでしょ?<?で記述されてるところを<?phpにすればいいんでしょ?
と軽い気持ちでソースコードを眺めながらチョコチョコ修正してみたけど、量が多いしPHPは専門外なのでよくわからん。
やってるうちに動かなくなってしまった。ギブアップ。

最終的に行き着いた解決方法が.htaccessでPHPのバージョンを指定するという方法。そんなこと出来るのね。
やり方はまず.htaccessに以下を追加。

.htaccessと同じ階層にphp.cgiというファイルを作って、パーミッションを755にして、以下を記述。

これでサーバの設定がPHP 7.2になっていても、OpenTaskは5.6で動くようになる。
動作確認してみたら、見事復活!以前のように問題なく動作するようになっていました。
さくらのレンタルサーバではPHP 5.6のサポートが2018年12月に終了予定ですけど、使うのはしばらく大丈夫だと思われます。
今でもPHP 4.4とか使うことは可能ですからね。

いやー、解決して良かった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*