[FreeBSD10]apache 2.2 > 2.4 ではまった件

Pocket

■pkg管理って危険?
phpのバージョンが上がっているようなので、夏休みだし、アップデートしておこうと思った。pkg upgrade で一発更新なので楽よね。ports で管理していた頃は大変だったなぁ。。。などと感慨に浸るまもなく、頼みもしないのにapache2.2 が apache2.4 に上書きされた。

。。。なんだと?

apache2.4 は apache2.2 から設定があちこち変更されていて、単純に設定ファイルを流用しただけではまともに動かない。寝る前にやるんじゃなかった。とりあえず元に戻してから寝よう。

まずは apache2.4 をアンインストール。

pkg delete apache24

。。。道連れで mod_php が削除された。ちょっといやな予感。気を取り直して、apache2.2 を再インストール。

pkg install apache22

続いて、mod_php を再インストール。

pkg install mod_php

依存関係で apache2.4 がインストールされ、問答無用で apache2.2 は削除された。だめじゃん。恐ろしいことに、デフォルトのドキュメントルートが置かれている /usr/local/www/apache22 が道連れで消滅。/usr/local/www/apache24 が代わりに作られる。それはいいんだけど(よくないけど)、ここにコンテンツ置いていたらアウトってこと?
 業務の本番系とかだったら、背筋が寒くなるどころじゃないよね。

とりあえず、サイト(ここだよ!)が見えなくなっちゃったので、サービス(httpd)を落としてふて寝した。

pkg が「ぼくの考えた最強のバージョンの組合わせ」をごり押ししてくるのは何とかならんのかな。ports から入れても pkg が「ぼくの考えた・・」で上書きしようとしてくれちゃうし。この辺の運用ノウハウは検索してもあまり出てこない。もうちょっとこなれるのを待つしかないか。CentOS 7 が出たからなぁ。RedHat 系もいろいろ変わってておもしろそうなんだよなぁ。。。Linux へ帰ろうかな、なんてね。

■Apache 2.2 → 2.4 への修正点

それはさておき。とりあえず復旧までのサマリーなど。
当然、/etc/rc.conf も修正ね。 (apache22→apache24)

○httpd.conf の修正点

・apache22/httpd.conf は捨て。
・起動時のエラーメッセージを手がかりにモジュールを有効化。
・セキュリティ設定を追加(必須ではない)。
・mod_phpを追加しても動かない php への対処。
・VirtualHost、SSLの設定ファイルの読み込み。

[/usr/local/etc/apache24/httpd.conf]
88c88
< #LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
---
> LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
130c130
< #LoadModule ssl_module libexec/apache24/mod_ssl.so
---
> LoadModule ssl_module libexec/apache24/mod_ssl.so
140c140
< #LoadModule cgi_module libexec/apache24/mod_cgi.so
---
> LoadModule cgi_module libexec/apache24/mod_cgi.so
151c151
< #LoadModule rewrite_module libexec/apache24/mod_rewrite.so
---
> LoadModule rewrite_module libexec/apache24/mod_rewrite.so
197a198,199
> ServerTokens ProductOnly
> TraceEnable off
255c257
<     DirectoryIndex index.html
---
>     DirectoryIndex index.html index.php
383a386,387
>     AddType application/x-httpd-php .php
>     AddType application/x-httpd-php-source .phps
471c475
< #Include etc/apache24/extra/httpd-vhosts.conf
---
> Include etc/apache24/extra/httpd-vhosts.conf
488c492
< #Include etc/apache24/extra/httpd-ssl.conf
---
> Include etc/apache24/extra/httpd-ssl.conf

○VirutalHost(httpd-vhosts.conf)の変更点

・apache22/extra → apache24/extra へコピー。
・NameVirtualHost 行の無効化
・アクセス制限の書式変更

[/usr/local/etc/apache24/extra/httpd-vhosts.conf]
1c1
< NameVirtualHost *:80
---
> #NameVirtualHost *:80
14,15c14
<     Order allow,deny
<     Allow from all
---
>     Require all granted

○SSL(httpd-ssl.conf)の変更点

・apache22/extra → apache24/extra へコピー。
・SSLMutex → Mutex
・アクセス制限の書式変更

[/usr/local/etc/apache24/extra/httpd-ssl.conf]
68c68,69
< SSLMutex  "file:/var/run/ssl_mutex"
---
> #SSLMutex  "file:/var/run/ssl_mutex"
> Mutex default ssl-cache
252,254c253
<         Order Allow,deny
<         Allow from All
<         AllowOverride All
---
>         Require all granted
258,259c257
<         Order Allow,deny
<         Allow from All
---
>         Require all granted

とりあえずこんな感じ。

これまでのコメント

  1. 管理人 :

    追記:CGIが死んでいるのを発見したため、mod_cgi の有効化を追記。

この記事にコメントする

Powered by WordPress, WP Theme designed by WSC Project. ログイン