プログラマのつれづれなるままにプログラマのつれづれなるままに音宮志久が思ったことなどをネタにします。プログラムネタ・数学ネタがメインです。OpenPNEをさくらのレンタルサーバーで正常に運営するのは無理(だろう)OpenPNEをさくらのレンタルサーバーで正常に運営するのは無理(だろう)コメントを残すOpnePNEでちょっとした運営をしようとしているところでの作業でわかったことです。わかったのは、OpenPNEをさくらのレンタルサーバーで運営すると不具合続出で後で困るぞ~と。遊んだり、デザインを試したりする程度ならいいのかもしれませんが、運営レベルだと不可能だと思います。その状態となる理由を順序をつけて説明。追記:現段階なら下記のような問題がなくなっているので大丈夫かもしれません。さくらのレンタルサーバーのMySQLはデータベースエンジンが強制的にMyISAMとなり、InnoDBを使うことができないこれはどうやらさくらの仕様のようです。検索で調べてみましたが、そのように書いているページがいくつも見受けられました。これが前提条件その1です。MyISAMではトランザクションを扱うことができないのでこれが次に響いてくるようです。cascade制約をつけることができないこれはMySQLのMyISAMでテーブルを作ると無理なようです。トランザクションが使えないために、親キーの削除の検出が難しいのでしょう。いうより、もしかしてそもそも外部キーを与えるような処理ができないとか?(これを書いているときには調べていないので)前提条件その2はMySQLのテーブル状態による問題ですね。自前のテスト鯖を使っていたときには全く気がつかなかった現象です。cascade制約があることを前提としているたとえばメンバーの削除処理(退会処理)ですね。メンバーが削除されるときにそのメンバーに関する情報をすべて削除する必要があります。cascade制約により親キー削除とともに一斉に削除してもらうのがいいのです。OpenPNE(私が確認している範囲では3.0以降)では、MySQLのテーブルはすべてInnoDBとして動作する、という前提で動作するようです。これを結合すると得られる結論は、さくらのレンタルサーバーで運営を行おうとするとメンバーの退会処理など一部の削除処理を行うとデータが正常に削除されず、それによる弊害が発生するというものです。ちなみに、メンバーが退会するとその人とお友達になっていた人はもれなくログインできなくなります。(member_relationshipなどに対象ユーザーのデータが残ったままになるため)それ以外の弊害はちゃんと確認はできていませんが、ある意味致命傷な現象なので運営では使用しない方がいい、というものでした。まじめに運営したい場合は、MySQLでInnoDBを使える+ターミナルログインができるレンタルサーバーを借りるか、VPSなどでrootを取得できるサーバーで運営するか、自鯖運営をやってみるか、それくらいですね。最初の条件に当てはまるようなレンタルサーバーが安い値段で存在するかどうかはかなり怪しいですが・・・。追記このような変更がさくらのレンタルサーバーであったので、いまであればOpenPNEを運営することができるかもしれません。これについては実験してみないと何ともいえませんが・・・。コメントをキャンセルメールアドレスが公開されることはありません。気になるプログラムネタや数学ネタがあったら書き込みたいのだが残業が長すぎて眠気が全くとれず体調があまりよくない。過労などでぶっ倒れるかもしれない。あと、さすがに独り身が寂しいのでなんとかしたいと考えてはいるのだが...。アクセスカウンタアクセス数:スポンサーリンクモバイルバージョンに。