Mac OS X 10.6 Snow Leopard Server
自社サーバOSに何を使っているかを明かすことは躊躇がありますが、今回はインターネットサーバとして使われる機会が少ないMac OS X 10.6 Snow Leopard Serverを導入してみたので、あえて紹介してみたいと思います。
ただ、ここに紹介する問題はほとんど解決していないし、糸口すら見つかっていません。もし、トラブル解決の参考にこのエントリをご覧頂いている場合、現状ではお役に立てないことをお詫びいたします。逆に「もう解決したよ」という方がいらっしゃったら、ぜひご教示下さい。
【このOSを選んだ理由】
なぜ、今回このサーバを選んだかというと、私自身がお仕事のほとんどをMac OS Xを使って行っていることが一番の理由でした。特に、中小企業向けにWebアプリケーションを作成してホスティングして差し上げる場合に、開発から公開まで、基本的に同じOS上での可動確認が行えることは大きなメリットです。
そして、Mac miniにこのOSを標準で搭載したラインナップが登場したこと、これを丸ごとハウジングするサービスがあること、それが移転前まで使用していたサーバと同じ程度の料金で実現できることも魅力でした。
ICOは株式会社ねこじゃらし様のハウジングサービスを利用させていただいています。私はMac miniを持っていなかったので、ねこじゃらし様経由でサーバを購入し、RAID構成の設定、基本的なグループ構成の設定まで行っていただいたため、かなり楽でした。
ただ、実はOS X Serverを使うのは今回が初めてで、ローカルのOS Xで構築した環境とはアプリケーションの構成も配置も大きく変わりました。ですので、結果的には稼働サーバにCentOSなどのLinux系を選ぶのと大差がなかったです。
ただ、ローカルマシンもOS X Serverに変更するという手もありますので、今後検討してみるつもりです。
【GUIツールでの設定】
DNS/Web/FTP/Mail/LDAP/Firewallなどのアプリケーションの基本的な設定は、Mac OS XのAquaの画面を通して行うことができます。もちろん、WindowsやLinuxにもリモートデスクトップ機能はあるので、同じようにGUIによる設定は可能だと思いますが、それらと比べてどうなのか、ということはわかりません。基本、Linux(主にCentOS)、Windowsはすべて設定ファイルを直接編集してサーバ構築していたので。
Mac OS X Serverのサーバ管理GUIツールはDNS/Firewallなどは設定ファイルの記述ミスをなくす上でとても有用なツールだと思いました。ただ、WebとかFTPとか、もうちょっとオプションの設定ができればいいなあ、と思いました。
心配なのは、設定ファイルを直接編集した場合、それを改めてGUIから変更してきちんと維持できるか、ということです。以前使用していたCentOSのPlesk操作においては何度か泣かされたことがありましたので。
MacにおいてはMacPortsという、CentOSで言えばyumのようなインストールツールが存在しますが、これでOS標準のライブラリを書き換えてしまったあと、OS X側のサーバアップデートを行うと、MacPortsでインストールしたライブラリが無効になることがあるようです。ここはちょっとデリケートですね。
【PHP5.3の問題?】
CentOS 5の標準PHPは5.1系でした。これはこれで「5.2系に変更できないのかなあ」という不満はありました。
もちろん、ソースコードから手動でコンパイルしたり、yumの検索先に有志のサーバを追加するなど、方法がないわけではありません。それでも、5.2系ではどうしても揃わないライブラリがあって、結局5.1系に戻して運用せざるを得なかったという状況でした。
しかし、CentOS 5 + PHP 5.1系は私が使用した限りのオープンソースCMSが快適に、トラブルもなく動くという利点があります。もちろん、自前のアプリケーション(例えばEthna PHPフレームワークで作ったサイト)なども問題なく動作をしていました。
それに対してMac OS X Serverはより新しい技術を利用できます。PHPのバージョンが最新の5.3系だからです。しかし、リリースされて1年ほどのバージョンであり、互換性の問題がいろいろと指摘されています。
当初、弊社サイトはConcrete5/Joomla/Drupal/MODxあたりで構成してみようと考えていました。
Concrete5は認証に用いるcaptcha機能が稼働しなかったことで試用に終わりました。
1) 代表的なCMSが動かない
世界で最も使われているCMSだというJoomlaはインストールすらできませんでした。Ajaxが接続するPHP側のモジュールがPHP5.3では動作していなかったのです。この入力チェックロジックを消してみたらインストールはできたものの、管理画面が動作しない様子でした。
社内(あるいはそれ以前の個人で)作成した自前のアプリケーションであれば移行ガイドに従い修正することが可能になりますが、日常的に使うCMSなどはそれが難しいです。必要なCMSやフレームワークのコミッタとして自らが参加する、ということもいずれはやってみたいですが、現在の実力ではちょっと難しい感があります。
【追記 2010/09/08】
MODx Revolution 2.0 日本語版のインストールを試みました。途中まではインストール画面が進みますが、画面が真っ白になって終了。残念ながら標準状態ではインストール不可のようです。
2) PHPからのFTPディレクトリの作成がうまく行かない
現状、CMSとしてブログソフトのWordPress 3.0およびMODx Evolutionを使ってサイトを運用しています。WordPressは管理上非常に便利な「プラグインの自動更新」「テーマの自動更新」が使えません。PHPからのFTPディレクトリの作成ができなくなっているため、いったんディレクトリを消してから再度コピーするという仕組みに対応できないのです。これは現在調査中です。ネットを検索するといくつかの解決方法の提示がありますが、私のところでは解決できませんでした。
FTP SSH経由に変更しようと思いましたが、これはこれで動作しません。libssh2に加え、
$ sudo pecl install ssh2 “channel://…….”
というようにPHP側のSSH2モジュールも必要となるようなのですが、いろいろな組み合わせを試しましたけど、libssh2とPHP側のssh2のバージョンが合わないようでコンパイルに失敗します。
3) 新規オブジェクトの参照受け渡しが推奨されなくなった
MODxはプラグインの一部(pieX)が使用しているコードがPHP5.3に対応しておらず、自分でパッチを当てて対応しました。「=& new」という書き方が推奨されなくなったため、「= new」という書き方に置換しただけです。PHPのerror_reportiingの設定でE_DEPRECATEDを除外する方法もあるみたいですが、今後PHP5.3を使っていくことになるためソース修正をとりました。サーバ移転後、ICO / Fitness Club Onlineの開始だけが遅れてしまったのはそういう理由によります。
4) GD(画像作成ライブラリ)の動作制限がある
そして、両方に共通して言えるのがcaptcha機能の問題です。MODxとWordPressのプラグインであるSI-captchaではテキストの作製方法が違うので、同じエラーではありません。
・FreeTypeがサポートされていない
まず、MODxですが、文字列画像を作成する際にimagettfbbox()という関数が見つからない、という深刻なエラーとなります。どうやらFreeTypeという仕組みを実装する必要がありそうですが、Mac OS Xの場合独自にコンパイル実装すると、サーバアップデートなどでモジュールが上書きされる可能性が高く、現在は対応し切れていません。
・GD Fontがドメインによってはロードできない (解決)
中原個人のブログである「ICOの秘密」はcaptchaを稼働させていると、自動入力系のほとんどのスパムを入力段階ではじいてくれていたのですけど、停止させてからはたくさん届いています。しかし不思議なことに、WordPressのcaptchaはこのサイト(http://www.icofit.jp/)では稼働しているのです。ログを見ると、「GD Fontのロードに失敗した」というメッセージが出ています。
【追記 2010/09/03】
最新のSI Captchaのオプション画面から、いくつかの設定を変更してみたところ出るようになりました。
【何より、情報が少ない!】
今回のサーバ構築には以下の書籍を利用しています。
正直この書籍がなかったら、構築は無理だったでしょう。ただ、限られた前提によって書かれるのが書籍ですから、いざ変わったことをしようとしたりすると当然この本の中に情報を見つけることはできません。そこで、ネットであらゆる情報を調べるわけですが、日本語でも英語でも、なかなか情報を見つけることができません。これが現段階での、Mac OS X Server 10.6の一番の弱点でしょうね。Linux系であれば、おそらくこの程度の問題であれば、10分〜2,3時間で解決できると思います。
ほかの仕事をやりながら、ということもありますけど、1ヶ月ほどやってみても各問題が解決できません。
