yumにて1.8.3-1にupdate後ログイン不可

お世話になります。

CentOS5.3使用です。
表題の通りyumにて1.8.3-1にアップデート後に、
zabbixへログインしたところ、phpファイルのダウンロードダイアログが出てしまい、zabbixのログインできなくなってしまいました。

アップデートしたのは
Updated: zabbix-1.8.3-1.el5.JP.i386
Updated: httpd-2.2.3-43.el5.centos.3.i386
Updated: 1:mod_ssl-2.2.3-43.el5.centos.3.i386
Updated: zabbix-agent-1.8.3-1.el5.JP.i386
Updated: httpd-manual-2.2.3-43.el5.centos.3.i386
Updated: zabbix-server-mysql-1.8.3-1.el5.JP.i386
Updated: zabbix-server-1.8.3-1.el5.JP.i386
Updated: zabbix-web-1.8.3-1.el5.JP.i386
Updated: zabbix-web-mysql-1.8.3-1.el5.JP.i386
です。

ちなみに
<?php phpinfo() ?>は表示可能です。

php -v
PHP 5.1.6 (cli) (built: Mar 31 2010 02:44:37)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

行き詰っていて困っています。。。
どなたかご教示ください。

コメント表示オプション

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

アップデートしたものの以前のバージョンはお分かりになりますか?

また、今回、httpdもアップデートされたようですが、httpdの再起動は行われましたか?

あと、phpinfo()が表示可能とのことですが、httpd経由でアクセスして表示可能なのですか?

ユーザー masacchi の写真

レスありがとうございます。
以前のversionは1.8.3でした

httpdのリロードはしております。
(マシン自体のrebootもしております。)

phpinfo()の表示はhttpd経由です。

見直すべき設定などございますでしょうか?

ユーザー kodai の写真

こんにちは。

以前のバージョンが1.8.3ということは、ソースからインストールされていたということでしょうか?

phpファイルがダウンロードされてしまうという状況ですと、http側の設定の問題の可能性が高いと思います。Apacheの設定ファイル(もしくは.htaccess)でLoadModuleやAddHandlerやAddTypeディレクティブなどは正しく設定されているでしょうか?

ユーザー TNK の写真

kodaiさんも書かれている通り、Zabbixの以前のバージョンが1.8.3であるのであれば、ZABBIX-JPからはリリースされていないので、ご自身でソースから導入されたのではないでしょうか?
恐らく、その際に設定されたWebサーバの設定によって影響を受け、正常に稼働できない状態になっていると思われます。

ZABBIX-JPのRPMを利用すると、デフォルトのCentOSのhttpdパッケージなどに特殊な設定を行わなくても稼働できるようになっています。

以前、手動で設定されたWebサーバ(httpd)の設定を全て元に戻してみてはいかがでしょうか?

ユーザー masacchi の写真

レスありがとうございます。

申し訳ありません。以前のバージョンはソースからインストールした記憶がないので、1.8.2-1だったかもしれません。。
(すべてyumでお手軽updateしております。。。汗)

今、休暇中でサーバの設定を見れないので、(休み明けに)もう一度見直してみます。

ユーザー masacchi の写真

お世話になります。

未だに表題の件が解決できておりません。
httpのconfigを確認したところ
httpd.confにPHPの記載が有りませんでしたので追記しました。

grep -i php /etc/httpd/conf/httpd.conf

DirectoryIndex index.html index.htm index.html.var index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddHandler php5-script php

上記の様に致しましたが、状況は変わらずです。

LoadModuleディレクティブにphp関連の記載が無かったので

LoadModule php5_module /usr/lib/httpd/modules/libphp5.so

と付け加えましたが、状況は変わらずでして、
逆に

# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [Fri Sep 10 12:05:42 2010] [warn] module php5_module is already loaded, skipping
[ OK ]
と逆に妙なwarnningがでたので削除しました。

ちなみに以前のzabbixのバージョンは確認したところ1.8.2-1でした。申し訳ありませんでした。

phpinfo()が外部のクライアントから表示できますが、phpやhttpの設定が間違っているのでしょうか?

社内の監視機器の表示ができずに非常に困っております。。。
最悪zabbixの入れ直しをしようか検討しております。

どなたかご存知でしたらご教示頂けますでしょうか。:cry:

ユーザー TNK の写真

