技術記事については、Qiitaにも稀に投稿しています。

XAMPPを使わず、Windows10にApache&PHP環境を構築する

couple

WindowsならXAMPP、MacならMAMPを使うのが楽だし、一般的だし、それで十分なのかもしれないけど、勉強がてら諸々を個々に入れて構築してみました。

[toc]

なお、今回の構築で使うバージョンは以下の通りです。

  • Windows10
  • Apache 2.4.16 Win64
  • PHP 5.6 (5.6.13)

今回作りたい環境

もちろん、Windows10環境にApacheとPHPインストール、なのだけど、Cドライブをなるべく圧迫したくないという筆者の想いもあるので、実体をDドライブにぶち込んで、シンボリックリンクを張ります。

というわけで、以下のような感じ。

apachePhp

それぞれのシンボリックリンクが指す先はこんな感じ。(ディレクトリ名そのままw)

apachePhp2

PHP5.6

まずはPHPのインストールから行います。(Apacheのhttpd.confにPHP関連の修正が入るので。)

PHPのダウンロード

PHP For Windows(http://windows.php.net/download/)からダウンロードします。この時点での最新はPHP 5.6 (5.6.13)でした。

php1

今回は64bit版なのですが、VC11 x64 Thread Safe (2015-Sep-04 02:29:45)というほうを使います。Non Thread Safeにしてしまうと、後々php5apache2_4.dllがないという問題に直面します(たぶん)。

デスクトップに落として、解凍します。

php2

上述の通り、実体はDドライブに移動させますので、"D:\Tools\php-5.6.13-Win32-VC11-x64"となります。この辺りはお好みだと思うので、"C:\php5"とかでも全然いいと思います。

php.iniの作成、編集

まず、フォルダの中にあるphp.ini-developmentphp.iniにリネームします。(念の為、オリジナルをバックアップコピーしておくといいでしょう)

修正箇所は以下の通りです。(後々MySQLを使うことを想定して。)

Before

;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll

;date.timezone =
; extension_dir = "ext"

After

extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll

date.timezone =  "Asia/Tokyo"
extension_dir = "C:/Users/xxxxxxx/Development/env/php/ext"

環境変数の追加

どこからでもphp.exeを実行できるように(一応)しておきます。

コントロールパネル > すべてのコントロールパネル項目 > システム > システムの詳細設定

php3

詳細設定 > 環境変数

php4 php5

"システム環境変数"の中にある"Path"の最後尾に、;C:\Users\xxxxxxx\Development\env\phpと追記します。

もし、コマンドプロンプトを開いていたら一旦再起動して、"php -v"と打ち、以下のようにPHPのバージョンが確認できればOKです。

php6

Apache2.4

続いて、Apacheのインストールを行います。

Apacheのダウンロード

Apache Lounge(http://www.apachelounge.com/download/)からダウンロードします。今回は64bit版を使いますので上のリンクからダウンロードします。

apache1

とりあえずデスクトップに落として、解凍します。

apache2

PHPと同じく、今回は実体をDドライブに移動させますので、"D:\Tools\httpd-2.4.16-win64-VC14\Apache24"となります。この辺りはお好みだと思うので、"C:\Apache24"とかでも全然いいと思います。

httpd.confの編集

諸々の設定を行うため、httpd.confを書き換えます。

追加

LoadModule php5_module "C:/Users/xxxxxxx/Development/env/php/php5apache2_4.dll"

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
PHPIniDir "C:/Users/xxxxxxx/Development/env/php"

修正

#ServerRoot "c:/Apache24"
ServerRoot "c:/Users/xxxxxxx/Development/env/apache"

#ServerAdmin admin@example.com
ServerAdmin xxxxxx@xxxxxxx.com

#ServerName www.example.com:80
ServerName kt-kiyoshi.com:80

#DocumentRoot "c:/Apache24/htdocs"
DocumentRoot "C:/Users/xxxxxxx/Development/env/apache/htdocs"

#<Directory "c:/Apache24/htdocs">
<Directory "C:/Users/xxxxxxx/Development/env/apache/htdocs">

Apacheの起動

起動する前にhttpd.confが正しく書かれているかをテストしてみます。

C:\Users\xxxxxxx\Development\env\apache\bin>httpd -t
Syntax OK

OKなので、このままコマンドで起動してもいいのですが、サービスに登録して起動することにします。

C:\Users\xxxxxxx\Development\env\apache\bin>httpd -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.

コントロールパネル > すべてのコントロールパネル項目 > 管理ツール > サービス

Apache2.4を右クリックして"開始"とします。

apache3

基本は、httpd.confに問題がなければ正しく起動するかと思います。が、Windows10では、なのかはわかりませんが、「"VCRUNTIME140.dll"がない」ということでエラーになることがあるようです。(参考

その際は、上記の参考ページにもある通り、「Visual C++ 2015 ランタイムのインストールが必要」なので、インストールすれば解決できます。

ブラウザで確認

Apacheが正しく動作しているかを確認します。

https://kt-kiyoshi.com/

apache4

次にPHPの動作を確認するため、htdocsの下にPHPファイル(info.php)を作成します。

[php]
<?php
phpinfo();
?>
[/php]

https://kt-kiyoshi.com/info.php

php7


これで、"XAMPPを使わず、Windows10にApache&PHP環境を構築する"は完了となりますが、XAMPPにはMySQLが含まれているので、それも別途インストールしておくといいかなと思います。