Apache2+PHP+Smarty環境をWindowsに入れてみた


記述時のバージョン:
apache_2.2.4-win32-x86-no_ssl
PHP 5.2.2 installer

必要にせまられた.
ついでにPHP5も動かしてみた.

Apache2

Apache2のダウンロード~インストール

公式サイトのダウンロードページからapache_2.2.4-win32-x86-no_ssl.msiをダウンロード.
src.zipの方は自力でビルドしなくてはならないので敷居が高いです.
というかインストーラがあるのにわざわざそうするメリットがただ使うだけの人には無し.

で,さくっとインストーラを起動.
指示通りに進んで

1_install_information.png
この画面とかも適当に埋める.
密かにIISが80番で動いてるけど無視してfor All Users.

Typical/CustomはTypicalでGO……と言いたい所ですが,インストール先を設定したかったのでCustomで.
Typicalは,こんな意味
まあ,普通の人はこっちを選んでたら問題ないよ的な感じで.

個人的にこういう元々Windowsのではない*1ソフトはProgram Filesとは別にまとめてるのでパスを変更.
ちなみにこれCustomと言ってもあんまり色々設定できるわけでは無いです.

2_install_custom.png

インストール先のパスを変えれるのと,この図のHDDアイコンみたいなのの部分をインストール/非インストールで切り替えられるだけです.
私には詳細がわからないのでこれは触らない.
インストーラの設定項目はこれだけで,Installボタンへ.
IISが80番ポートを専有しているので途中で文句を言われたけれどスルーしてインストール完了.

初期設定

【スタート→すべてのプログラム→Apache HTTP Server 2.2.4→Configure Apache Server→Edit the ~】で設定ファイルを開く.
まわりくどいので”Apache2をインストールしたフォルダ\conf\httpd.conf”を直接開いてもOK.

  • は削除する行で,+ は追加する行です
# IISと共存させるためにポート番号を変更(普通は必要ありません)
- Listen 80
+ Listen 8000
# ドキュメントルートを開発用のディレクトリに設定
- DocumentRoot "C:/ex/Apache2/htdocs"
+ DocumentRoot "C:/development/projectA"
# デフォルトでは,Apache2/htdocs以外にアクセスする時の制限が厳しい
# というよりアクセスできないようになっているので緩和
<Directory />
Options FollowSymLinks
AllowOverride None
-    Order deny,allow
+    Order allow,deny
-    Deny from all
+    Allow from all
Satisfy all
</Directory>

基本的に設定はこれだけ.
反映させるために【スタート→すべてのプログラム→Apache HTTP Server 2.2.4→Control Apache Server→Monitor Apache Servers】で管理ツールを起動してRestart(まだ起動していないならStart)

起動テスト

DocumentRootに適当なHTMLファイルを置いて*2
http://127.0.0.1:8000/index.html
にアクセスしてみる.

*1 : 故にちょっと癖のある

*2 : ここではindex.htmlを置いたとします

PHP5

ダウンロード~インストール

まず公式のダウンロードページから,Windows用のパッケージ(PHP 5.2.2 installer)をダウンロード.
こちらはインストーラを使わなくてもそれほど導入が大変では無さそうですが,
とりあえずインストーラを使っておきます.
自分で入れたってどうせ環境変数を設定しなくてはならないし…….
どうも環境変数までいじってしまうならもうインストーラでいいじゃないと思ってしまう.

こちらもインストーラの指示に従ってNext,Nextと進んでいく.

4_install_php.png
Apache2.2を使っているのでそれを選択.

5_install_php_select_configure.png
Apache2の設定ディレクトリと言えばApache2をインストールしたフォルダ/conf

インストールするモジュールを選択する画面では,
データベースに接続する必要がある場合には,
Extensionsから該当するデータベースのインタフェースを選択しておく.
日本語の処理をしたいならMulti-Byte Stringも必要.
これらの設定は,インストール後でもプログラムの追加と削除で変更を選択すればやり直せるので心配なし.

設定が完了したらInstall.

インストールが完了したらApache2を再起動しておくこと.

起動テスト

Apache2のDocumentRootに次のコードを記述したファイルを任意の名前*3で置く.

