PHP は、「PHP: Hypertext Preprocessor」の略です。(^^;;
 PHP は、「PHP: Hypertext Preprocessor」の略です。(^^;; PHPの中の「PHP」は、「Personal Home Page Tools」の略だそうです。([[参照:http://ja.wikipedia.org/wiki/PHP_programming_language]])

- 本ページ内の項目
#contents

- 本サイト内の関連ページ
#ls2

#br

** PHPによるHTTP認証のフックについて
** PHPによるHTTP認証のフックについて [#ffce75d9]
-PHPをIIS上で動作させたときには、PHP_AUTH_*関数が正常に動作しないので、BASIC認証ができない(認証されない)ことが判明した。 - 2003.11.20
-cf. http://nxweb.dyndns.org:8080/php/manual/features.http-auth.html
-当サイトもApacheモジュールとしてPHPを実行している。

** PHPにおける文字コード
** PHPにおける文字コード [#z29e99c7]
-PHPにおいては、SJISは使用すべきではないらしい。ISO-8859-*、EUC-JP、UTF-8がよいのだそうだ。
-cf. http://www.php.net/manual/ja/ref.mbstring.php
-当サイトの MySQLの内部コードはShiftJISであり、WindowsもWindows-31Jであり、よってPHPもShift_JISとしている。#特に問題ないよね?
-当サイトでは、MySQL DB・PHP共に文字コードはUTF-8としている。

** WindowsでPHP5.3をApache2.2で利用する際のMy設定 [#a874c063]
- PHPは、VC6 Thread Safe版を利用する。
 参考; http://php.plus-server.net/install.windows.manual.html
-- 事前に[[Microsoft Visual C++ 2005 Runtime SP1:http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=ja]]をインストールしておく。
- 連携用のsapiモジュールは、php5apache2_2.dll ではなく、php5apache2_2_filter.dllを利用する。
 LoadModule php5_module C:/Server/php/php5apache2_2_filter.dll
- php.iniとphp5ts.dllファイルは、C:\Windowsではなく、PHPインストールパス(C:\Server\php)に配置し、Apacheのhttp.confでパスを指定する。
 LoadFile C:/Server/php/php5ts.dll
 PHPIniDir C:/Server/php
- PHP用のlibmysql.dllは、MySQLサーバ側に含まれる同ファイルを利用しない。PHP5.3にはBundleされていないので、PHP5.2最新バイナリからlibmysql.dllを抽出し、Apache/binフォルダに配置する。

** WindowsでPHP5.3をApache2.2で利用する際の問題 [#hbf57b1a]
- Apache2.2のWindows版として配布されているバイナリはWinNT MPM動作
- winsock2の問題で、[[Win32DisableAcceptExを設定:http://jomura.net/wp/?p=912]]する必要がある。(Microsoftは修正する気がないらしい)
- 設定すると、"Disabled use of AcceptEx() WinSock2 API"文言で、Windowsのイベントログ(Application)にerrorログが、Apache起動時のerror.logにnoticeログが記録される。
- また、なんらかのメモリリークが発生するらしく、限界を超えると、[[Fatalエラーが発生し、Apache2の子プロセスが自動再起動:http://jomura.net/wp/?p=951]]してしまう。

** addslashes()関数を使った場合の不具合 [#m03de786]
-[[SQLインジェクション対策:http://www.pat.hi-ho.ne.jp/dimension/tips/tips_sqlinjection.shtml]]として、[[addslashes()関数:http://jp2.php.net/manual/ja/function.addslashes.php]]を使っているPHPアプリケーションでは、DBインサート時に、0x005cを含む全角文字に'\'が付加してしまうことがある。(参考:[['\'(0x005c)による文字化け:http://www.kent-web.com/pubc/jcode/]]) 例:「表」-> 「表\」
-ほとんどの場合は、magic_quotes_gpc=on 設定のために、エスケープ処理を2重にしてるからだそうな…。うちもそうでした。(^^;;


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS