QNAPのContainer Stationも…

QNAPをTS-231+にしてから様々なトラブル(バグ)に見舞われていたが、更にQTSの今後の柱になると思われる機能「Container Station」にも大きなバグが潜んでいてマトモに使えない事が判明した。

現在使っているTS-231+にはメールサーバが搭載されておらず、QNAP社からの回答は「Container Stationでメールサーバを自分で作れ」との事だったので、Container Stationを使ってメールサーバを立ち上げたのだが、余りにも問題が多すぎて、使い物にならない事が判明した。

  1. Container Stationで新しいコンテナを作成しても、マトモに動作するイメージが存在しない
    標準でメールサーバ用のイメージは存在しなかったので、素のLinuxから作成しようとしたのですが、どのイメージもマトモに動作しない!何とか唯一、UbuntuのLXCが動作した程度。
  2. メールサーバとして動作させたいので、ポートフォワーディングを設定しようとするが、ポート25をNAS本体のシステム側で掴んで離さないため、ポートフォワーディングの設定ができない
  3. ポートフォワーディングの設定に失敗しても、エラーメッセージなどが一切表示されないので、気がつかない!
  4. 更に作成済みのコンテナに対して、ポートフォワーディング設定の追加・編集などが全くできない!(ポートフォワーディングの設定が一つも存在しないイメージに対して)

ここまで来ると、QNAPのNASを使い続けること自体止めたいが、何とか最低限の動作は確保できているのと、まだ買ったばかりなので、暫く我慢して使い続けるつもりですが、次に新しいNASを購入する時にQNAPと言う選択肢は無いな。

Share

QNAPのPHPに致命的なバグ

TS-231+に交換してから2ヶ月あまり、やっとContainer Stationを使ってLXC/Dockerの設定を行う事が出来た。

Container Stationの問題か、私の使い方の問題か、分からないが、コンテナの作成などに少し戸惑いながらも、何とかメールサーバをQNAP上で動かす事に成功した。

と喜んでいたら、PHPのmail()関数を使ってメールを送信すると何故か失敗する。

詳しくエラーの内容を確認すると

sh: -t: command not found

という初めて見るエラーが出てるじゃないか…

エラー内容をネットで調べると一般的にはphp.iniのsendmail_pathに間違いがあるって話だが、QNAPのphp.iniには正常な値が設定されている。

それにも関わらずエラーが…って、もう訳が分からない。困ったな〜(泣)

追記>上記バグをQNAP社に問い合わせたところ、

This is already out of our technical support.

という冷たい回答が返ってきた。自社製品のバグをサポートもしないって最低だね。新しくTS-231+を買ったばかりなのに…もうQNAPの製品を買うは止めようかな~

とは言え、TS-231+は買ったばかりなので、何とか使えるようにしないと…困るんだけどな~

追記2>QNAP社はこのバグを修正する気が全くないようなので、PHPのプログラム側でmail()関数を使わないように修正する事で、このバグを回避するようにしました。

Share

QNAPのMySQLの設定値

自宅で使っているQNAPをTS-220からTS-231+に変更した直後からQNAP上で運用していたOpenPNEで大きな画像が日記に添付できないという問題が発生し続けておりました。

が、それも本日無事に原因を特定・解決することが出来ました。

その問題の原因は、なんと、MySQLの設定(my.cnf)のmax_allowed_packetの値が非常に小さな値に設定されていると言うものでした。

MySQLの本来のデフォルト値は16Mのはずが、何故かTS-231+では設定値が1Mと極端に小さな値になっていたため、大きな画像を添付しても画像をDBにインサートする段階で失敗していた模様。

しかも、OpenPNE側の問題で、DBへのアクセスに失敗してもエラーを一切表示しない&ログにもエラーを出力しないという状態で、原因究明に随分と時間がかかってしまった。

Share

QNAPのその後

QNAPをTS-220から上記機種のTS-231+に変更した事は前回書きましたが、その後更なる問題が発生していて、一向に安定稼働まで持って行けておりません。

まずPHPでのファイルのアップロードが正常に動作していないことが判明。

現在QNAP上で運営しているSNSで日記に添付する画像ファイルのサイズが大きいと、ファイルのアップロードに失敗するという問題が起きていて、しかもphp.iniなどの設定を正しく行ってログを記録しても何もエラーは出力されておらず、原因の特定に至っておりません。

