[PHP-users 2611] Netscape および iPlanet と php4.0.6
php-users@php.gr.jp
php-users@php.gr.jp
Wed, 10 Oct 2001 10:17:05 +0900
お世話になります。吉田@池袋です。
Netscape および iPlanet でphp4.0.6を使用する場合、マニュアルどおりに
設定してもサーバーが起動しないケースが、ありましたので報告します。
試行錯誤のうえ両環境ともとりあえず動くようにはなりました。しかし4.0.4pl1
でははマニュアルどおりインストールしてまったく問題なく動きましたので
納得いきません。0.0.2のバージョンの何の違いでこのような振る舞いを
するのか、ご存知もしくは理由の推察できる方、ぜひアドバイスお願いし
ます。よろしくお願いします。
環境
OS:
solaris 2.6
Webサーバー:
NetscapeEnterpriseServer 3.61 および
iPlanet-WebServer-Enterprise 4.1sp2
その他ソフトウエア:
bison-1.25
flex-2.5.4a
gcc-2.95.3-sol26-sparc
m4-1.4
Oracle8.0.5 SQL*Netクライアント
makeは/usr/ccs/bin/makeを使用
起動しない状況と対処:
サーバー再起動(OFF/ON)時、サーバーマネージャーの画面上、
以下のエラーが出て止まります。
Status:
[https-phptest]: start failed. (2: unknown early startup error)
[https-phptest]: server terminated (signal 6): watchdog is restarting it
[https-phptest]: failure: server initialization failed
Error
An error occurred during startup.
The server https-phptest was not started.
logs/error ではサーバーは無事起動したように出力されています。
また/var/adm/messagesでは
Oct 9 16:46:45 kaihatsu uxwdog[26243]: server terminated (signal 6):
watchdog is restarting it
Oct 9 16:46:45 kaihatsu uxwdog[26243]: server initialization failed
のエラーがでます。
サーバーマネージャー(Web)でなく、コマンドラインからstartさせようとすると
通常は
# ./start
iPlanet-WebServer-Enterprise/4.1SP2 BB1-07/18/2000 00:59
startup: listening to http://kaihatsu, port 80 as nobody
#
と表示されるのですが、2行のメッセージは出力されず、プロンプトが帰ってきてし
まう
状態になります。
対処方法1
obj.confの以下の行に下記の変更(「LateInit=yes」を追加)を行ったところ
Init fn=php4_init errorString="Failed to initialize PHP!"
↓
Init fn=php4_init LateInit=yes errorString="Failed to initialize PHP!"
上記の問題はなくなり、サーバーは無事起動されたように見えました。
しかしプロセスが立ち上がっては終了しCPUを常に100%使っている
状態になってしまいました。この間、/var/adm/messagesに
Oct 9 20:13:45 kaihatsu uxwdog[5743]: server terminated (signal 6):
watchdog is restarting it
のようなメッセージが延々と繰り返されていました。
対処方法2
この状態をクリアするには「何故?」か、3.6.1も4.1もServletを有効に
して再起動することでした。PHPとServletが関係あるとは思えないので、
もしかしたらphp以外のnsapiのモジュールを込みこんだというところが
keyになっているのかもしれません。また対処方法1と組み合わせない
と、もともとの状態と同じになり起動できませんでした。
※開発機はこれでもOKですが、本番機(特にNetscapeEnerprise3.6.2
では)ではServletを無効化したいです。
設定した方法: // ここから最後まで
4.04pl1の時とまったく同じです。
(1)環境変数設定
PATH=/usr/local/bin:/bin:/usr/bin:/usr/ucb:/etc:/usr/ccs/bin:/opt/oracle/bin
ORACLE_HOME=/opt/oracle
NLS_LANG=Japanese_Japan.JA16EUC
(2)準備 以下のコマンドを実行
./configure --with-oci8 --with-nsapi=/usr/ns-home --enable-track-vars
--enable-libgcc --enable-ftp
(4.0.6では起動方法確認後、さらに、--enable-mbstring
--enable-mbstr-enc-transを付け足しています)
iPlanet 4.1ではここで、config_vars.mk中ののINCLUDES行の
「-I/usr/ns-home/include」
の部分を、「-I/usr/ns-home/plugins/include」に変更しています
(3)make
(4)suより
/usr/local/bin/make install
(5)サーバー設定MimeTypes追加
サーバーマネージャーより以下のMimeTypeを追加
type magnus-internal/x-httpd-php php
(6)obj.conf(/usr/ns-home/https-kaihatsu/config/)に以下を追加。
Init fn="load-modules"
funcs="php4_init,php4_close,php4_execute,php4_auth_trans"
shlib="/usr/ns-home/bin/libphp4.so"
Init fn=php4_init errorString="Failed to initialize PHP!"
<object name="default">
.
.
.
.// 注意 この次の行は全ての'ObjectType'の後で、'AddLog'行の前とする必要
があります
Service fn="php4_execute" type="magnus-internal/x-httpd-php"
.
.
</Object>
<Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute
</Object>
(7)/usr/ns-home/https-kaihatsu/startを修正、
LD_LIBRARY_PATHに/usr/local/libとOracleのlibを追加
また以下の行を追加
ORACLE_HOME=/opt/oracle;export ORACLE_HOME
NLS_LANG=Japanese_japan.JA16EUC;export NLS_LANG
(8)サーバーマネージャーより「apply」ボタンにて手動でのobj.confの変更を反映