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:/......
"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
...
ディレクトリ指定とかが間違ってた時
・・・何か出ます。
> cd "C:Program FilesApache GroupApache2bin"
> apache -t -f confhttpd_php5.conf
Syntax error o...
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}...
ディレクトリなど
●
dev/ - 静的ライブラリ(php5ts.lib)置き場
●
ext/ - PECLモジュール(dll)置き場
●
extras/ - MIB, SSL, PDF関係のファイル置き場
●
PEAR/ - PEARインスト...
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ファイ...
秘密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とi...
Windows用のPHP5バイナリって
実は結構使い勝手が良
い言語環境だと思う。
Upcoming SlideShare
Loading in …5
×

PHP With Windows binary

4,011 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,011
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PHP With Windows binary

  1. 1. PHP勉強会SIDE-B (第1回) WindowsでのPHPとのつきあい方 (前編) id:msakamoto-sf 坂本 昌彦
  2. 2. アジェンダ ● 1.インストーラを用いずにzipファイルからインストー ルする方法 ● 2.Windows用PHPバイナリの構成 ● 3.CUIで動かす時の最小構成
  3. 3. 1.インストーラを用いずにzipファイルか らインストールする方法 Windowsでの PHPのインストール
  4. 4. ところで Windowsって使ってますよ ね?
  5. 5. MacOSXとか*nix使いは 寝ちゃうかも・・・(;^^)ヘ..
  6. 6. インストール どうやってインストールして いるか?
  7. 7. インストール方法 XAMP?
  8. 8. インストール方法 インストーラパッケージ?
  9. 9. インストール方法 本で/WEBで見たとおり?
  10. 10. インストールして・・・ インストールした後
  11. 11. なんとなく 放置してませんか?
  12. 12. なんとなく 放置すると・・・
  13. 13. 半年おきとか。 いつのまにやらバージョンが 上がってたり。
  14. 14. 泣く泣く 入れ直し。 (つд・)エーン
  15. 15. 厭な所 ・XAMP ・インストーラ ↓ レジストリとか弄られるのが 厭。
  16. 16. プロっぽく zipパッケージで全てのファ イル・ディレクトリ構成を掌 握し、管理する。
  17. 17. こだわり。 レジストリを弄る必要も 無い!! (゚∀゚)
  18. 18. PHP本体の バージョンアップも、ファイル の入れ替えだけでほぼOK
  19. 19. 工夫すれば・・・ PHP4とPHP5の共存も!
  20. 20. 試したことは無いけど・・・ (多分マイナーバージョン 間の共存もOK)
  21. 21. 前提 WinXP SP2 Apache 2.0.5x系列 PHP 5.2.6
  22. 22. 主要な二種類のダウンロード
  23. 23. 今回は上を使います。
  24. 24. ダウンロードしたら 解凍して、好きな場所にう つします。
  25. 25. 例 (in_vitroというのは気にしなくてOK) ~
  26. 26. php.iniは php.ini-recommended を php.ini にコピーします。
  27. 27. Apache httpd.confの編集
  28. 28. 以下を追記。(パターン) 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
  29. 29. "PHPIniDir" PHPIniDir: php.iniのある フォルダを指定。
  30. 30. PHP4と違って C:WINDOWS とかに php.iniを置かなくても 平気!
  31. 31. Apacheを再起動・・・の前に。 Apache.exe -t で確認。
  32. 32. (何かオプションがアレですが気にしない で!) ↑OK。 Apache起動できる。 > cd "C:Program FilesApache GroupApache2bin" > apache -t -f confhttpd_php5.conf Syntax OK
  33. 33. ディレクトリ指定とかが間違ってた時 ・・・何か出ます。 > 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
  34. 34. Apacheを起動したら 適当な公開ディレクトリで "<?php phpinfo(); ?>" を叩いて動けばOK.
  35. 35. php.iniの設定内容は 大垣先生のWikiを見るとよい。 http://wiki.ohgaki.net/ 「PHP/tips/推奨php.ini設定」 など。
  36. 36. PHPのバージョンが変わった時は・・・ 1.PHPをDLする。 2.httpd.confの書き換え 3.php.iniの移行 (4.extensionのコピー)
  37. 37. Apacheを入れ直した時は・・・ 1.httpd.confの追記
  38. 38. 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などのネイティブライブラリ
  39. 39. ディレクトリなど ● dev/ - 静的ライブラリ(php5ts.lib)置き場 ● ext/ - PECLモジュール(dll)置き場 ● extras/ - MIB, SSL, PDF関係のファイル置き場 ● PEAR/ - PEARインストールパッケージ(*.phar) ●
  40. 40. PHPの動作とファイルの関係 (1)Apacheモジュールの場合 Apache.exe ↓ php5apache*.dll ↓ php5ts.dll
  41. 41. PHPの動作とファイルの関係 (2)CGIの場合 Apache.exe/IIS ↓ php-cgi.exe ↓ php5ts.dll
  42. 42. PHPの動作とファイルの関係 (3)CLIからの場合 (コマンドプロンプト) ↓ php.exe ↓ php5ts.dll
  43. 43. php-win.exeが謎だけど・・・ 結局 php5ts.dll に行き着きます。
  44. 44. php.ini 重要
  45. 45. デフォルトでは何処にphp.iniがあると (php5ts.dllは)思っているか。 (PHPIniDirをコメントアウ トしてApacheを起動)
  46. 46. php.iniの場所の教え方 (1)Apacheモジュール PHPIniDir ディレクティブ
  47. 47. PHPIniDir ディレクティブの効果 PHPIniDir "C:/in_vitro/ apps/php5"
  48. 48. php.iniの場所の教え方 (2)exe系から叩く時 "-c "オプション php(-cgi).exe -c ...php.ini
  49. 49. php.iniは重要 ・・・ですが、セキュリティ関係の 設定は大垣先生の資料を参 考にするとして。
  50. 50. プログラミングする上で 普通に重要な設定が二つありま す。
  51. 51. 二つ。 "include_path" と "extension_dir"
  52. 52. "include_path" {require|include}(_once)す る時に指定されたファイルを探 すディレクトリの一覧。
  53. 53. "include_path"の設定を ミスると・・・ PEARのライブラリファイルが見つ からなくなったりします。 アプリのrequire/includeで失敗 したりします。
  54. 54. "extension_dir" "extension"で読み込むDLLの 入っているディレクトリ。 MySQL接続とか、mbstringと か・・・。
  55. 55. "extension_dir"の設定を ミスると・・・ DBに接続できなくなったり、いろ いろと出来なくなります。
  56. 56. これほど重要な設定なのに・・・ php.ini-recommendedの デフォルト設定は役立たず。 (´・ω・`)
  57. 57. "include_path"のデフォルト ;include_path = ".;c:phpincludes" コメントアウトされてるし。
  58. 58. "extension_dir"のデフォルト extension_dir = "./" イヤ、それ、違うし。
  59. 59. なので この二項目はすぐに正しいディレ クトリに書き換えて下さい。 include_pathについてはPEAR を入れてから調整しても良いで すが・・・
  60. 60. extension_dirについては直ぐに。 でないと、php_zipやmbstring などが読み込めない = PEARのインストールを始めとして 色々支障が出ます。
  61. 61. 3.CUIで動かす時の最小構成 突然ですが、 Windows用のPHPって "可愛い"と思うのです。
  62. 62. 理由 ・好きな場所における。 ・ファイルの組み合わせが 楽。 ・*nixと違ってディレクトリ 構成の制約が少ない。
  63. 63. 極端な話 php5ts.dll php.exe php.ini だけでCLIで実験できる!
  64. 64. CLIの構成例 ● php5ts.dll ● php.ini ● php(-win).exe : php-winとの使い分けは後述。 ● ext/php_***.dll : お好みのDLL ● boot.bat : プログラム実行用BATファイル ● ● 他、PHPスクリプトファイル。
  65. 65. 秘密1 %~dp0
  66. 66. %~dp0とは? %0がバッチファイル名。 (boot.bat) ~dでドライブ名展開。 ~pでファイル名を除くパス 名に展開。
  67. 67. 秘密2 php(-win).exeの"-d"オプ ション。
  68. 68. "-d"オプション php.iniの設定項目を上 書き。
  69. 69. 秘密3 php-win.exe + "start"コマンド in boot.php
  70. 70. php-win.exe コマンドプロンプトウインドウ を表示せずにPHPスクリプ トを実行可能。
  71. 71. "start"コマンド kickしたプロセスの終了を 待たずに、処理続行 = boot.bat自体は終了。
  72. 72. 組み合わせれば・・・ タスクスケジューラからkick される定時実行バッチも PHPスクリプトで書ける!
  73. 73. 配布ファイルも柔軟に構成可能だから PHP実行環境と一緒に配 布することも可能。 (=配布先でわざわざPHP を"インストール"する必要 無し。)
  74. 74. まとめ ● インストーラやXAMPを使わず、zipから展開すれば、 レジストリも弄らないし、PHP本体のバージョンアップ に対する追従も楽。 ● php5ts.dll, php.ini重要。 ● php.iniではextension_dirとinclude_pathに注 意。 ● "%~dp0", php-win.exe, "start"コマンドでPHPス クリプトを柔軟に配布・実行可能。
  75. 75. Windows用のPHP5バイナリって 実は結構使い勝手が良 い言語環境だと思う。

×