レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

ローカル環境のApache2.2(x86) をApache2.4(x64)にアップした際にハマったこと

ローカル環境のApacheを勢いで2.2から2.4へアップしてみた時に、
ノープランでハマったポイントをご紹介しておきます。
Webツール開発などをしていますとローカル環境が必ず必要になります。
そんなローカル環境のApacheを32bit(x86)から64bit(x64)に、
アップグレードを勢いでやってみてしっかりとハマりました。

ローカル環境のApache2.2(x86) をApache2.4(x64)にアップした際にハマったこと

Webツールの開発などをしていると、
開発自体が長期間にわたる事もあってローカル開発環境は必須になります。

また多くのレンタルサーバーは64bit環境が主流になっていますが、
ずっと32bit環境で開発をしてきたこともあって、
ビット演算などを使うと32bitと64bitでは挙動が異なっていたりして不便でした。

そこで、重い腰を上げて3年振りに開発環境のバージョンアップに着手しました。
ちなみに、この記事ではWindows8(64bit)の環境でご紹介します。

Apacheのバージョンアップと言っても、
インストーラも使わず、ダウンロードしたApacheフォルダを
「C:\」直下に配置し、既存の環境と共存させる形でインストールしました。

あまりやらないかもしれませんが、
Apacheは簡単な手順で複数インストールすることができます。

 

さらっと触れると以下で「httpd-2.4.33-x64-vc11-r2.zip」をダウンロードし、
解凍してできたApacheを「c:\Apache2464」へ配置しました。
※フォルダ名は何でも構いません。

Apache Haus Downloads

httpd-2.4.33-x64-vc11-r2.zip|https://www.apachehaus.com/cgi-bin/download.plx?dli=ixGaOFVaNRTT6x2KSpnR4BlVOpkVFVFdhZEZCF1Z

 

既にApacheがインストーラでインストールされている環境でしたので、
「Open Apache Monitor」はインストールされており利用しています。

次に、新しく配置したApacheをWindowsサービスとして登録します。
今回の場合、以下をコマンドプロンプトから実行します。

まず、Apache配置フォルダに移動します。

cd C:\Apache2464\

次に「httpd.exe」を指定して「-k install -n “Apache2464“」とコマンドを実行します。
ここで指定する「”Apache2464“」部分はサービス名ですので、
分かりやすい名称を入力すれば問題ありませんが、半角英数字で指定します。

bin\httpd.exe -k install -n "Apache2464"

登録されたサービスを確認するには、
「コントロール パネル\すべてのコントロール パネル項目\管理ツール」と開き「サービス」を確認します。
指定した名称でサービスが登録されていれば、Apacheのインストール自体は完了です。

apache-22to24upgrade_st01

サービスの複数登録・Apache2.2,2.4のサービス共存

 

「Open Apache Monitor」にもサービスが表示されるようになっているはずです。

apache-22to24upgrade_st02

Open Apache Monitorの複数表示・Apache2.2,2.4のサービス共存

 

ちなみに誤ってサービスの登録をしてしまった場合は、
以下手順で削除できます。

そのまま実行してもまだ起動はしません。
httpd.confの修正が必要なのはいつもの事です。が、

今回は既に稼働しているApache2.2のhttpd.confが既にあるわけです。
それをそのまま使いたい!と楽したいのは人の業というものです。

httpd.confがそのままでは動かない。

そうなんですね。
かなり変更が入っているようで、以下のApache公式サイトに書かれています。

(公式)英語-Upgrading to 2.4 from 2.2 – Apache HTTP Server Version 2.4-

(Google翻訳)日本語-Upgrading to 2.4 from 2.2 – Apache HTTP Server Version 2.4-

誰でも影響を受けるであろう記述は以下の様な部分かと思います。
Deny from all」の記述が「Require all denied

In this example, there is no authentication and all requests are denied.

2.2 configuration:

2.4 configuration:

In this example, there is no authentication and all requests are allowed.

Allow from all」の記述が「Require all granted」

2.2 configuration:

2.4 configuration:

と、書き換わっています。

という訳で、旧記述はすべて書き直す必要があります。
私の場合で言えば、複数のディレクトリ指定を行って、
複数サイトのテスト環境をApacheで利用していましたので以下のように書き換わります。

Apache2.2では・・・

Apache2.4では・・・

 

もうこの辺が分かった辺りでhttpd.confのコピー利用は止めました。
新しく生成されたApache2.4のhttpd.confに、
設定をコピペして作っていく感じの方が早いと。

Apache2.2以前のhttpd.confには無かった記述としては、
以下の様な変数記述も使われるようになっています。
まぁ、この程度であれば、使っても使わなくてもいい感じなので、
気にするほどでもないでしょうけども。

.htaccessもそのままでは使えない。

こちらもほぼ同じなんですが、
WordPressの「wp-login.php」へのアクセスを制限したいような場合には、
IP縛りなどを使う場合もあるかもしれません。
今回はローカルなので別に気にするようなものでもないのですけども。

 

気軽に手を出してはイケないと改めて思いつつも、
結果的には移植、移植でなんとかなりましたけど。

これが分かっていれば、
サーバー環境の設定も焦る必要はなくなるので結果良かったとは思います。

しかし、XSERVERとか、
とっくにApache2.4.6なのに今までハマらなかったんだ?不思議だ。。。

 

尚、本記事は以下のコンテンツの一部になります。


プロモーション

Google or AdMax Promotion (srvpos)

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。