Nov 01, 2007

Mac OS X(Leopard)とサーバー稼業-いまわかっていること-

 Mac OS X10.5(Leopard)がリリースされました。まだその詳細はよくわかっていませんが、あちこちに大きな変更がなされているようでした。ここでは、Mac OS X10.5(Leopard)のクライアント版をサーバーとして構築する際、必要となりそうな気がついたことを暫定的にまとめておきます。

 *2007年11月7日追記 Entropy PHPのLeopard対応版がリリースになりそうな雰囲気です。


更新履歴

11月2日 Firewall機能のことを追加
11月1日 ログ公開


Web共有機能


 PantherやTigerでは「パーソナルウェブ共有」と呼ばれていたWebページ公開機能が「Web共有」と名前が改められています。また、単に名前が変更になっただけでなく、そのエンジンも大きく変更されています。PantherやTigerはApache1.3.3で構築されていましたが、LeopardではApache2.2.6になっています。Apache2系にシフトしたことで、


  • httpd.confなどの設定ファイル類が/etc/httpdから/etc/apache2に変更
  • Web共有のアクセスログ、エラーログの場所が/var/log/httpdから/var/log/apache2に変更


 となっていることがわかりました。Apache2系にシフトしたことで、操作や設定などはかなり楽になるため、大きなメリットが得られます。

 現在のところ、私のところで起きた問題としては、


  • 古いユーザーのサイトフォルダにアクセスできなくなる
    アップグレードインストールをすると、今まで使っていたユーザーのサイトフォルダで公開していたホームページにアクセスできなくなることがありました。これは/etc/httpd/usersから/etc/apache2/usersにusers.confが移行されていないためでした。私固有の問題なのか、OSのインストーラの不具合なのかはわかりません。これを解決する方法はフォーラムを参照してください。

    LeopardアップブレードインストールでWeb共有に不具合

  • PHP Apache Module for Apache2(いわゆるEntropyPHP)が利用できない
    インストールはできますが、コンパイル時のパスが異なるせいか利用できません。シンボリックリンクでなんとかごまかせそうな雰囲気ですが、無理はしない方がよいような気がします。いずれMarcさんが対応版をリリースされると思いますのでそれまで待つ方がよさそうです。待てない場合は、GDなどのライブラリを装備するにはマニュアルでおこなうか、Port、Finkなどを利用することになると思います。

ということでした。大変魅力的な環境が用意されていますので、移行したいという気がむくむくと湧いてきますが、現在、PantherやTigerで安定して動作している環境の場合は、移行前に使用しているスクリプトなどが動作するか確認してからが良さそうに思えます。



PHP


 PHPのバージョンが5.2.4になっています。php5系になった関係で、動作がうまくいかないスクリプトなどがあると思います。PantherやTigerで利用していたPHPスクリプトを移行するには動作確認が必要になると思います。
 またPHP Apache Module for Apache2(いわゆるEntropyPHP)が利用できないことがわかっています。インストールはできますが、コンパイル時のパスが異なるせいか利用できません。apachectl configtestを実行すると、以下のようなエラーが出ます。

httpd: Syntax error on line 485 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/entropy-php.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Library not loaded: /usr/local/apache2/lib/libexpat.0.dylib?n Referenced from: /usr/local/php5/libphp5.so?n Reason: image not found

シンボリックリンクでなんとかごまかせそうな雰囲気ですが、無理はしない方がよいような気がします。自分でコンパイルした法がよいかもしれません。いずれMarcさんが対応版をリリースされると思いますのでそれまで待つ方がよさそうです。待てない場合は、GDなどのライブラリを装備するにはマニュアルでおこなうか、Port、Finkなどを利用することになると思います。

[わかったこと]MarcさんのところのBBSで、LeopardにEntropyPHPをインストールするための方法がHOTになっています。エラー時の対策の他、Leopard版EntropyPHPがリリースされる段階まで来ているようです。以下のスレッドにダウンロード先のリンクがあります。(071107)
PHP on Mac OS X : Installing on Leopard

