0
PHP勉強会SIDE-B (第1回)  WindowsでのPHPとのつきあい方 (前編) id:msakamoto-sf 坂本 昌彦
アジェンダ <ul><li>1.インストーラを用いずにzipファイルからインストールする方法 </li></ul><ul><li>2.Windows用PHPバイナリの構成 </li></ul><ul><li>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  &quot;C:/in_vitro/apps/php5/php5apache2.dll&quot; # ↑ は実際は一行で。 # (Load Module php5_mo...
&quot;PHPIniDir&quot; PHPIniDir: php.ini のあるフォルダを指定。
PHP4と違って C:WINDOWS  とかに php.ini を置かなくても 平気!
Apacheを再起動・・・の前に。 Apache.exe -t で確認。
(何かオプションがアレですが気にしないで!) ↑ OK 。 Apache 起動できる。 > cd &quot;C:Program FilesApache GroupApache2in&quot; > apache -t -f confhttp...
ディレクトリ指定とかが間違ってた時 ・・・何か出ます。 > cd &quot;C:Program FilesApache GroupApache2in&quot; > apache -t -f confhttpd_php5.conf Synt...
Apacheを起動したら 適当な公開ディレクトリで &quot;<?php phpinfo(); ?>&quot; を叩いて動けば 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バイナリの構成 (直下のファイル群) <ul><li>php5ts.dll - PHP言語の実行コアライブラリ </li></ul><ul><li>php.ini-{dist|recommended} - php.in...
ディレクトリなど <ul><li>dev/ - 静的ライブラリ(php5ts.lib)置き場 </li></ul><ul><li>ext/ - PECLモジュール(dll)置き場 </li></ul><ul><li>extras/ - MIB,...
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 &quot;C:/in_vitro/apps/php5&quot;
php.iniの場所の教え方 (2)exe系から叩く時 &quot;-c &quot; オプション php(-cgi).exe -c ...php.ini
php.iniは重要 ・・・ですが、セキュリティ関係の設定は大垣先生の資料を参考にするとして。
プログラミングする上で 普通に重要な設定が二つあります。
二つ。 &quot;include_path&quot; と &quot;extension_dir&quot;
&quot;include_path&quot; {require|include}(_once) する時に指定されたファイルを探すディレクトリの一覧。
&quot;include_path&quot;の設定を ミスると・・・ PEAR のライブラリファイルが見つからなくなったりします。 アプリの require/include で失敗したりします。
&quot;extension_dir&quot; &quot;extension&quot; で読み込む DLL の入っているディレクトリ。 MySQL 接続とか、 mbstring とか・・・。
&quot;extension_dir&quot;の設定を ミスると・・・ DB に接続できなくなったり、いろいろと出来なくなります。
これほど重要な設定なのに・・・ php.ini-recommended の デフォルト設定は役立たず。 (´ ・ ω ・` )
&quot;include_path&quot;のデフォルト ;include_path = &quot;.;c:phpincludes&quot; コメントアウトされてるし。
&quot;extension_dir&quot;のデフォルト extension_dir = &quot;./&quot; イヤ、それ、違うし。
なので この二項目はすぐに正しいディレクトリに書き換えて下さい。 include_path については PEAR を入れてから調整しても良いですが・・・
extension_dirについては直ぐに。 でないと、 php_zip や mbstring などが読み込めない = PEAR のインストールを始めとして色々支障が出ます。
3.CUIで動かす時の最小構成 突然ですが、 Windows 用の PHP って &quot; 可愛い &quot; と思うのです。
理由 ・好きな場所における。 ・ファイルの組み合わせが楽。 ・ *nix と違ってディレクトリ構成の制約が少ない。
極端な話 php5ts.dll php.exe php.ini だけで CLI で実験できる!
CLIの構成例 <ul><li>php5ts.dll </li></ul><ul><li>php.ini </li></ul><ul><li>php(-win).exe : php-winとの使い分けは後述。 </li></ul><ul><li...
秘密1 %~dp0
%~dp0とは? %0 がバッチファイル名。 (boot.bat) ~d でドライブ名展開。 ~p でファイル名を除くパス名に展開。
秘密2 php(-win).exe の &quot;-d&quot; オプション。
&quot;-d&quot;オプション php.ini の設定項目を上書き。
秘密3 php-win.exe + &quot;start&quot; コマンド  in boot.php
php-win.exe コマンドプロンプトウインドウを表示せずに PHP スクリプトを実行可能。
&quot;start&quot;コマンド kick したプロセスの終了を待たずに、処理続行 = boot.bat 自体は終了。
組み合わせれば・・・ タスクスケジューラから kick される定時実行バッチも PHP スクリプトで書ける!
配布ファイルも柔軟に構成可能だから PHP 実行環境と一緒に配布することも可能。 (= 配布先でわざわざ PHP を &quot; インストール &quot; する必要無し。)
まとめ <ul><li>インストーラやXAMPを使わず、zipから展開すれば、レジストリも弄らないし、PHP本体のバージョンアップに対する追従も楽。 </li></ul><ul><li>php5ts.dll, php.ini重要。 </li><...
Windows用のPHP5バイナリって 実は結構使い勝手が良い言語環境だと思う。
Upcoming SlideShare
Loading in...5
×

PHP With Windows binary

8,394

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
8,394
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "PHP With Windows binary"

  1. 1. PHP勉強会SIDE-B (第1回) WindowsでのPHPとのつきあい方 (前編) id:msakamoto-sf 坂本 昌彦
  2. 2. アジェンダ <ul><li>1.インストーラを用いずにzipファイルからインストールする方法 </li></ul><ul><li>2.Windows用PHPバイナリの構成 </li></ul><ul><li>3.CUIで動かす時の最小構成 </li></ul>
  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 &quot;C:/in_vitro/apps/php5/php5apache2.dll&quot; # ↑ は実際は一行で。 # (Load Module php5_module &quot;C:/.../php5apache2.dll&quot;) PHPIniDir &quot;C:/in_vitro/apps/php5&quot; AddType application/x-httpd-php .php .html AddType application/x-httpd-php-source .phps
  29. 29. &quot;PHPIniDir&quot; PHPIniDir: php.ini のあるフォルダを指定。
  30. 30. PHP4と違って C:WINDOWS とかに php.ini を置かなくても 平気!
  31. 31. Apacheを再起動・・・の前に。 Apache.exe -t で確認。
  32. 32. (何かオプションがアレですが気にしないで!) ↑ OK 。 Apache 起動できる。 > cd &quot;C:Program FilesApache GroupApache2in&quot; > apache -t -f confhttpd_php5.conf Syntax OK
  33. 33. ディレクトリ指定とかが間違ってた時 ・・・何か出ます。 > cd &quot;C:Program FilesApache GroupApache2in&quot; > 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: x8ewx92xe8x82xb3x82xeax82xbdx83x82x83Wx83x85x81[x83x8bx82x aax8cxa9x82xc2x82xa9x82xe8x82xdcx82xb9x82xf1x81B
  34. 34. Apacheを起動したら 適当な公開ディレクトリで &quot;<?php phpinfo(); ?>&quot; を叩いて動けば 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バイナリの構成 (直下のファイル群) <ul><li>php5ts.dll - PHP言語の実行コアライブラリ </li></ul><ul><li>php.ini-{dist|recommended} - php.iniの雛形 </li></ul><ul><li>php({-cgi|-win}).exe - CLIやCGIでのPHP実行ファイル </li></ul><ul><li>php5apache*.dll, php5{is|ns}api.dll - 各種Webサーバー用モジュール </li></ul><ul><li>go-pear.bat - PEARライブラリインストールバッチ </li></ul><ul><li>他のDLL - MySQLやSSLなどのネイティブライブラリ </li></ul>
  39. 39. ディレクトリなど <ul><li>dev/ - 静的ライブラリ(php5ts.lib)置き場 </li></ul><ul><li>ext/ - PECLモジュール(dll)置き場 </li></ul><ul><li>extras/ - MIB, SSL, PDF関係のファイル置き場 </li></ul><ul><li>PEAR/ - PEARインストールパッケージ(*.phar) </li></ul>
  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 &quot;C:/in_vitro/apps/php5&quot;
  48. 48. php.iniの場所の教え方 (2)exe系から叩く時 &quot;-c &quot; オプション php(-cgi).exe -c ...php.ini
  49. 49. php.iniは重要 ・・・ですが、セキュリティ関係の設定は大垣先生の資料を参考にするとして。
  50. 50. プログラミングする上で 普通に重要な設定が二つあります。
  51. 51. 二つ。 &quot;include_path&quot; と &quot;extension_dir&quot;
  52. 52. &quot;include_path&quot; {require|include}(_once) する時に指定されたファイルを探すディレクトリの一覧。
  53. 53. &quot;include_path&quot;の設定を ミスると・・・ PEAR のライブラリファイルが見つからなくなったりします。 アプリの require/include で失敗したりします。
  54. 54. &quot;extension_dir&quot; &quot;extension&quot; で読み込む DLL の入っているディレクトリ。 MySQL 接続とか、 mbstring とか・・・。
  55. 55. &quot;extension_dir&quot;の設定を ミスると・・・ DB に接続できなくなったり、いろいろと出来なくなります。
  56. 56. これほど重要な設定なのに・・・ php.ini-recommended の デフォルト設定は役立たず。 (´ ・ ω ・` )
  57. 57. &quot;include_path&quot;のデフォルト ;include_path = &quot;.;c:phpincludes&quot; コメントアウトされてるし。
  58. 58. &quot;extension_dir&quot;のデフォルト extension_dir = &quot;./&quot; イヤ、それ、違うし。
  59. 59. なので この二項目はすぐに正しいディレクトリに書き換えて下さい。 include_path については PEAR を入れてから調整しても良いですが・・・
  60. 60. extension_dirについては直ぐに。 でないと、 php_zip や mbstring などが読み込めない = PEAR のインストールを始めとして色々支障が出ます。
  61. 61. 3.CUIで動かす時の最小構成 突然ですが、 Windows 用の PHP って &quot; 可愛い &quot; と思うのです。
  62. 62. 理由 ・好きな場所における。 ・ファイルの組み合わせが楽。 ・ *nix と違ってディレクトリ構成の制約が少ない。
  63. 63. 極端な話 php5ts.dll php.exe php.ini だけで CLI で実験できる!
  64. 64. CLIの構成例 <ul><li>php5ts.dll </li></ul><ul><li>php.ini </li></ul><ul><li>php(-win).exe : php-winとの使い分けは後述。 </li></ul><ul><li>ext/php_***.dll : お好みのDLL </li></ul><ul><li>boot.bat : プログラム実行用BATファイル </li></ul><ul><li>他、PHPスクリプトファイル。 </li></ul>
  65. 65. 秘密1 %~dp0
  66. 66. %~dp0とは? %0 がバッチファイル名。 (boot.bat) ~d でドライブ名展開。 ~p でファイル名を除くパス名に展開。
  67. 67. 秘密2 php(-win).exe の &quot;-d&quot; オプション。
  68. 68. &quot;-d&quot;オプション php.ini の設定項目を上書き。
  69. 69. 秘密3 php-win.exe + &quot;start&quot; コマンド in boot.php
  70. 70. php-win.exe コマンドプロンプトウインドウを表示せずに PHP スクリプトを実行可能。
  71. 71. &quot;start&quot;コマンド kick したプロセスの終了を待たずに、処理続行 = boot.bat 自体は終了。
  72. 72. 組み合わせれば・・・ タスクスケジューラから kick される定時実行バッチも PHP スクリプトで書ける!
  73. 73. 配布ファイルも柔軟に構成可能だから PHP 実行環境と一緒に配布することも可能。 (= 配布先でわざわざ PHP を &quot; インストール &quot; する必要無し。)
  74. 74. まとめ <ul><li>インストーラやXAMPを使わず、zipから展開すれば、レジストリも弄らないし、PHP本体のバージョンアップに対する追従も楽。 </li></ul><ul><li>php5ts.dll, php.ini重要。 </li></ul><ul><li>php.iniではextension_dirとinclude_pathに注意。 </li></ul><ul><li>&quot;%~dp0&quot;, php-win.exe, &quot;start&quot;コマンドでPHPスクリプトを柔軟に配布・実行可能。 </li></ul>
  75. 75. Windows用のPHP5バイナリって 実は結構使い勝手が良い言語環境だと思う。
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×