忍者ブログ

カウンター

プロモーション

カレンダー

03 2019/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

PHPのインストール関連のURL と 疑問 (4/6) ~php.ini の内容をしらべてみる~

PHP の調べ物

 先にお断りをしておきます。
今回は修正を重ねた為にとても長くブログじゃない!です読み物です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 で削除されます。
この機能を使用しないことを強く推奨します。


とありました。

 とりあえずこの先に削除されることが決まっているのならば、
単純に使わない設定で良い気もしますが、
知識として今後も必要そうな話なので、
マジックオート と、エスケープ文字は何かについて、
調べてみました。
 


<マジッククオート(magic quote)、エスケープ文字について>


 たとえばマジッククオートを思い浮かべたときの話なので、
判りにくいかもしれませんが、
例えば、ブラウザが解釈するHTMLの記述に
なんらかの文字を表示させる為以外の制御をさせる為の文字があります。
 制御文字は、文字なので、文字として使いたい場合なのに
制御文字として動いてしまったりすることもあるでしょうし、
どうしてもブラウザを見ている人の為に、制御文字を表示させたい、
つまり見た目は制御文字でも、ブラウザは制御しない文字を書きたい場合が
あります。
 そんな意味だと思いますが、その役割を放棄させる、
エスケープさえる、つまり、
「エスケープ」は、英語で 「escape」 と書くでしょうから、
意味は「抜け出る」とか「逃げる」と言う意味になるので、
 この場合には、スクリプトなどの類の動いてしまう、
特殊な文字は機能させない様に、抜け出させておく事だと思います。
まどろっこしいのでカット^^;
英語でquotation marks というのがあるので、こっちの意味を参考にしたりした方が
理解に早かったのかもしれません、英語得意じゃないんで済みません゜w゜;
 (ちょっと下の方になりますが、参考サイトを載せてあります。)

 ですのでマジッククオートの話に戻りますが、
quoteとは、ことばを引用符で囲むなどの意味があり、
やはりエスケープ文字の様な意味合いで、制御させたくない文字列が
入力に含まれている場合に自動で動かさなくする様な意味だと思います。

上記を踏まえてこんな話の意味を考えると、
「自動で制御文字を機能させない特殊な文字に置き換える」
と言う解釈で考えていましたが、しかし、
 PHP 日本公式には、magic_quotes_gpc の説明に、

「GPC(Get/Post/Cookie) 処理に関する magic_quotes の設定を行います。 magic_quotes が on の場合、'(シングルクオート)、" (ダブルクオート)、\(バックスラッシュ) 、NULL には全て自動的に バックスラッシュでエスケープ処理が行われます。magic_quotes_sybase も on の場合、シングルクオートは、バックスラッシュではなく シングルクオートでエスケープされます。 」


とあるので、
「サイトへの入力などに使われている制御文字を、自動で機能させない引用符で囲む。」
みたいな感じが妥当かなと思いました。

 ユーザーの入力した文字列にPHPの制御文字が含まれている場合には、
PHP の記述でコメントが「 \ (バックスラッシュ)」をつけて、
制御文字ではなくて、文字扱いにしたい様です。
 いきなり初心者が立ち入ってややこしくなりそうですが、
PHP公式 の、バックスラッシュ で全ての謎は解決しそうです。
 また、PHP で使用できる正規表現演算子(mb_ereg) でも何か役に立ちそうです。

 私が見る限りですが、// はPHP ではコメントアウトで
/ +? の?部分が'(シングルクオート)、" (ダブルクオート)、\(バックスラッシュ) 、NULL
になったらエスケープ されますとあるけれど、
調べてると/e もエスケープ とあって、エスケープだけさせる制御って
どんな物なのとか考えるとややこしそうなので、
実際にやってみないと判らない部分もありそうなので
初心者はこれぐらいにしておきます^^;
そのうち/e とかもやってみたいと思います。



同様にPHP のエスケープ文字について、触れているサイトを載せてみます。
<PHP エスケープ文字に触れているサイト>
ホームページ作成の第一歩【PHP 覚書 予期しないエスケープ文字】・・・文字化けの例、下のサイトと同様

バックスラッシュと円マーク・・・上のサイトと同様、シフトJIS の文字にはエスケープ文字を含む文字がある

PHP:エスケープ文字:\(バックスラッシュ)・・・言語による制御文字、エスケープ文字の違い


 また、ActiveScript (Windows上でOSの制御すらできるスクリプト、
JScriptVBScript、OS 上でコマンドや、スクリプトが書かれたファイルが
実行できる自分でインストールした言語(Ruby やPHP)が動く環境)、
SQL、VB 、C#、C、C++ などなど
色々な言語でも文字を扱うのに必要な場合、同様に
エスケープ文字と呼ばれている言葉で、色々な制御している様です。
他言語においてはつき詰めると話が大きくズレるので
勿論割愛させて頂きます。
(何かの都合で、何時か何処かで説明がでるかもしれません。)


 結論から述べてしまった訳ですが、
調べたサイトを載せておきます。

<ちょっと意味が離れているかもしれないけど、他の言語でのエスケープ文字関連URL>
正規表現サンプル(エスケープが必要な文字) ・・・Perl に使っているとは書いてあるが、エスケープ文字が、  
                                どんなプログラミング言語や、パーサー(処理)に対しての
                                エスケープ文字なのかが分かりにくかったのですが、
                                表がある説明なので参考にしました。

