これは収益をあげる業務ではありませんが、このサイトでも使っている Pretty Permalink Filter を Maven Central Repository にて公開いたしました。
Quercus を使って WordPress を配置する際には、ぜひご利用ください。有償サポートもご相談ください。
これは収益をあげる業務ではありませんが、このサイトでも使っている Pretty Permalink Filter を Maven Central Repository にて公開いたしました。
Quercus を使って WordPress を配置する際には、ぜひご利用ください。有償サポートもご相談ください。
このサイトで稼働させてきた GlassFish 4.0 を新しい 4.1 にアップデートしたら Jenkins が動かなってしまいました。
GlassFish 4.0 は 4.1 のスナップショットより不安定だとか話があったので、Update Tool を使って 4.1 にアップデートして起動したら…動かない…あれ?
そんな訳で、コンフィギュレーションをゼロから作り直したり、必要もないのに (1台でw) クラスターにしていたのをシングル サーバーに変えたりとか、試行錯誤してみた結果、WordPress は復旧したものの Jenkins はどうやっても初期化エラーで動かないという問題が解消できませんでした。クラス ローダーの挙動に影響されてるように見えるんですがねえ。
どうでも良い話ですが、私は個人的に PHP が嫌いなのです。それが Quercus で WordPress を動かしている一つの理由。
それでも WordPress を使う理由は、PHP 以外で書かれた WordPress に匹敵するソフトウェアが見つけられなかったこと。全くどういうわけか、広く使われている Web アプリケーションの多くが PHP で書かれているので避けては通れない。
避けて通れないなら、別の方法 (Quercus) を使ってやろうというのがせめてもの抵抗であるわけです。
Java で書かれた PHP 互換処理系として Quercus というものがあります。PHP で書かれたアプリケーションを Java アプリケーション サーバー上で動作させることができるというものですが、実はこのブログを書いている WordPress も Quercus 上で動かしていたりします。
実のところ WordPress を Quercus で動かすためには、いくつか越えなければいけないハードルがあったわけなので、そのいくつかをここに記しておきます。
最初に気が付くのはやはり文字化けでしょう。これにはいくつか理由が挙げられますが主なものは次の二つです。
最初のものは WEB-INF/php.ini (Quercus の php.ini ファイル) で unicode.semantics = 1 として PHP6 のように Unicode を使うように指定することで回避することができる場合もありますが、PHP6 はキャンセルになった模様ですし、別のところで問題が出る可能性があるのでここでは使いません。代わりに、Java を騙して UTF-8 マルチバイト文字列を ISO-8859-1 だと思わせる方法を取ります。そのために WEB-INF/php.ini ファイルで mbstring.internal_encoding = UTF-8 と指定します。
しかしこれだけでは JDBC ドライバーが勝手に Unicode に変換して MySQL テーブル上で文字化けを誘発しますので、もう一手売っておく必要があります。何をするかというと、MySQL の JDBC クライアントのプロパティで characterEncoding=ISO8859_1 と指定するだけです。
こんなことをすると普通なら逆に文字化けを引き起こしそうなものですが、WordPress の MySQL 特化設計のおかげで、MySQL サーバー側には適切なエンコーディングが設定がされるので、JDBC ドライバーは何も知らずにバイト列を素通してしまって文字化けが回避されるという望ましい結果が得られます。
ほかにも手間取りそうなところはありますが、今回はここまでとします。