先にも書かせて頂きましたが、httpdの設定はデフォルトから変更されてはいないのですか?
変更されているのであれば、今までどのような設定変更を行われてきたのか情報を提示いただけませんでしょうか?
もう色々変更してしまって、何を変更したのかわからない状態であるならば、httpdの設定をデフォルトの設定に戻してください。
# 今後も、初期の設定ファイルはバックアップしてから変更されることを強くお勧めいたします。

ついでになりますが、CentOS 5のhttpdの設定に関して書かせて頂きます。
デフォルトでも、/etc/httpd/conf/httpd.conf内には直接phpの設定は入っていません。
phpの設定は、/etc/httpd/conf.dディレクトリ以下にあるphp.conf内にあります。

この/etc/httpd/conf.dディレクトリ以下の*.confファイルは、/etc/httpd/conf/httpd.conf内のIncludeによって読み込まれるようになっています。
こうすることで、/etc/httpd/conf.dディレクトリにファイルを置くだけで、/etc/httpd/conf/httpd.confを変更しなくてもhttpdの設定の変更や追加を行えるようになっています。

ZABBIX-JPのRPMも、/etc/httpd/conf.d/zabbix.confというファイルを追加することで、

 /usr/share/zabbix

というディレクトリ以下に配置されているWebコンテンツを、

 http://zabbixserver/zabbix/

というようなURLでアクセスできるような設定になっています。

今回の場合は、独自にhttpdの設定変更を行われているようですので、その内容をお教えいただけないとどこをどう直せばよいかを調べることができないのですが、現時点で考えられることとしては、httpdの設定のどこかに誤りがある可能性が非常に高いと思われます。

特殊な変更をせず、インストール時やアップデート時にエラーも発生しなかったのであれば、このような対応はいりませんが、phpinfo()が実行できるURL(ディレクトリ)と同様の設定を、zabbixのコンテンツへアクセスするためのhttpdの設定に反映させれば動くようになるかもしれません。
その前に、kodaiさんが書かれていた.htaccessなどに関してもご確認をお願い致します。

それでも駄目なら、どこをどう変えたのかが全くわかりませんので、httpdの設定を全て見させて頂く必要があるかもしれません。

最悪zabbixの入れ直しをしようか検討しております。

現在の状況は、httpdの設定の問題である可能性が高いため、zabbix-webだけの入れなおしでは直らないと思います。
恐らくhttpd、phpからの入れなおしが必要になると思います。

入れなおすのも面倒だと思うので、できる限りご自身で行われた変更内容や、アップデート時にエラーや警告が発生していなかったかなど、情報をご提供下さい。

ユーザー masacchi の写真

度々恐れ入ります。
httpd/conf.dディレクトリについてご教示ありがとうございます。

httpdの設定についてですが、/etc/httpd/conf/httpd.conf
についてということでしたら、特にデフォルトからはいじっておりません。
強いて言うならば、先のphp関連のAddTypeやindex.php位を追記した事がある程度です
(しかもそれは削除し戻しております。)

ソースインストールなど高等な事はできませんので、
全てyumでのhttpのインストール及びアップデートを実施しております。

───────────────────────────────────
# ls -l /etc/httpd/conf.d/
合計 72
-rw-r--r-- 1 root root 392 8月 31 01:37 README
-rw-r--r-- 1 root root 295 8月 31 01:37 manual.conf
-rw-r--r-- 1 root root 1796 4月 22 2005 perl.conf
-rw-r--r-- 1 root root 853 9月 10 18:06 php.conf
-rw-r--r-- 1 root root 771 3月 31 15:51 php.conf.20100910backup
-rw-r--r-- 1 root root 281 9月 10 18:22 phpmyadmin.conf
-rw-r--r-- 1 root root 566 8月 31 01:37 proxy_ajp.conf
-rw-r--r-- 1 root root 1671 1月 7 2007 python.conf
-rw-r--r-- 1 root root 332 3月 31 16:52 squid.conf
-rw-r--r-- 1 root root 9677 8月 31 01:37 ssl.conf
-rw-r--r-- 1 root root 352 1月 9 2007 webalizer.conf
-rw-r--r-- 1 root root 299 8月 31 01:37 welcome.conf
-rw-r--r-- 1 root root 817 7月 31 20:00 zabbix.conf

