CentOS6.3のApacheをバージョンアップする
昨年、作ったVMware上の開発環境が若干古くなってきたので、更新したときのメモ。
環境構築をする際に追加したリポジトリ(EPEL, Remi, RPMForge)には、当時と同じApache 2.2.15までしかなかったので、CentALTというリポジトリを追加しました。CentOSのバージョンは、当時の6.2から6.3へアップグレードしています。
リンク:CentOS開発環境の構築(Apache, MySQL, PHP)
Yumリポジトリの追加とApacheのupdate
1 2 3 4 5 6 7 8 9 10 11 | # Yumリポジトリの追加 rpm -Uvh http://centos.alt.ru/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm # 意図せず標準外のリポジトリを使うのを避けるため無効化、使う場合は明示する # リポジトリ設定ファイルのenabledを1から0にする vi /etc/yum.repos.d/centalt.repo [CentALT] enabled=0 # CentALTリポジトリを使ってApacheをアップデート yum --enablerepo=CentALT update httpd |
最後の方に、以下のような警告が表示されました。
1 | 警告: /etc/httpd/conf/httpd.conf は /etc/httpd/conf/httpd.conf.rpmnew として作成されました。 |
Apache2.2.23のデフォルトのhttpd.confに関するお知らせですね。2.2.15と2.2.23のdiffをとってみたら、Timeoutが60から、120に変更されていたり、設定項目にprefork ITKが増えていたりしていました。設定ファイルのインクルード状況等によって変わってきますので、各自の判断で切り替える等しましょう。また、 /etc/httpd/conf.d/proxy_ajp.confという設定ファイルが作成されていました。影響を与えることがないか確認しておきましょう。
以上で完了です。
Apacheが再起動できない場合の対処法
元々のhttpd.confの状態や、インクルードしている設定ファイルの状態によって変わってくるので、一概には言えませんが、ほとんど初期設定のままの私の環境では、以下のようなエラーが表示され、Apacheの再起動ができませんでした。その場合の対処法をメモしておきます。
Apache2.2.15をインストールしたときに作られたhttpd.confをそのまま使って、今回新しく作られたhttpd.conf.rpmnewは使っていないという状況下です。
1 2 3 4 5 6 7 8 | service httpd restart httpd を停止中: [失敗] httpd を起動中: [Wed Feb 06 15:20:10 2013] [warn] module proxy_ajp_module is already loaded, skipping (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs [失敗] |
4〜7行目は、80のポートをすでに使用しているために出ているエラーです。うまくApacheをshutdownできていないようです。Apacheのプロセスを強制終了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # httpdのプロセスを確認 ps aux | grep httpd root 2319 0.0 0.7 522720 7180 ? Ss Feb04 0:10 /usr/sbin/httpd apache 15691 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd apache 15692 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd apache 15693 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd apache 15694 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd apache 15695 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd apache 15696 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd apache 15697 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd apache 15698 0.0 0.6 522856 6468 ? S 10:39 0:00 /usr/sbin/httpd root 18454 0.0 0.0 107448 964 pts/1 S+ 16:02 0:00 grep httpd # rootで実行されているプロセスを終了させる kill 2319 |
警告は表示されますが、無事に起動できました。
1 2 3 | service httpd start httpd を起動中: [Wed Feb 06 16:04:51 2013] [warn] module proxy_ajp_module is already loaded, skipping [ OK ] |
警告の解消
重複による警告
1 2 3 4 | service httpd restart httpd を停止中: [ OK ] httpd を起動中: [Wed Feb 06 16:08:38 2013] [warn] module proxy_ajp_module is already loaded, skipping [ OK ] |
3行目:proxy_ajp_moduleが2重定義されているために表示される警告です。新規に追加されたproxy_ajp.confと元々のhttpd.conf内に存在しています。解消法としては、以下のようなものが考えられます。
- proxy_ajp.confを削除する
- httpd.conf内のproxy_ajp_moduleの設定を削除する
- 新しく作られたhttpd.conf.rpmnewを使うようにする
例: mv httpd.conf httpd.conf.2.2.15.default mv httpd.conf.rpmnew httpd.conf
今回は3. の手法をとりました。
ServerNameによる警告
1 2 3 4 | service httpd restart httpd を停止中: [ OK ] httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName [ OK ] |
3行目:ServerNameの設定がないために表示される警告です。httpd.confないしは、インクルードするファイルで、ServerNameを適宜設定しましょう。
ログ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | # yumリポジトリの追加 rpm -Uvh http://centos.alt.ru/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm http://centos.alt.ru/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm を取得中 警告: /var/tmp/rpm-tmp.Kznpbp: ヘッダ V3 DSA/SHA1 Signature, key ID e9bc4ae1: NOKEY 準備中... ########################################### [100%] 1:centalt-release ########################################### [100%] # 意図せず標準外のリポジトリを使うのを避けるため無効化 vi /etc/yum.repos.d/centalt.repo # CentALTリポジトリを使ってApacheをアップデート yum --enablerepo=CentALT update httpd Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: mirrors.163.com Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.2.15-15.el6.centos.1 will be updated --> Processing Dependency: httpd = 2.2.15-15.el6.centos.1 for package: httpd-devel-2.2.15-15.el6.centos.1.x86_64 ---> Package httpd.x86_64 0:2.2.23-1.el6 will be an update --> Processing Dependency: httpd-tools = 2.2.23-1.el6 for package: httpd-2.2.23-1.el6.x86_64 --> Running transaction check ---> Package httpd-devel.x86_64 0:2.2.15-15.el6.centos.1 will be updated ---> Package httpd-devel.x86_64 0:2.2.23-1.el6 will be an update ---> Package httpd-tools.x86_64 0:2.2.15-15.el6.centos.1 will be updated ---> Package httpd-tools.x86_64 0:2.2.23-1.el6 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: httpd x86_64 2.2.23-1.el6 CentALT 883 k Updating for dependencies: httpd-devel x86_64 2.2.23-1.el6 CentALT 138 k httpd-tools x86_64 2.2.23-1.el6 CentALT 62 k Transaction Summary ================================================================================ Upgrade 3 Package(s) Total download size: 1.1 M Is this ok [y/N]: y Downloading Packages: (1/3): httpd-2.2.23-1.el6.x86_64.rpm | 883 kB 00:04 (2/3): httpd-devel-2.2.23-1.el6.x86_64.rpm | 138 kB 00:02 (3/3): httpd-tools-2.2.23-1.el6.x86_64.rpm | 62 kB 00:02 -------------------------------------------------------------------------------- Total 92 kB/s | 1.1 MB 00:11 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Updating : httpd-tools-2.2.23-1.el6.x86_64 1/6 Updating : httpd-2.2.23-1.el6.x86_64 2/6 警告: /etc/httpd/conf/httpd.conf は /etc/httpd/conf/httpd.conf.rpmnew として作成されました。 Updating : httpd-devel-2.2.23-1.el6.x86_64 3/6 Cleanup : httpd-devel-2.2.15-15.el6.centos.1.x86_64 4/6 Cleanup : httpd-2.2.15-15.el6.centos.1.x86_64 5/6 Cleanup : httpd-tools-2.2.15-15.el6.centos.1.x86_64 6/6 Verifying : httpd-tools-2.2.23-1.el6.x86_64 1/6 Verifying : httpd-devel-2.2.23-1.el6.x86_64 2/6 Verifying : httpd-2.2.23-1.el6.x86_64 3/6 Verifying : httpd-2.2.15-15.el6.centos.1.x86_64 4/6 Verifying : httpd-devel-2.2.15-15.el6.centos.1.x86_64 5/6 Verifying : httpd-tools-2.2.15-15.el6.centos.1.x86_64 6/6 Updated: httpd.x86_64 0:2.2.23-1.el6 Dependency Updated: httpd-devel.x86_64 0:2.2.23-1.el6 httpd-tools.x86_64 0:2.2.23-1.el6 Complete! |