zabbix.conf.phpの保存先

ZABBIX 1.4.6のfrontendをインストールしようとしています。

DBへの接続テストも無事通って、最後のzabbix.conf.phpを保存するところで以下のようなメッセージが出て先へ進めないでいます。

Please install configuration file manualy.

By pressing "Save configuration file" button download configuration file and place them into the
"/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php"

Press the "Retry" button

ダウンロードしたファイルを
/var/www/localhost/htdocs/zabbix/conf/
に保存したのですが、状態が変わりません。

どなたかお知恵をお貸しいただけませんでしょうか?

ちなみに、Gentoo LinuxでPHPのバージョンは5.2.6を使用しています。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

こんにちは。

インストーラが設定ファイルを書き込めないことによるエラーだと思います。

あらかじめ/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.phpファイルを作成しておいて(内容は空で構いません)、パーミッションを666に設定してから試してみるとうまくいかないでしょうか?

成功したら、忘れずにパーミッションを644に戻しておいてください。

ユーザー cvyan の写真

kodaiさん、丁寧な回答ありがとうございます。

どうにか先に進めました。
最終的にはおっしゃっていただいたパーミッション以外に2つ、合計3つの要因があったように思われます。

** やったこと
パーミッションをconfフォルダとzabbix.conf.phpに対して666に設定するため
# chmod -R 666 /var/www/localhost/htdocs/zabbix/conf
としたのですが、変化なし
なかばやけになって
# chmod -R 777 /var/www/localhost/htdocs/zabbix/conf
としても変化なし

ソースを追いかけてみたところ、「include/setup.inc.php」の656行目にある
if(file_exists($ZBX_CONFIGURATION_FILE))
がfalseになっていました。

そこで$ZBX_CONFIGURATION_FILEの中身をprint_r()してみたり、表示される「/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php」をコンソール上でlsしてみたり。
確かにそこにファイルはあるんですが、file_exists()はfalseになってしまう。

仕方ないのでPHPを再インストールしたところ、パーミッションが777であればfile_exists()は通るようになりました。
(666ではなぜか通りませんでした。phpファイルだから実行権限が必要、なんてことないと思うんですが?)

file_exists()は通るようになったんですが、次はzabbix.conf.phpの28行目にundefinedな文字列がある旨のエラーが表示されるようになりました。

これは「$DB_PASSWORD = "$*****"」と「$」で始まるパスワードにしていたため、PHPが変数と解釈したためだったようです。

これについてはパスワードを変更して$で始まるのをやめることで対処できました。

ただ、全て終わって「admin」でログインする前にパーミッションを644に戻したんですが、またsetup.phpが動き出してしまいました。仕方ないのでまた777に戻してありますが、これってそんなわけないですよね。っていうか、自分のシステムがおかしいんでしょう。777じゃないとfile_exists()がfalseになるっていう状態になってしまってるからですね。これはこれでなんとかしないと。

以上、長くなりましたがご報告ということで。
ありがとうございました。