狠狠撸

狠狠撸Share a Scribd company logo
PHP勉強会SIDE-B (第1回)
WindowsでのPHPとのつきあい方
(前編)
id:msakamoto-sf
坂本 昌彦
アジェンダ
●
1.インストーラを用いずにzipファイルからインストー
ルする方法
●
2.Windows用PHPバイナリの構成
●
3.CUIで動かす時の最小構成
1.インストーラを用いずにzipファイルか
らインストールする方法
Windowsでの
PHPのインストール
ところで
Windowsって使ってますよ
ね?
MacOSXとか*nix使いは
寝ちゃうかも???(;^^)ヘ..
インストール
どうやってインストールして
いるか?
インストール方法
XAMP?
インストール方法
インストーラパッケージ?
インストール方法
本で/WEBで見たとおり?
インストールして???
インストールした後
なんとなく
放置してませんか?
なんとなく
放置すると???
半年おきとか。
いつのまにやらバージョンが
上がってたり。
泣く泣く
入れ直し。
(つд?)???
厭な所
?XAMP
?インストーラ
↓
レジストリとか弄られるのが
厭。
プロっぽく
zipパッケージで全てのファ
イル?ディレクトリ構成を掌
握し、管理する。
こだわり。
レジストリを弄る必要も
無い!!
(???)
PHP本体の
バージョンアップも、ファイル
の入れ替えだけでほぼOK
工夫すれば???
PHP4とPHP5の共存も!
試したことは無いけど???
(多分マイナーバージョン
間の共存もOK)
前提
WinXP SP2
Apache 2.0.5x系列
PHP 5.2.6
主要な二种类のダウンロード
今回は上を使います。
ダウンロードしたら
解凍して、好きな場所にう
つします。
例
(in_vitroというのは気にしなくてOK)
~
php.iniは
php.ini-recommended
を
php.ini
にコピーします。
Apache
httpd.confの編集
以下を追記。(パターン)
LoadModule php5_module
"C:/in_vitro/apps/php5/php5apache2.dll"
# ↑は実際は一行で。
# (Load Module php5_module "C:/.../php5apache2.dll")
PHPIniDir "C:/in_vitro/apps/php5"
AddType application/x-httpd-php .php .html
AddType application/x-httpd-php-source .phps
"PHPIniDir"
PHPIniDir: php.iniのある
フォルダを指定。
PHP4と違って
C:WINDOWS とかに
php.iniを置かなくても
平気!
Apacheを再起動???の前に。
Apache.exe -t
で確認。
(何かオプションがアレですが気にしない
で!)
↑OK。
Apache起動できる。
> cd "C:Program FilesApache GroupApache2bin"
> apache -t -f confhttpd_php5.conf
Syntax OK
ディレクトリ指定とかが間違ってた時
???何か出ます。
> cd "C:Program FilesApache GroupApache2bin"
> apache -t -f confhttpd_php5.conf
Syntax error on line 15 of C:/Program Files/Apache
Group/Apache2/conf/httpd_php5.conf:
Cannot load C:/in_vitro/apps/php5/php5apache2.dll into
server:
x8ewx92xe8x82xb3x82xeax82xbdx83x82x83Wx83x85x
81[x83x8bx82x
aax8cxa9x82xc2x82xa9x82xe8x82xdcx82xb9x82xf1x
81B
Apacheを起動したら
適当な公開ディレクトリで
"<?php phpinfo(); ?>"
を叩いて動けばOK.
php.iniの設定内容は
大垣先生のWikiを見るとよい。
http://wiki.ohgaki.net/
「PHP/tips/推奨php.ini設定」
など。
PHPのバージョンが変わった時は???
1.PHPをDLする。
2.httpd.confの書き換え
3.php.iniの移行
(4.extensionのコピー)
Apacheを入れ直した時は???
1.httpd.confの追記
2.Windows用PHPバイナリの構成
(直下のファイル群)
●
php5ts.dll - PHP言語の実行コアライブラリ
●
php.ini-{dist|recommended} - php.iniの雛形
●
php({-cgi|-win}).exe - CLIやCGIでのPHP実行
ファイル
●
php5apache*.dll, php5{is|ns}api.dll - 各種
Webサーバー用モジュール
●
go-pear.bat - PEARライブラリインストールバッチ
●
他のDLL - MySQLやSSLなどのネイティブライブラリ
ディレクトリなど
●
dev/ - 静的ライブラリ(php5ts.lib)置き場
●
ext/ - PECLモジュール(dll)置き場
●
extras/ - MIB, SSL, PDF関係のファイル置き場
●
PEAR/ - PEARインストールパッケージ(*.phar)
●
PHPの動作とファイルの関係
(1)Apacheモジュールの場合
Apache.exe
↓
php5apache*.dll
↓
php5ts.dll
PHPの動作とファイルの関係
(2)CGIの場合
Apache.exe/IIS
↓
php-cgi.exe
↓
php5ts.dll
PHPの動作とファイルの関係
(3)CLIからの場合
(コマンドプロンプト)
↓
php.exe
↓
php5ts.dll
php-win.exeが謎だけど???
結局
php5ts.dll
に行き着きます。
php.ini
重要
デフォルトでは何処にphp.iniがあると
(php5ts.dllは)思っているか。
(PHPIniDirをコメントアウ
トしてApacheを起動)
php.iniの場所の教え方
(1)Apacheモジュール
PHPIniDir ディレクティブ
PHPIniDir ディレクティブの効果
PHPIniDir "C:/in_vitro/
apps/php5"
php.iniの場所の教え方
(2)exe系から叩く時
"-c "オプション
php(-cgi).exe -c ...php.ini
php.iniは重要
???ですが、セキュリティ関係の
設定は大垣先生の資料を参
考にするとして。
プログラミングする上で
普通に重要な設定が二つありま
す。
二つ。
"include_path"
と
"extension_dir"
"include_path"
{require|include}(_once)す
る時に指定されたファイルを探
すディレクトリの一覧。
"include_path"の設定を
ミスると???
PEARのライブラリファイルが見つ
からなくなったりします。
アプリのrequire/includeで失敗
したりします。
"extension_dir"
"extension"で読み込むDLLの
入っているディレクトリ。
MySQL接続とか、mbstringと
か???。
"extension_dir"の設定を
ミスると???
DBに接続できなくなったり、いろ
いろと出来なくなります。
これほど重要な設定なのに???
php.ini-recommendedの
デフォルト設定は役立たず。
(??ω?`)
"include_path"のデフォルト
;include_path =
".;c:phpincludes"
コメントアウトされてるし。
"extension_dir"のデフォルト
extension_dir = "./"
イヤ、それ、違うし。
なので
この二項目はすぐに正しいディレ
クトリに書き換えて下さい。
include_pathについてはPEAR
を入れてから調整しても良いで
すが???
extension_dirについては直ぐに。
でないと、php_zipやmbstring
などが読み込めない
=
PEARのインストールを始めとして
色々支障が出ます。
3.CUIで動かす時の最小構成
突然ですが、
Windows用のPHPって
"可愛い"と思うのです。
理由
?好きな場所における。
?ファイルの組み合わせが
楽。
?*nixと違ってディレクトリ
構成の制約が少ない。
極端な話
php5ts.dll
php.exe
php.ini
だけでCLIで実験できる!
CLIの構成例
●
php5ts.dll
●
php.ini
●
php(-win).exe : php-winとの使い分けは後述。
●
ext/php_***.dll : お好みのDLL
●
boot.bat : プログラム実行用BATファイル
●
●
他、PHPスクリプトファイル。
秘密1
%~dp0
%~dp0とは?
%0がバッチファイル名。
(boot.bat)
~dでドライブ名展開。
~pでファイル名を除くパス
名に展開。
秘密2
php(-win).exeの"-d"オプ
ション。
"-d"オプション
php.iniの設定項目を上
書き。
秘密3
php-win.exe
+
"start"コマンド in
boot.php
php-win.exe
コマンドプロンプトウインドウ
を表示せずにPHPスクリプ
トを実行可能。
"start"コマンド
kickしたプロセスの終了を
待たずに、処理続行
=
boot.bat自体は終了。
組み合わせれば???
タスクスケジューラからkick
される定時実行バッチも
PHPスクリプトで書ける!
配布ファイルも柔軟に構成可能だから
PHP実行環境と一緒に配
布することも可能。
(=配布先でわざわざPHP
を"インストール"する必要
無し。)
まとめ
●
インストーラやXAMPを使わず、zipから展開すれば、
レジストリも弄らないし、PHP本体のバージョンアップ
に対する追従も楽。
●
php5ts.dll, php.ini重要。
●
php.iniではextension_dirとinclude_pathに注
意。
●
"%~dp0", php-win.exe, "start"コマンドでPHPス
クリプトを柔軟に配布?実行可能。
Windows用のPHP5バイナリって
実は結構使い勝手が良
い言語環境だと思う。

More Related Content

PHP With Windows binary