MySQL


 いまのところ(2007/11/11)、Leopard対応とかかれているMySQLは公開されていないようです。私の手元の環境では、インストールはTiger版を利用することで、問題なく完了、動作しているようですが、コントロールパネルからの起動、停止がうまくいきません。とりあえず「Automatically Start MySQL Server on Startup」にチェックをつけて再起動するか、コマンドラインから起動を行うかどちらかになりそうです。

 また、アップグレードインストールをした人で、なおかつ、以前に私のサイトのDB_SABA_StartupPackの特にphp4系を利用した場合は、/etcにあるmy.cnfを削除してください。MySQLのパスワード設定がOLD-PASSWORDを利用するようにかかれていますので、php5に移行したLeopardではphpMyAdminなどのソフトウェアからMySQLにアクセスできないことになるかもしれません。


Finder


 私のサイトではFinderの「情報を見る」から「所有者とアクセス権」を表示させ、ここでファイルのアクセス権を変更する操作を頻繁に紹介してきましたが、Leopardの新機能として用意された、「パブリックフォルダ以外も簡単に共有フォルダにできる機能」の関係から、この操作は行えなくなったようです。なにか代わる方法を探していますが、当面はターミナルを使用するのが適当だと思います。
 ここの表示はMacのユーザーとUNIXユーザー、そして「新機能のファイル共有のためのユーザー」と三種類が表示されるようで、ここから変更が行えるのは基本的には「新機能のファイル共有のためのユーザー」となっているようにみえます。


Leopardの画面。ユーザーを変更するポップアップメニューがなくなっています。また私の環境(古いユーザーを移行させた2台)では、グループが不明になっています。これをFinderから修正しようとすると100%の確率でFinderがCrashします。



Pantherの画面


Firewall機能




 Mac OS Xが提供する標準のファイアウォール機能にも大きな変更が加えられています。PantherやTigerでは、システム環境設定の「共有」パネルに組み込まれていましたが、Leopardでは「セキュリティ」パネルに移動しています。また、設定の方法が変わり、従来のようなポート番号を指定して、追加方法ではなくなりました。Leopardではアプリケーション自体を登録する方法になっています。

 さらにLeopardのファイアウォール機能は、制御についてのログが記録されるようになっています。これにより不正なアクセスなどを確認することができるようになりました。ログは/var/log/appfirewall.logに記述されるようです。システム環境設定の「セキュリティ」パネルからみるか、コンソールから直接表示させればよいようです。

 [宿題1]サーバー関連ソフトウェアのポート設定をどうやって行うのかがよくわかりません。Postfixやimapを直接登録すればよいのか、単純にどこかplistを変更すればよいのか、だれかがツールを用意してくれるまで待つべきなのか、登録されたAPPは自由にポートを利用することができるのかなど、すこし調べる必要がありそうです。

 [わかったこと]SMTPとMySQLを起動したLeopard機にPortscanをしてみました。その結果、Firewallに登録をしなくても、ポートが開放されているようです。仕組みはよくわかりませんが、自動的に登録されるものなのかもしれません。imapやpop、jabberなども同様な動作をするかはまた調べてみる必要がありそうです。(2007/11/2a)
 どうやら、新しいサービスが見つかると、それを通過させるか拒否するかをユーザーに確認させるようになっているみたいです。なんとなくWindowsぽい動作になりました。(2007/11/2b)


 [宿題2]アップブレードインストールを行った私の環境では、ファイアウォール機能のログファイルが/var/log/appfirewall.logが自動的に作成されなかったようで、ログを表示させることができませんでした。

 [わかったこと]対策として、以下のコマンドを実行し、直接ログファイルを作成することで解決しました。

sudo touch /var/log/appfirewall.log



Trackback

No Trackbacks

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=52
(言及リンクのないトラックバックは無視されます)

Comments in Forum

28 Comments