Fedoraサーバーのトラブルシューティング

投稿日: 2009年4月27日 | カテゴリ:『自宅サーバー』>トラブルシュート

以下の記事は、Fedoraサーバーの2年間あまりの経験を基に、体験したトラブルと解決法をまとめたものです。システムを熟知した上で書かれたものではありませんので、多分にプラグマティックなものになっていますが、特殊個別的な問題の解決には効果を発揮すると思います。

目次

症状
Fedora 9でカーネルをアップグレード後、新バージョンを反映させるために再起動を行った場合に、「grub」のところで止まってシステムが起動できない状態になることがありました。
対策

  1. インストールCDからレスキュー・モードで/mnt/sysimageを読み込んで/boot/grub/grub.confにおける新しくインストールしたカーネルの部分を削除して再起動してみたが、、やはり「grub」のところで止まってしまった。
  2. もう一度CDから起動して、「既存インストールのアップグレード」を選択し、ブート選択画面で「新しいブートローダ設定を作成」を実行してブートセクションを再構築して再起動したらうまくいった。

症状
Fedora10インストール後、コンソールからrootでログインできない。
対策
WinSCPをインストール後SSH経由でrootにログイン、あるいは一般ユーザーからrootにログインして、/etc/pam.d/gdm-passwordの下記の行をコメントアウトすることでrootログイン出来る。

#auth required pam_succeed_if.so user != root quiet

症状
Fedora10のインストールが完了し、Networkの設定に取り掛かります。NetworkManagerをオフにし、Networkをオンにして、「システム」-「管理」-「ネットワーク」でネットワーク設定を開いて編集から「固定のIPアドレスの設定」で固定IPアドレスを設定すると、設定は反映(IPアドレスは固定)されますが、サーバー側からインターネットへの接続ができない不具合が発生します。こうなるとプログラムのUpdateもできなくなってしまいます。
DHCPで自動的にIPを取得する設定に戻せば解決しますが、再起動した場合に異なったIPアドレスが割り振られる危険があります。
対策
固定IPアドレスにすると、原因はわかりませんが/etc/resolv.confの内容が書き換えられてしまうようです。まず、DHCP設定にしてインターネットに接続できることを確かめてください。次に上記のファイルを開いて以下のようにローカルのIPアドレスが記述されていることを確認します。

; generated by /sbin/dhclient-script
nameserver 192.168.x.xx

xのところがルータによって異なってきます。この設定をメモしておいてください。
次に「システム」-「管理」-「ネットワーク」を開いて固定IPアドレスを設定します。デバイスの停止-起動を繰り返し、変更を反映させ、インターネットに接続してみてください。接続できないことを確認して、再度resolv.confを開いてみてください。nameserver 192.168.x.xxの部分が消えているはずです。
先にメモした値を記入して保存します。この状態でインターネットに接続できるはずです。
システムを再起動して、resolv.confの内容が変更されていないことを確認してください。
もし1回目の再起動で、設定が消えている場合には上記の補修を繰り返し再起動してみてください。私の場合は2回の再起動で消えなくなりました。

症状
Fedora10をデスクフォーマット・インストールし、再起動したときに以前に表示されていたブート・プロセスのメッセージが表示されず、デフォルトでは、いわばウィンドウズのXPのようなイメージが表示されます。
対策
/boot/grub/grub.confを開くと、各カーネル・バージョンのブートセクションが次のようになっています。

kernel /vmlinuz-2.6.27.15-170.2.24.fc10.i686 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

rhgb quietを消去すると従来のようにメッセージが表示されます。
ちなみに、rhgbは、表示されるグラフィックスの指定、quietは、全ての詳細なカーネルメッセージの抑制を示しています。

症状
logwatchには以下のような表示が現れます。

    403 Forbidden
       /: 22 Time(s)

/var/log/httpd/error_logには以下のような表示が複数現れます。

[Sun Apr 19 11:08:50 2009] [error] [client xxx.xx.xxx.xx] Directory index forbidden by Options directive: /var/www/html/

対策
/var/www/html/にindex.htmlファイルを置き、所有者をapacheにする。

症状
自作の度量衡変換PHPプログラムを起動するたびに、/var/log/httpd/error_logに次のような表示が複数現れる。

PHP Notice:  Use of undefined constant kmeExec - assumed 'kmeExec' in /var/www/wordpress/wp-content/xxxx/xxxx/mile_kmeter.php on line 8, referer: http://hsuzuki.ddo.jp/weblog/wp-content/xxxx/xxxx/indexj_menu.html

対策
PHPプログラムの変数の初期化がなされていないことが原因であるが、プログラム自体は正常に機能する。この「error」は無視してもかまわないが、エラー表示が多量にわたる場合には次のような処置をすれば、ログへの表示はなくなる。
/etc/php.iniの次の部分を変更

