Your SlideShare is downloading. ×
PHP With Windows binary
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

PHP With Windows binary

3,646
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
3,646
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×