Tips

Mac OS XでWebサーバを起動する

日付2004/09/30
ID34120 (英語原文参照)
バージョン2004
プラットフォームMac & Win

Mac OS Xでは、Web公開TCP/IPポート(0-1023番)の使用には、特別なアクセス権限が必要です。マシンのroot権限を持つユーザだけがそのようなポートを使用するアプリケーションを起動することができます。しかしながらroot権限の使用には、セキュリティ上の不安、またセッション中に作成されたドキュメントに対するアクセス権の問題があります。
4th Dimension 2004では新しい方法、つまり一時的なrootセッションによる方法を採用しています。4DのWebサーバは一旦Root権限で起動しますが、そのセッションはすぐに終了します。この仕組みは4th Dimension、4D Server、4D Clientに共通ですが、起動時に公開されるデータベースにおいてのみ有効です。
詳しくは次のような流れになります。
1.4th Dimensionアプリケーションは、通常のユーザ権限で起動します。
2.Webサーバをポート80で起動しようとすると、アラートが表示されます。ダイアログでは、管理者名とパスワードの入力によってアクセス権限の変更をする機会が提供されます。
3.入力された情報を使用して4th Dimensionはアクセス権限を変更し、Webサーバを起動します。
4.一度アプリケーションを終了するように促すダイアログが表示されます。この方法によるWeb公開は、アプリケーションの起動時にのみ有効だからです。
5.起動時に4th Dimensionはrootセッションで開始し、Webサーバをポート80で起動します。環境設定で「WebサーバにSSLを許可する」が有効にされていれば、SSLポート(443)も同時に開かれます。
6.やがてrootセッションは終了し、カレントユーザにセッションに取って代わられます。この変更は内部的に処理され、ユーザには見えません。Webサーバは継続して動作します。(rootセッションはCLIを使用することによって他のユーザセッションに変更することができます。)
起動中のWebサーバは、停止したり、再起動することができません。rootから低い権限に降りることはできますが、その逆は許されていないからです。Webサーバを再起動するには、アプリケーション自体を再起動する必要があります。