というか、php.iniの初期値が滅茶苦茶。memory_limit128Mなのに対して、upload_max_filesizepost_max_size2047Mと、どう考えてもデタラメな値が設定されていた。

しかも、php.iniの設定内容がapacheの起動スクリプト内で強制的に書き換えられているため、QNAPの設定画面でphp.iniをいくら編集しても反映されないというバグがあり、全く使い物にならない。

更に最近、Container Stationがバージョンアップしたようなのだが、これまたバグがあるようで、幾ら最新版に更新しても「更新が利用できます」の通知が消えないという…

Share

QNAPを上位機種へ

QNAPを使ってあれこれと実験を繰り返していたら、これまで使用してきたTS-220の反応が鈍いと最近感じるようになり始めたので、今回上位機種のTS-231+にちょこっとだけバージョンアップをしました。

事前にネットとかを見てるとQNAPは上位機種への交換やHDDの容量増強などが簡単に出来るって触れ込みだったのだが、今回実際に上位機種への換装作業を行った際に数々のトラブルに見舞われて苦労したので、忘れないように備忘録として残しておこうと思います。

  1. そもそもQNAPのWebサーバのポート番号の初期値が無茶苦茶な設定(外向けHTTPSのポート番号が8081ってあり得ない!)っていうのも影響していると思うが、Webサーバのポート番号を変更して、システム設定の「セキュア接続(HTTPS)のみを使用する」をONにした状態だと、機種変更後の初回起動時に表示される画面へのアクセスに失敗するというバグが存在する。元のTS-220にHDDを入れなおして、設定をOFFに戻すことで回避した。
  2. 上記ポート番号の問題が影響している可能性もあるが、換装後のWebサーバの設定値(apache.conf)が全て初期状態に戻っていた
  3. Tomcatが起動しなくなった。手動で起動しようとしても参照しているJavaのライブラリが見つからないってエラーが出て起動できなかった。とりあえずJREとTomcatを一度削除した上で再インストールすることで解決した。
  4. TS-231+固有?(一部機種?新しい機種?)の問題だが、XMailが動作しない&サポートされないという。問題の原因はSSL関係のライブラリをバージョン番号を含む形でリンクしているっていう初歩的なバグ。代わりになるメールサーバアプリもない。QNAP社に問い合わせるとContainer StationでLXCやDockerを使えって言われた。今後はQPKGは廃止して、LXCやDockerに切り替えていくつもりなのか?
Share

QNAPのSSL化

最近のGoogleは、常時SSL(HTTPS)を推奨していたり、各種サービスなどを利用する際にもHTTPでのアクセスを拒否するなど、この業界に関わっていく限りはSSL(HTTPS)対応は避けて通れないだろうと思う今日この頃。

そして、このサイトの運営にはQNAPのNASをサーバとして利用しているのですが、これが思っていた以上の曲者で単にSSLを設定するだけの作業なのに数日かかってしまうとは思ってもいなかった…

というわけで、せっかく苦労したので忘れないようにQNAPのSSL化の作業手順を備忘録として残しておこうと思います。

今回判明したQNAPのSSL対応の問題点と対処法の一部(対処法の書かれていない問題は今回対処することを諦めたので、対処法を確認していません)

  1. Webの管理画面からLet’s Encrypt中間証明書がアップロードできない。(これは明らかなバグだろ!)
    # cat privkey.pem fullchain.pem > /etc/stunnel/stunnel.pem
    # cp chain.pem /etc/stunnel/uca.pem
  2. SSL化した仮想ホストに中間証明書が設定されない。(実サーバは正しく設定されているので、これも明らかなバグだろ!)
    /etc/config/apache/extra/httpd-ssl-vhosts-user.conf の各仮想ホストの設定に以下の一行を追加する。

    SSLCertificateChainFile "/etc/stunnel/uca.pem"
  3. メールサーバ(XMail)などのサードパーティアプリをApp Centerからインストールしても、システムにインストールされている証明書を参照していない
    # cp privkey.pem ${QPKG_BASE}/.qpkg/XMail_phpxmail/MailRoot/server.key
    # cp fullchain.pem ${QPKG_BASE}/.qpkg/XMail_phpxmail/MailRoot/server.cert
  4. 一部のシステムアプリで証明書の参照先がマスターファイル(stunnel.pemとuca.pem)でなく、バックアップファイル(backup.keyとbackup.pem)になっている。
  5. CA証明書が一つも入っていない。(もうここまで来ると対応するのも面倒になって、放置プレイにすることにして対策するのは止めました)
Share