Linux(CentOS 5.4)がずーっと起動しっぱなしだったので、たまにはリブートするかと
sudo reboot
かけた。普段、サーバーにはモニターもキーボードもつないでいないので、このままだと「キーボードがないわよ」みたいな警告が出てブートが途中で止まる。たいていキーボードをつけてがちゃがちゃやると「キーボード発見しました」みたいな表示が出てブートが進むので、モニターはつながず、キーボードだけつないでがちゃがちゃやっていた。しかし…。
ブラウザーからサーバーにアクセスしてもつながらない。あれ? sshでMacBookからサーバーに入り、
/etc/init.d/httpd configtest
してみると
httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.d/ruby.conf: Cannot load /etc/httpd/modules/mod_ruby.so into server: /etc/httpd/modules/mod_ruby.so: cannot restore segment prot after reloc: Permission denied
とか出る。えー? mod_ruby.so が読み込めないのかー。mod_rubyを再インストールしたり httpd.conf を書き直してみたりしたんだけど効果なし。同じエラーで困ってる人いないかと、「mod_ruby centos エラー」とかでググってみたんだけど、そういう人は見つからず。キーワードを変えて「cannot restore segment prot after reloc: Permission denied」でググってたら以下のサイトにたどり着いた。
なるほどそういうことか。どうやらモニターにつながずキーボードをがちゃがちゃしていたときに /etc/selinux/config の設定を変更してしまっていたみたい。(SELinuxの小技)
結局、 /etc/selinux/config を編集して
SELINUX=disabled
として無事Apacheが起動できるようになった。
午前中の時間が無為に過ぎて行ってしまった…。