ActionScript 2.0 の学習 > エスケープ文字について ・・・ActionScript2.0 のエスケープ文字です。

文字列(String) ・・・JavaScript のエスケープ文字です。


エスケープ文字 ・・・AWKやperl, rubyに代表されるスクリプト言語らしいで@@;
        perl, やruby とかPython は多少なりとも
        他の事を調べると関連で出てきた事があったのですが、
        AWK って言うのを一部でも調べたのは始めてです。
        これは AWK スクリプト のエスケープ文字の例でした。
        

PHPスクリプト講座:文字列のエスケープ ・・・ PHP の言語を覚えようとしていて、
                             PHP のエスケープ文字を考えるならば
                             このサイトが一番理解しやすいかもしれません。



<PHP マジックオートに関係しているURL>
PHP 実験室 【覚書 予期しないエスケープ文字】 ・・・これはPHP の初心者が入門したばかりで
                                 php.ini の設定すら出来ない人が参考にするのは
                                 説明でphp プログラミング をしているので早いですが、
                                 今後の為のメモを含め、そのうち当たり前になる
                                 内容でしょうが載せておきました。

 マジッククオートを無効にする ・・・ このサイトでもphp.ini で設定をするのではなく、
                      プログラミング内部で設定をしている。
                      なので初心者向きではない気がするが、
                      レンタルサーバなどで設定が変えられない場合には
                      このやり方を参考にすると良いと思ったので載せておきます。

 

余話(すご~く雑談ですが、調べてる最中に思うことを書いてみました。宜しければどうぞ)


 また、このマジッククオートは、入力する者があえて制御文字を送った場合に
PHP が解釈してその送られた情報で何か処理をしない様にする為の物でもあります。
 しかし次期バージョンでは、この項目は無くなる様ですし、変わりの方法があるのかなどは、
私はまだ入門前というか、入門したばかりなので判りません。
 そのうち見つけたら、このページにリンクでも貼っておこうと思います。

追伸:(かなり長い時間がたってから)

 まぁ色々飲み込めなくてマジッククオート (magic Quote)について悩んでいたのですが、
単純に文字列をエスケープ(のがれる⇒無効化)する様な事で良いのだと思います。

 そして、公式マニュアル にもある程度意味が書かれています、
やっとですが、今読めば意味が理解できる段階にきました。



<根本的にphp.ini の内部で何をしたら良いか?>

 

 結局ですが漏れがなく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.ini の設定サイト をもう1度 探してみた>

 結局、php.ini で設定を出来る訳ですが、
調べていると、どんどん色々出てきてしまったので、
この際【インストール時に必須なことが書いてあるサイト】
【詳細設定が書いてあるサイト】に分類して、
サイトをまとめて、その上でインストール時の設定を
出してみる方向性に修正した。

【インストール時に必須なことが書いてあるサイト】
  基本的に必須事項なのは、各視点での文字コード、php 自身のインクルードパス、
 拡張モジュールパス、そしてマジックオートの設定の様です。

  ○Windowsへphp5をインストールする(かなり見た目や探し易さに優れてると思ったサイトです)
    └php.iniの文字コードの設定(同サイトの文字コード関連、このサイトだけで十分かもしれません)

  ○PHPのインストール、各種設定(php.ini)
   (要点だけを述べて触ったサイト、1つ1つに説明が少なく、「~様にして下さい」といった雰囲気
    初心者は本来それで良いのかもしれません。やらないと意味がなく、言われた通りやっただけでは
    きっと触っただけで、進展するときの要素にならないので、迷ってみたりしている私には、
    どうしてなのかが知りたいですが、やはり説明を少なくまとめるとこういった形になるのでしょう)


【詳細設定が書いてあるサイト】 
  動かすだけでは便利ではなかったり、する部分があります。
 そんな事をしっかり自身で感じ取って書いた感じのするとても共感できる設定が書いてったので
 そんな所を載せておきたいと思います。

  ○こりゃまたPHP!~PHP概説めにー : こりゃまたphp.iniの設定(ちゃんと迷って訳してみたりしていて手順踏んでて好きです)

【詳細設定が書いてあるだろうが知っている人向けサイト】
  なんか大切なことが書いてありそうなんですが、どう思ったとかが良く分からなかったり、
 用語が説明の中にあるので、初心者向けじゃないけど、メモとして載せておこうかなと思ったサイトです。
  これは多分個人的なメモを、また私がメモった形になるのでしょう^^;

  ○php.iniでよくやる設定まとめ(ディレクティブ名、説明、推奨値 でまとめたちょっとした表がある)

  ○PHP/tips/推奨php.ini設定(「説明は省略しています。」とあるサイトでした)



 結局3つの【】項目になってしまいました。
この先思いつきで項目の中のリンクは修正で増えるかもしれません。悪しからず



 さてこんな所ですが、次回で本格的にこれらのサイトなどから
調べ出した項目について主に設定ファイルのphp.ini の修正箇所を調べていこうと
おもいます。

次回、PHPのインストール関連のURL と 疑問 (5/6) ~php.ini の設定をもう一度、集めてみる~ へ

拍手[0回]

PR


  • 2009/07/21 01:13

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]