2012-04-02 9 views
3

最近MacのOSをLionからLion Serverにアップグレードしました。これは、Apacheの起動時にhttpd.confの設定を読み込む方法を変更します。特に、WEBSHARING_ONやMACOSXSERVERのような環境変数はServer.appプロセスによって設定されるため、Apacheの起動時に余分なモジュールやファイルが読み込まれます。Lion ServerでのApacheの正常な再起動

だから今、ロードされたすべての適切な設定とモジュールをApacheサーバを再起動し、私はコマンドを使用する必要があります: -

sudo serveradmin stop web && sudo serveradmin start web 

以前、私が実行します: -

sudo apachectl -S 
sudo apachectl graceful 

を後者の方がはるかに好きです。 1つは、コマンドがはるかに速く戻り、apache/httpdサーバープロセスが完全に終了せず、設定がリロードされただけだとも思います。

したがって、Lion Serverで正常にApacheを再起動する方法はありますか?

答えて

2

クイックアンサーはありません。
'apachectl'プログラムは実際には単なるシェルスクリプトなので、(これを実現した後で)それが何をしているのかを簡単に知ることができます。 Mac上のApache(正常またはそれ以外)を再起動すると、関連するにlaunchctlジョブはちょうど私が想像している、アンロードと再ロードされ

は、グレースフル・リスタートのofficial Apache descriptionどおりではありません。

USR1あるいは優雅信号は、このコマンドがあるのでapachectl -Sが構成された仮想サーバが表示されない理由がある

彼らの現在のリクエストの後に終了する(あるいは何もしていない場合はすぐに終了する)子どもたちに助言するために、親プロセスが発生しますlaunchctlによって実行されないのでenvir /System/Library/LaunchDaemons/org.apache.httpd.plistに設定されている変数はロードされません。

したがって、apachectl gracefulapachectl restartなどが適切な変数をロードするため、設定ファイルを正しく読み込みますが、すべてのコマンドがデフォルトで実行されるわけではありません。

これを解決するために、以下のように/ usr/sbin/apachectlを手作業で編集しました。私がしたのは、必要に応じて "-D MACOSXSERVER -D WEBSERVICE_ON"を追加することでした。

case $ARGV in 
start) 
    run_launchctl load -w $LAUNCHD_JOB 
    ERROR=$? 
    ;; 
stop|graceful-stop) 
    run_launchctl unload -w $LAUNCHD_JOB 
    ERROR=$? 
    ;; 
restart|graceful) 
    run_launchctl unload -w $LAUNCHD_JOB 2> /dev/null 
    run_launchctl load -w $LAUNCHD_JOB 
    ERROR=$? 
    ;; 
startssl|sslstart|start-SSL) 
    echo The startssl option is no longer supported. 
    echo Please edit httpd.conf to include the SSL configuration settings 
    echo and then use "apachectl start". 
    ERROR=2 
    ;; 
configtest) 
    $HTTPD -t -D MACOSXSERVER -D WEBSERVICE_ON 
    ERROR=$? 
    ;; 
status|fullstatus) 
    echo Go to $STATUSURL in the web browser of your choice. 
    echo Note that mod_status must be enabled for this to work. 
    ;; 
*) 
    $HTTPD $ARGV -D MACOSXSERVER -D WEBSERVICE_ON 
    ERROR=$? 
esac 
関連する問題