<?
phpinfo();
?>

http://127.0.0.1:8000/test.php

6_setup_php_info.png
こんな画面が表示されればOKです.

*3 : ここでは,test.phpとしておきます

PHP5 真のインストール

実は上の方法ではうまく行きません.
いや,うまく行くように見えてうまくいってません.
何が理由かはわかりませんが,zip版で手動インストールを試みたらうまくいったのでそっちを載せます.

まず公式のダウンロードページから,Windows用のパッケージ(PHP 5.2.2 zip package)をダウンロード.
インストールしたいフォルダに展開.
php.ini-distをコピーして名前をphp.iniに変更.

# Apache2のDocumentRootを指定
doc_root = "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"
# PHPをインストールしたフォルダ下のdll
extension_dir = "C:\ext\PHP\ext"
# mbstring,mysqlを使えるようにする
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
# 日本語
mbstring.language = Japanese

手動インストールで環境変数のPATHに自分で書き加えなければならないのでそれもします.
マイコンピュータを右クリックでプロパティ,もしくはコントロールパネルからシステムを選択し,詳細設定タブから環境変数ボタンを選択.システム環境変数のPathにPHPをインストールしたフォルダへのパスを追加します.区切り文字は「;」.先頭に追加したらいいんじゃないでしょうか.

Apache2のインストールは同じ.
設定は,httpd.confに次の行を付け加える.

LoadModule php5_module "PHPをインストールした場所\php5apache2_2.dll"
PHPIniDir "PHPをインストールした場所"
AddType application/x-httpd-php .php

確認方法などは上のPHPインストール方法のところと同じ.

Smarty

バージョン:Smarty 2.6.18 Source

テンプレートエンジンのSmartyもついでに入れます.
ダウンロードページからSmarty 2.x.x Sourceをダウンロード.
適当なフォルダに展開します.必要なフォルダは,その中のlibsだけです.
私は,このlibsフォルダをSmartyとリネームしてC:\ex\php\lib\Smartyとなるようにしました*4

次に単なるrequire_once(‘Smarty.class.php’)でSmartyを参照できるようにphp.iniを変更します.

- ;include_path = ".;c:\php\includes"
+ include_path = ".;c:\ex\php\lib\Smarty"

*4 : わかりにくいですが,展開したフォルダの/libsを/Smartyに改名してc:\ex\php\libにフォルダごとコピーしたということです

まとめ

いつのまにかインストールが物凄く簡単になってました.
とりあえずテストするための環境を作るだけならこれで十分ですね.

PHPの設定は,
Apache2/conf/httpd.confにphp.iniの場所*5とphp5モジュールの読み込み設定*6
Apache2/conf/mime.typesにphpスクリプトとみなす拡張子の設定.
Apache2/conf/extra/httpd-ssl.confにSSLに関する設定((今回SSLは触ってないので詳しく調べてません)が入ってます.

つまり,php.iniを設定したい時は,PHPIniDirのphp.iniを触れば良く,デフォルトではPHPをインストールしたフォルダのphp.iniでOKです.

……まあ,今回はなぜかうまく連携が取れませんでしたが.
自宅と出先の二箇所で確認したので多分環境依存じゃないかもしれない.
一応書いておくと,
apache_2.2.4とPHP 5.2.2の組み合わせで,共にインストーラ版でインストールした場合です.
日時は2007/05/12 14:50:09時点で確認.

*5 : PHPIniDir PHPをインストールした場所

*6 : LoadModule php5_module “PHPをインストールした場所\php5apache2_2.dll”

追記 Vistaについて

Vistaで注意すべき点
WindowsVistaにApache2.2をインストールする
ここを参照

Monitor Apache Serversは,エラーが起こって起動しないのに
インストール時にスタートアップに登録されます.
これはスタートアップから消しておいた方がいいです.

私の環境では,おなじみのstart/stop/restartショートカットが使えず,
サービスを直接 起動/停止/再起動 しなければなりませんでした.
解決方法はあるのかな……まあ,そのうち本家が対応してくれるとは思うんですが.

PHPのインストールは,XPの時と同じでOK.

  1. dfbfdb

    bdfb

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>