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 - 投稿数: 1341
こんにちは。
インストーラが設定ファイルを書き込めないことによるエラーだと思います。
あらかじめ/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.phpファイルを作成しておいて(内容は空で構いません)、パーミッションを666に設定してから試してみるとうまくいかないでしょうか?
成功したら、忘れずにパーミッションを644に戻しておいてください。
cvyan - 投稿数: 2
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になるっていう状態になってしまってるからですね。これはこれでなんとかしないと。
以上、長くなりましたがご報告ということで。
ありがとうございました。