conf.d/php.confですが、(#コメントアウトは除きます)
───────────────────────────────────
# cat php.conf

<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>

AddHandler php5-script .php
AddType text/html .php

DirectoryIndex index.php
───────────────────────────────────

でした。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

AddHandler php5-script .php .php5
AddType text/html .php .php5
DirectoryIndex index.php index.php5
を追記し、httpdをreloadしても変化は有りませんでしたので削除しました。

conf.d/zabbix.phpですが、
───────────────────────────────────
# cat /etc/httpd/conf.d/zabbix.conf

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

php_value max_execution_time 300
php_value date.timezone Asia/Tokyo
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 5M
php_value max_input_time 300
php_value mbstring.func_overload 6
</Directory>

<Directory "/usr/share/zabbix/include">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>

<Directory "/usr/share/zabbix/include/classes">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
───────────────────────────────────

です。

.htaccessについてですが、こちらも当方では特に設定をしておりませんが、
アップデート時に書き変わっているのかもしれませんので、記載します。
───────────────────────────────────
# locate .htaccess
/usr/share/phpmyadmin/libraries/.htaccess
/usr/share/zabbix/api/.htaccess
/usr/share/zabbix/conf/.htaccess
───────────────────────────────────

───────────────────────────────────
# cat /usr/share/zabbix/conf/.htaccess
Order Deny,Allow
Deny from All

<files *.php>
Order Deny,Allow
Deny from All
</files>
───────────────────────────────────

このような感じでした。。。
おかしな点はございますでしょうか? :-(

ユーザー TNK の写真

httpdの設定はデフォルトから変更されてないということですし、ご提示頂いたファイルの内容も特に問題は無いように見受けられます。

ただし、/etc/httpd/conf.d/内にあるファイルの全てを確認させて頂いたわけではないので、それらのファイルの中に何らかの問題があるのではないかと考えました。

私の手元のできるだけ余計なものをインストールしないようにして構築したZabbixの環境では、/etc/httpd/conf.d/内には、

php.conf
proxy_ajp.conf
ssl.conf
welcome.conf
zabbix.conf

のみとなっております。

試しに、これら以外のファイルの名前の最後に「.bak」などと何らかの文字を追記したファイル名に変更して、httpdを再起動してからzabbixのWebUIにアクセスしてみて頂けませんでしょうか?
# ファイル名の最後が「.conf」になってなければ読み込まれないはず。

ユーザー masacchi の写真

おはようございます。
アドバイスありがとうございます。

早速、下記の様にして、httpdをreloadしてみましたが、

# ls -l
合計 72
-rw-r--r-- 1 root root 392 8月 31 01:37 README.bak
-rw-r--r-- 1 root root 295 8月 31 01:37 manual.conf.bak
-rw-r--r-- 1 root root 1796 4月 22 2005 perl.conf.bak
-rw-r--r-- 1 root root 794 9月 10 19:23 php.conf
-rw-r--r-- 1 root root 771 3月 31 15:51 php.conf.20100910.backup
-rw-r--r-- 1 root root 281 9月 10 18:22 phpmyadmin.conf.bak
-rw-r--r-- 1 root root 566 8月 31 01:37 proxy_ajp.conf
-rw-r--r-- 1 root root 1671 1月 7 2007 python.conf.bak
-rw-r--r-- 1 root root 332 3月 31 16:52 squid.conf.bak
-rw-r--r-- 1 root root 9677 8月 31 01:37 ssl.conf
-rw-r--r-- 1 root root 352 1月 9 2007 webalizer.conf.bak
-rw-r--r-- 1 root root 299 8月 31 01:37 welcome.conf
-rw-r--r-- 1 root root 817 7月 31 20:00 zabbix.conf

状況は変わらずです。。。

他に試す方法をご存知でいらっしゃいましたらご教示頂ければと思います。 :cry: :cry: :cry:

ユーザー masacchi の写真

自己解決しました!

結論からいうと、/etc/zabbix/の中に
.rpmnewとか .rpmsaveなどと自分では作成した記憶のない
yumでアップデートされたっぽい胡散臭いファイルがあり

# ls -l /etc/zabbix/
合計 184
drwxr-xr-x 2 root root 4096 8月 31 13:37 alertscripts
-rw-r--r-- 1 root root 24523 7月 9 15:54 defines.inc.php
-rw-r--r-- 1 root root 25367 8月 31 13:29 defines.inc.php.rpmnew
drwxr-xr-x 2 root root 4096 8月 31 13:37 externalscripts
-rw-r--r-- 1 root root 1025 8月 16 17:19 maintenance.inc.php
-rw-r--r-- 1 root root 1070 4月 29 17:51 zabbix.conf.php
-rw-r--r-- 1 root root 1067 3月 6 2010 zabbix.conf.php.20100306backup
-rw-r--r-- 1 root root 1669 8月 21 09:04 zabbix_agent.conf
-rw-r--r-- 1 root root 5517 8月 31 13:29 zabbix_agentd.conf
drwxr-xr-x 2 root root 4096 8月 31 13:37 zabbix_agentd.d
-rw------- 1 zabbix zabbix 7472 4月 29 09:43 zabbix_server.conf
-rw------- 1 root root 7456 4月 29 09:15 zabbix_server.conf.20100429.backup
-rw------- 1 root root 7456 3月 8 2010 zabbix_server.conf.backup
-rw------- 1 zabbix zabbix 8800 8月 31 13:29 zabbix_server.conf.rpmnew
-rw------- 1 zabbix zabbix 7496 3月 8 2010 zabbix_server.conf.rpmsave

試しにdefines.inc.phpを開いたところ
────────────────────────
# more defines.inc.php
?>
<?php
define('ZABBIX_VERSION','1.8.2');
define('ZABBIX_API_VERSION','1.2');

〜以下略〜
────────────────────────
ん?現用のdefine.inc.phpがversion1.8.2?と思い、

define.inc.php.rpmnewを確認すると同じ項目がversion1.8.3と記載がありましたので

mv defines.inc.php defines.php.bak
cp -p defines.inc.php.rpmnew defines.inc.php

とし、reloadしたところWEBUIにアクセスできるようになりました!!
とりあえずは、ざっと見、全て見れられるようにはなっておりますので
ほっとしておりますが、
zabbix_server.conf.rpmnew
など、まだ妙なファイルがあるのが気になるところであります。

とりあえずは解決しました。
お付き合いいただきましてありがとうございました。

ユーザー TNK の写真

.rpmnewファイルは、rpmコマンドなどでアップデートするときに、以前インストールしたものから手動で変更されていたなどの理由で上書きしない方が良いとrpmコマンドが判断して、上書きせずに新しいバージョンのファイルとしてファイル名に.rpmnewという文字を追加して保存したものでしょう。

詳細は、以下のURLにある記事などをご参照ください。
http://sourceforge.jp/magazine/07/11/27/0137228

rpmコマンドやyumコマンドを実行したときにその旨が表示されたはずです。
その場合、新しいバージョンのファイルと以前のファイルとを確認して、内容が大きく変わっていなければそのままでも動きますが、自分で新しい正しいファイルを作成することが必要になる場合があります。

手動で変更していなければ、今回のようなことは起らなかったはずです。
実際に綺麗な環境に、1.8.2-1.JPをインストール後、1.8.3-1.JPにアップデートした場合、以下のようになります。
<code>
[root@localhost ~]# ls -l /etc/zabbix/
合計 120
drwxr-xr-x 2 root root 4096 8月 31 13:22 alertscripts
-rw-r--r-- 1 root root 25367 8月 31 13:13 defines.inc.php
drwxr-xr-x 2 root root 4096 8月 31 13:22 externalscripts
-rw-r--r-- 1 root root 1025 8月 16 17:19 maintenance.inc.php
-rw------- 1 apache apache 1034 9月 11 17:45 zabbix.conf.php
-rw-r--r-- 1 root root 1676 8月 16 17:19 zabbix_agent.conf
-rw-r--r-- 1 root root 5517 8月 31 13:13 zabbix_agentd.conf
drwxr-xr-x 2 root root 4096 8月 31 13:22 zabbix_agentd.d
-rw------- 1 zabbix zabbix 8165 9月 11 17:43 zabbix_server.conf
-rw------- 1 zabbix zabbix 8800 8月 31 13:13 zabbix_server.conf.rpmnew
[root@localhost ~]#
</code>
この環境では、zabbix_server.confを変更していたので、1.8.3-1.JPのzabbix_server.confがzabbix_server.conf.rpmnewとして保存されています。
このままでも動きますが、より新しい状態にする場合には、zabbix_server.conf.rpmnewにzabbix_server.confに行った変更を反映して新しいzabbix_server.confとして保存し、zabbix-serverを再起動すればよいでしょう。

最後に、手動で設定を変更された場合は特に、rpmコマンドやyumコマンドの実行結果や警告メッセージは必ず確認するようにしてください。