WindowsにインストールしたapacheでPHPを使えるようにする

1. PHPのインストール

PHPのサイトよりPHP 5.4 (5.4.31)のVC9 x86 Thread Safe (2014-Jul-24 01:06:39)からzipファイルをダウンロードします。
PHP5.5系はapache2.4以上が必要らしく、apache2.2をインストールしている私の環境では動きませんでした。

  1. ダウンロードしたzipファイルを解凍
  2. 解凍されたフォルダのフォルダ名をphpに変更
  3. phpフォルダをCドライブの直下に移動(C:\php)。
  4. phpフォルダ内にある「php.ini-development」をC:\Windowsへコピー。
  5. コピーしたphp.ini-developmentをphp.iniにファイル名を変更

2. php.iniファイルの編集

1の最後に設定したphp.iniを開いて以下の該当箇所を編集します。

httpd.conf

output_handler

phpファイルのエンコードと出力するHTMLのコードが違う場合に機能します。ブラウザで表示した場合に文字化けする場合はコメントアウトします。
また、php.iniで設定しなくてもphpファイルの方で対応できるので、そちらで制御したほうが汎用的です。

default_charset = “UTF-8”

HTTPヘッダのContent-Type: text/html; charset=*****の*****に反映されます。

mbstring.internal_encoding = UTF-8

日本語等のマルチバイト文字を扱う関数でのデフォルトエンコードになります。関数を使用する場合にエンコードの指定がなかった場合、この指定が有効になります。

mbstring.http_input、mbstring.http_output、mbstring.encoding_translation

HTTP通信の際の文字コードを変換する場合に指定します。ここではpassとOff(無変換)にしていますが、変換が必要な場合は文字コード、Onを記載します。

mbstring.detect_order

文字コードの自動判別の際に確認するエンコードを順番に記載します。ここではautoとしていますが、詳細に指定したい場合は優先順位の高い順にカンマ区切り(例:UTF-8,SJIS,EUC-JP)で記載します。

mbstring.substitute_character

文字変換に失敗した時に表示する文字です。ここでは表示しないのでnoneを指定しています。

mbstring.func_overload

シングルバイト向けの関数をマルチバイト向けの関数に変換する際の設定らしいのですが…、詳しくはわかりませんでした。基本は0にするようです。

3. httpd.confファイルの編集

モジュールの追加はphpをインストールしたパスを指定します(今回はCドライブ直下)。モジュールが記載されているブロックの最後に追加します。
拡張子phpとphpsが利用できるように<IfModule mime_module>の中に追記する。

4. PHPの動作確認

info.php(ファイル名はなんでもいい)を作り以下のコードを記載します。

apacheのドキュメントルート直下にinfo.phpを置きブラウザでhttp://127.0.0.1/info.phpを開き、以下の様なPHPの情報が表示されれば無事成功となります。

phpinfo

[tmkm-amazon asin=’4899772149′][/tmkm-amazon]

Windowsにapacheをインストール

※検証はWindows7 Professional 64bitで行っています。

WindowsのWebサーバーといえばIISですが、IISはあまり一般的ではないですよね。現在ではNginxに人気が出てきていますが、それでも一番使われているのはやはり「Apache」ではないでしょうか。

そんな多くのレンタルサーバーで使用されているApacheの検証環境をWindowsに構築してみます。構築と言ってもインストールするだけですが。

1. Apacheの公式サイトでインストーラーをダウンロード

https://httpd.apache.org/download.cgiにアクセスしてWindows用のインストーラーをダウンロードします。今回は2.2系のApacheをインストールしようと思います。

  • Apache HTTP Server 2.2.27 (httpd)から「Binaries」をクリック。Apacheダウンロードサイト
  • win32のフォルダをクリック。Apacheタイプ選択画面
  • 今回はhttpd-2.2.25-win32-x86-openssl-0.9.8y.msi をダウンロードします。Apacheインストーラーダウンロード

2. インストーラーを起動

インストーラー画面を時系列で…、どうぞ。

Apacheインストーラー画面1 Apacheインストーラー画面2 Apacheインストーラー画面3 Apacheインストーラー画面4
今回はドメイン名に自分自身を指すIP「127.0.0.1」を設定しました。
Apacheインストーラー画面5
標準インストールで進めます。
Apacheインストーラー画面6
Apacheのインストール場所を聞いてきます。あまりパスが深くなるもの面倒なので、Cドライブの直下を指定しました。
Apacheインストーラー画面7 Apacheインストーラー画面8 Apacheインストーラー画面9

これでApacheのインストールは終了。ブラウザで127.0.0.1を開いて以下の様な表示がされればインストール成功です。

ブラウザでApacheの動きを確認

Windowsのスタートメニューにも新しいプログラムとしてApacheが追加されているハズです。

Apacheだけだと検証環境としてあまり使えないので、ここにPerlやらPHPやらMySQLやらを入れていくわけですが、それはまた今度。

あくまでも検証環境として使うのが無難かと思います。軽い気持ちで公開サーバーにはしないように。

[tmkm-amazon asin=’4774150363′][/tmkm-amazon]

ApacheとPHPはシンボリックリンクでも日本語フォルダは使えない

apacheは日本語フォルダを使用できません。
Windows+apacheでWEBサーバーを構築した際、rootはもちろん配下のフォルダの名前も英語名にしますが、どうしても日本語フォルダを使用しなければいけない場合、“Link Shell Extension”などを使ってシンボリックリンクで回避します。

が、PHPの場合、これがうまく動かず、ブラウザに以下のようなエラーメッセージが表示されます。

上記エラーはapacheと言うよりはPHPのエラーになり、index.phpが存在しないと言っています。

PHPを使用する場合「日本語フォルダは使わない」しかなさそうです。