Apacheを止めないでPHPモジュールをバージョンアップさせる件
会社の同僚に教えてもらったのだが、Apacheを起動している状況でPHPをバージョンアップさせる場合、PHPのmake install時にapacheを停止させないでインストールする方法。
これはPHPだけでなく、Apacheモジュール全般に適用できるはず。なお、再起動(gracefulでOK)しないとバージョンアップが反映されません(なので一瞬止まるけどご愛嬌)。
apacheをインストールした際に一緒にインストールされている /usr/local/apache2/build/instdso.sh で、cpコマンドでなく、installコマンドに変更するとのこと。
cpは上書き、installはunlink後にコピーという動作でこれが原因らしいとのこと。
$ cd /usr/local/apache2/build $ diff -u instdso.sh.sv instdso.sh --- instdso.sh.sv 2010-12-02 15:04:47.000000000 +0900 +++ instdso.sh 2012-10-23 11:38:24.000000000 +0900 @@ -49,7 +49,7 @@ $CMD || exit $? fi -CMD="$SH_LIBTOOL --mode=install cp $DSOARCHIVE $TARGETDIR/" +CMD="$SH_LIBTOOL --mode=install install $DSOARCHIVE $TARGETDIR/" echo $CMD $CMD || exit $? $