先にお断りをしておきます。
今回は修正を重ねた為にとても長くブログじゃない!です読み物ですw
ひたすら長くて読みにくかったり、部分的に雰囲気が違うのは、
修正をした日の気分が入っているからです。
宜しくです<_ _>
前回(~インストール後の設定を模索~)で
ファイルを展開後にPHP を動かすまでに何が必要か
調べたのだが、やり方は幾種かあり、その中で
php.ini と aphche の設定で指定する設定方法を選んだ。
そこで今回はphp.ini の設定を
ある程度調べてみた。
まず最終結論から、リファレンスとも言うべきサイト
PHP: コア php.ini ディレクティブに関する説明 - Manual
に、全て設定は載っているのを見つけたのだが、
初心者が単純明快にただひとつPHP を動かすだけの設定をしたいのだが、
沢山ありすぎると手に負えないので、他のサイトや持っている本から比較したりして
単純にまず動かすとしたら何をどうしているのかを模索してみる。
まず、私がPHP をインストールと設定をする上で
案外気に入ったサイト である、php.iniの設定 - PHPインストールと初期設定 から調べてみた。
すると以下の設定について述べている。
extension_dir (拡張モジュールのディレクトリ)
include_path (インクルードパスの設定)
mbstring (日本語などマルチバイト文字を利用の為の設定)
magic_quotes (マジッククオートでエスケープするかの設定)
あと最後にPHP のApache モジュールとしての動作確認
でした。
ここで マジックオート(magic_quotes)のエスケープするかの設定とか
全くなんの意味なのかさっぱり判らなかったので調べました。
まずPHP公式 の日本語化マニュアルのサイトに、
マジッククオート についての説明があり、驚くことに、いきなり目立つ様に
警告
この機能は PHP 5.3.0 で 非推奨となり、PHP 6.0.0 で削除されます。
この機能を使用しないことを強く推奨します。
とありました。
とりあえずこの先に削除されることが決まっているのならば、
単純に使わない設定で良い気もしますが、
知識として今後も必要そうな話なので、
マジックオート と、エスケープ文字は何かについて、
調べてみました。
余話(すご~く雑談ですが、調べてる最中に思うことを書いてみました。宜しければどうぞ)
また、このマジッククオートは、入力する者があえて制御文字を送った場合に
PHP が解釈してその送られた情報で何か処理をしない様にする為の物でもあります。
しかし次期バージョンでは、この項目は無くなる様ですし、変わりの方法があるのかなどは、
私はまだ入門前というか、入門したばかりなので判りません。
そのうち見つけたら、このページにリンクでも貼っておこうと思います。
追伸:(かなり長い時間がたってから)
まぁ色々飲み込めなくてマジッククオート (magic Quote)について悩んでいたのですが、
単純に文字列をエスケープ(のがれる⇒無効化)する様な事で良いのだと思います。
そして、公式マニュアル にもある程度意味が書かれています、
やっとですが、今読めば意味が理解できる段階にきました。
結局ですが漏れがなくphp.ini の内部を編集して設定したいだけなのです。
私が色々なサイトにある違いをしっかり把握し様としているのは、
万全な状態で毎回何かに突き当たる度に困らなくて良い状態にしたいからです。
今度は内部の変更項目や、追加項目を全ての設定を調べ出してみようと思っていましたが、
php.ini-production と、php.ini-development が元のファイルの雛形ですが、
php-5.3.0 のphp.ini-production で1895行、php.ini-development で1887行ありました。
そうすると私の様な初心者が全て調べ様と思った場合に、
見知らぬ用語が出てきて、それについても知るために調べなくてはいけなかったり
翻訳しないといけない事になるので、それを考えると、今はまず動いてほしい気持があるので
そのうちにでも、「php.ini の翻訳と2種の雛型比較と、それぞれの設定の意味」とでも題して
把握してみようと思います。
さてそうすると万全な状態とかでは無くなりますが、
とりあえず出来るだけ多くのサンプルをサイトから探して、
それぞれ何をしてるのかを展開しようと思います。
話はまた戻っている部分がありますが、
戻ったのも経緯があり、その手順で進んだ方が良いと
理解があってからこそも戻ったので、長すぎたのと
覚える量が多かったと理解して進めたいと思います。
とか! 思っていましたが、意気込みは裏腹に、
時間を置いてみたり、ネットで再検索をしていると
色々なことが判ったので、php.ini の設定を2種類に分けて
模索する方向へと変えました。
これはやる気がなくなったとかではなくて、
色々身に付けた証拠だと思っています。(当たって砕けすぎでも負けません!w)
また、やはりphp.ini に書いてあることを自分なりに翻訳してみたいと思っています。
(ちょっとだけ翻訳しましたが、php.ini には目次みたいな物は無い様です^^;)
(追伸:またまたちょっと調べたのですが、php.ini 内部に『Quick Reference』という部分があって、
; Development Value: Off
; Production Value: Off
とかそうやって各項目の Development と Production の初期設定について
簡易的に違いが載せてあるので、
ぶっちゃけ私が調べなくても『Quick Reference』ココを見ればわかるかもしれません。
ただ、片方のini にあって片方にない行についてまでや、書かれていない設定まで
書いてあるのかまではまだ見ていません。これもそのうち確認したいです。
さて前回(~ダウンロードとインストール~)の続きで、
ファイルやらフォルダを展開するところで出た
複数のインストールの仕方を書きましたが、
今度はその続きで、PHP やApache の挙動を設定する
ファイルについてメモします。
多くのサイトでは、
php.ini の設定の雛型は、
php.ini-recommended
php.ini-dist
がzip展開後にあると書いていますが、
私のダウンロードした、
php-5.3.0-Win32-VC9-x86.zip もしくは、php-5.3.0-Win32-VC9-x86.zip
には、その両者はなく、
php.ini-production
php.ini-development
というファイルしかありませんでした。
なので中を開き[production]や[development] で
文字列の検索をしてみると、始めの方に
;;;;;;;;;;;;;;;;;;;
; About this file ;
;;;;;;;;;;;;;;;;;;;
という所が見つかり、そこに
; php.ini-production contains settings which hold security, performance and
; best practices at its core. But please be aware, these settings may break
; compatibility with older or less security conscience applications. We
; recommending using the production ini in production and testing environments.
; php.ini-development is very similar to its production variant, except it's
; much more verbose when it comes to errors. We recommending using the
; development version only in development environments as errors shown to
; application users can inadvertently leak otherwise secure information.
という説明が書いてありました。
これによるとどうも、
php.ini-production は、パフォーマンスが良いが、連携する他の事柄、状況までは把握しない設定
php.ini-development は、説明が多いが、エラーの確認がしやすい設定
の様です。
追伸ですが、
PHP マニュアル翻訳プロジェクト に、INIファイル の扱いに関する変更 という記述を見つけました。
それによると、
標準の php.ini ファイルは再び整理され、名前が変更されました。
php.ini-development ファイルには開発環境で推奨される設定があります。
php.ini-production は本番環境向けに設定されています。
だそうです。
次回(PHPのインストール関連のURL と 疑問 (4/6) ~php.ini の内容をしらべてみる~)に続く
前回(~PHPをしてみようと模索~)の話は結局ですがPHP のパッケージの配布形態に、
Web サーバーの設定をしてくれるであろうインストールウィザードを用いるか、
それとも手動で行うかの違いに悩んだ所で終わった訳です。
後になって気がついたのですが、私と同じ様にインストーラーのウィザードを使うかどうか迷い、
使う方と使わない方の両方を試した方のサイトがありました。
<私が知りたい事に対して参考になったURL>
PHPの基礎体力 >PHP5のインストール
初心者には初めから細かくやっていると、実際は苦な部分もあり進まなくなるので
ある程度、知らない人に対してどう違うのかとか、やってみてくれていることは
とても有り難く思えました。
今回は私の知りたい事について多少触れていて教えてくれるサイトが、
ネット上で探したら出たのでよかったです。
ですがこのブログの目的としては、何に迷ったか残こしてメモをして
1つずつ明確にして行こうと思った部分もあったので、
この先でその必要性が強く感じられた場合は、
やはり自分でそのウィザードの挙動を調べてみようと思います。
結局ですがインストール後の設定についてサイトを調べた所
いくつかのPHP のインストール方法がある様でした。
以下、その違いについて簡略的ですが記述致します。
<違い1 Windows のプロセスがEXE やDLL を探す方法の違い>
PHP のインストール場所をOSがDLL やEXE を探す規定の場所にPHP のDLL を置く方法
<参考URL>
PHP 5.0.4 > php5ts.dllとphp.ini-recommended の移動 [Windowsへのインストール]
2php PHPのインストール(Windows)
PHP5のインストールと設定 - [データベース]All About
PHPのインストール >PHPのインストール方法 (例:WindowsXP)
もしくは
PHP のDLL が置いてある場所を環境変数のPATH に書き、指定してPHPのDLL を探させる方法
<参考URL>
PATHの設定 - PHP環境設定 - PHPインストールと初期設定
の2種類が見受けられた。
<違い2 Apache のバージョンにより、PHP の設定ファイルの置き場所が変えられる場合の違い>
Apache2.0未満の場合にOSが探す規定の場所にPHP のphp.ini を置く方法
もしくは
Apache2.0以上 の設定ファイル内でPHPIniDir でphp.ini のある場所を指定する方法
がありました。
参考URLは色々重複するので直接は載せません。
OSが探す規定の場所を用いる場合は、
Windows の9x 系と、NT 系で微妙に違いは有りますが、
基本的にWindows フォルダ、 system フォルダ、
system32 フォルダのどれかとしていて
サイトによって違いがあります。
私は何か曖昧に感じるパスの通し方に思えるし、
設定をどこかに書いて指定出来るのであれば、
切り離しをして考えたり、場合によっては設定を変えて
使い分けなどが出来そうなので、
Apache2.0以上のバージョンの設定ファイルを変更する方法を
使ってみようと思います。
とりあえず、具体的な細かい内容を書きましたが、
今回はZip形式を展開して、そのディレクトリから他のディレクトリへ何か
移したりはしない方法(参考:PHP 5.2.6のインストール)を使いました。
単純に展開し、DLL などを移動しない方法を使っています。
違いとしては、私のダウンロードした物はPHP 5.3.0 でした。
また、最近(2009年9月7日)PHP 公式のマニュアルインストール を見たところ、
Path を用いることをVerUPの観点から推奨している様です。
次回(~インストール後の設定を模索~)へ続く
余談
当たり前の様にパスの話をしているのですが、
なんだか気持が悪くて仕方がありません。
例えばですがWindows 2000 ではOS が入っている
システムドライブのルートディレクトリに、
タスクマネージャと同じ名前の実行ファイルを置くと
勝手にそのルート側にある実行ファイルを優先して使うという
現象があったりして、例えば数ヶ所パスが通る(ファイルが見つかる状態)に
してあったとして、どのパスを優先に使うかが決まっているのですが、
その順番などを知らずに、1つの環境に複数の人が設定をしたりすると
気が付かずに違うファイルを使っていることになりかねないので、
有る程度は調べておくべきだとおもいました。
この補足ではパスが通るとはどう言うことなのか直接では
無い部分もありますが、関連していると思うサイトを載せてメモとしてみます。
<参考URL>
DLLとは?
DLLファイルの検索順番を変更する
DLLの検索
MSDNライブラリ >プラットフォーム SDK >LoadLibraryEx
また、PHP の環境をWindows から簡単に呼び出す方法、
つまりパスを通す方法を用いて、PHP を使いやすくする場合の
参考URLも載せておこうと思います。
<参考URL>
PATHの設定 - PHP環境設定 - PHPインストールと初期設定
パスの実際の設定のメモ
パスの設定を行うには、Windows XP の例では2通りあり、
GUIの画面から行うか、CUIの画面から行う方法がある。
<GUIでは>
GUIでは、マイコンピューターを右クリックして「プロパティ」か、
それとも[Windowsキー]+[Pause Break キー] を押せば、
システムのプロパティが出る。
そこの「詳細設定」タブを選び、「起動と回復」のグループの下にある
「環境変数」ボタンを押して、「システム環境変数」のリストの中の、
「path」と言う項目に付け加えたいパスを付け加えていく。
例:元にPHPのパスを付け加え
元: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
後: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\PHP
つまり<;>で繋いでいくだけである。
<CUIでは>
コマンドプロンプトか、スタートメニューのファイル名を指定して実行で「cmd」と入力し
プロンプトを出し、path コマンドを入力して設定するのだが、誤って「;%path%」を
付け忘れると付け加えではなくて、通していたパス全てが消えてしまうので、注意が必要です。
ちなみにpath /? でヘルプを出して読むと
-------------------------------------------------
実行可能ファイルの検索パスを表示または設定します。
PATH [[ドライブ:]パス[;...][;%PATH%]]
PATH ;
パラメータとして ; (セミコロン) だけを指定すると、すべての検索パスは
クリアされて現在のディレクトリだけが検索されます。
パラメータの指定がなければ、現在のパスが表示されます。
新しいパス設定に %PATH% を指定すると、前のパスが新しい設定に追加されます。
-------------------------------------------------
だそうです。
次回、PHPのインストール関連のURL と 疑問 (3/6) ~インストール後の設定を模索~ へ
LAMPでは敷居が高いというかLinuxも同時に覚えると
やること増えてPHPをサクっと覚えられず遅くなりそうなので
WAMPをしてみようと思う。
Apacheのインストールは、インストール後の設定を除き簡単に行えたが
PHPについてはインストーラーからのインストール、つまりファイルやフォルダの配置と
Apache やIIS などのWebサーバも自動で行ってくれるインストーラーのパッケージと
ZIP 圧縮されたフォルダとファイルを解凍し手動で配置して、テキストファイルの形式で設定を
記述すれば良い方法が主にある様だが、現在Web上のPHPに関するインストールの仕方を
述べたサイトはそのインストーラーではなく、ZIP圧縮を解凍し手動で設定をする方法を
述べているサイトばかりでした。
結局ですが、どうもインストーラーが気になったので、インストーラーからインストールするか
迷って時間を使って行動が止まってしまっていた。
まぁ、なのでこのブログで整理しようとメモった訳なのでこのページが存在する訳です^^;;;
<PHP のインストールの説明>
PHP5のインストールと設定 - [データベース]All About
PHPインストールと初期設定(Windows)
2php PHPのインストール(Windows)
PHP利用のための設定 - Apache入門
自宅サーバー(Windows+Apache)へのPHPインストール
学習目的であろうときっちり設定を管理したいならば、
インストーラーがどんな設定を残すかを調べたりと、
インストール後の設定も確認しないといけないと思いましたし、
結局最終的には其処までできる様になりたいです。
また予想ではインストーラーのバージョンによって
インストーラーが残す設定が設定が違う可能性もあるだろうしもし
結局使う者が目視で確認すべきだと、この文章を書きながら勝手に納得している^^;
まぁでも便利で信頼できる品質であればインストーラーを使えば良いとは
思ったので、何時か思い出した頃に探ってみようと思う( ..)φメモメモ
<インストーラーからPHPをインストールしようと思って戸惑ってやめた時のSetup のウィンドウ>
でもいろいろ調べてるときに複合インストーラ とでも言いましょうか?そんな物を発見しました。
数種類の複合インストーラーの存在は確認しましたが、
どれも基本はApache ,PHP,MySQL を同時にインストールしてくれて設定し、
簡易的に保守できるみたいです。
これならば簡単にWAMP の構成が出来そうです。
<複合インストーラーの紹介関連のURL>
Apache2.2 + PHP5.2 + MySQL5を一括インストールして自動で設定し、簡単に管理するフリーソフト
XAMPPの使い方
XAMPP for Windows
VertrigoServ の紹介と説明のサイト
VertrigoServ
PHP/Apache/MySQLを一括インストールして“WAMP”環境を整える「WampServer」
WampServer(英語)
XAMMP, VertrigoServ, WampServer ともにフリーウェアでした。
多分これらの複合インストーラーの利点は他にも、
Apache やMySQL、PHPのインストーラー単体でインストールした場合は
多くの場合がインストーラーが現在インストールされている
お互いのバージョンや細かい設定までは把握してないだろうし、
色々考えるとやっぱり複合インストーラー は全てが入っていて
それらのお互い干渉する設定部分を把握しているであろう事と、
簡単にWAMP を構成したいのならば複合インストーラー を使った方が楽な時もあると思う。
やっぱりどちらにしても、複合インストーラーを使った場合でも、
設定の意味が後から見直せたり、理解する必要がある程度発生するのだと思うし、
付属の保守設定ツールで触れない設定を変えた場合は
付属のツールでは設定を戻せなかったり、変更が反映されないなどは起こる気もする。
やっぱり初心者な時こそしっかり手動で一から構築し、設定の仕方や違いを体験すべきだと再度思いました。
次回~ダウンロードとインストール~ に続く