;コメントアウト
;error_reporting  =  E_ALL
;次の1行を追加
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
  • E_ALL:すべてのエラーを出力する
  • ~E_NOTICE:変数の初期化なしのログ出力を抑制する
  • ~E_STRICT:「PHP5構文でない」エラー出力の抑制

変更を反映させるために、httpdを再起動する。

[root@localhost ~]# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

症状
/var/log/httpd/error_logに次のようなエラー表示がなされる。

[Mon Apr 20 04:26:20 2009] [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/wordpress/wp-content/xxx/xxx/HAT.files/editdata.mso

対策
editdata.msoは、Wordからhtmlファイルに落としたときにリンクが張られ参照されるファイルだが、実際にはHAT.files/editdata.msoは存在しない。したがって、「File does not exist」というエラーがでる。httpdのerror_logにはエラーが出るが、表示は正常に行われ実用上は問題ない。このエラーを出さないようにするには、WordファイルをHTMLに落とすときにフィルター付きオプションを選択する。こうすれば.moファイルへのリンクは消える。

症状
rootに次のようなメールがきた

/etc/cron.daily/logrotate:
error: syslog:1 duplicate log entry for /var/log/messages
error: found error in /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron , skipping

対策
/etc/logrotate.d/ディレクトリ内にsysklogdというファイルができていた(Fedora10 の上書バージョンアップ時に発生)。これがsyslogと二重の指示を出していたと思われる。このファイルを削除して解決。

症状
SELinuxを有効にして再起動するとGUI画面(Loginできる)で操作不能に陥った場合。
対策
この場合には、SSHで接続しその端末で、
/etc/selinux/configを開いて次のように変更し、再起動させる。

SELINUX=disabled

SELINUXの設定内容

  • enforcing :SELinuxを有効にする。
  • permissive:SELinuxは無効になるが、セキュリティ拒否に関する警告ログは出力される。
  • disabled:SELinuxのセキュリティ制御を無効にする。

症状
Fedora9でavahiのアップグレートを行ったが次のようなエラーメッセージが出てアップデートが実行されない。Fedora7から9にアップグレードした際に、「既存インストールのアップグレード」(上書きアップグレード)で実行した時に起こった。

Transaction Check Error:
  file /etc/avahi/avahi-autoipd.action from install of avahi-autoipd-0.6.22-10.fc9.i386 conflicts with file from package avahi-0.6.17-1.fc7.i386
  file /usr/sbin/avahi-autoipd from install of avahi-autoipd-0.6.22-10.fc9.i386 conflicts with file from package avahi-0.6.17-1.fc7.i386
  file /usr/share/man/man8/avahi-autoipd.8.gz from install of avahi-autoipd-0.6.22-10.fc9.i386 conflicts with file from package avahi-0.6.17-1.fc7.i386

次のコマンドで旧avahi-0.6.17-1.fc7.i386を削除する。

[root@localhost ~]# yum remove avahi-0.6.17-1.fc7.i386
Loaded plugins: refresh-packagekit
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package avahi.i386 0:0.6.17-1.fc7 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================
 Package        Arch          Version               Repository            Size
================================================================
Removing:
 avahi          i386          0.6.17-1.fc7          installed             688 k

Transaction Summary
================================================================
Install      0 Package(s)
Update       0 Package(s)
Remove       1 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : avahi                                             [1/1]

Removed: avahi.i386 0:0.6.17-1.fc7
Complete!

以上のように、削除が完了した旨のメッセージが出るが再度アップデートすると上記のようなエラーメッセージが再び表示されてアップデートが実行されない。
対策
Googleで検索した結果、次のサイトの記事が参考になった。
soulnize の日記
つまり次のようなコマンドで削除できるということである。

rpm -e --nopostun avahi-0.6.17-1.fc7.i386

問題解決。

症状
Fedora 11ではHTTPDはデフォルトでインストールされています。これまでのように旧バージョンで使用していたconfファイルを上書きしてHTTPDを起動させようとすると以下のようなエラーが発生します。

[root@localhost ~]# service httpd start
httpd を起動中: httpd: Syntax error on line 196 of
/etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_file_cache.so into server: /etc/httpd/modules/mod_file_cache.so:cannot open shared object file: No such file or directory
                                                           [失敗]

対策
旧confと新confファイルを比較してみる(Linux系ではdiffコマンド、WindowsではWordの「ツール」-「文書の比較と反映」が利用できる)と、以下のファイルが新confファイルではなくなっていることが解かります。従って旧設定ファイルの以下の部分をコメントアウトするか、新ファイルを自分用に設定し直したものを使用する(設定項目があまり多くない場合)。

# LoadModule file_cache_module modules/mod_file_cache.so
# LoadModule mem_cache_module modules/mod_mem_cache.so

関連記事



コメントを残す




空欄に計算式を満たす数値を記入してください(必須)