AN HTTPD ゲストブック/コメント集(2003年1月25日04:13)


中田昭雄 nakata@st.rim.or.jp 2003/01/29 21:27

たかさん、
解決したとのことなのでよいのですが、
"php -v" というのはコマンドライン(コマンドプロンプト、DOSプロンプト)でコマンドとして打ち込むという意味です。
php.ini が間違っていなければ 4.3.0 と出るはずですが、 php.ini がおかしければそれなりのエラーメッセージがコマンドプロンプト上に表示されるでしょう、という意味です。


たか takabou@mud.biglobe.ne.jp 2003/01/29 07:09

「もっている掲示板をたてるべく行っていた、PHP4.3.0でのphp.iniの設定で、php/exstensions に含まれるdllのファイル名の中間に空白が入りファイルが無いと誤認される不具合」の自己レスです。

中田さん、回答ありがとうございます。

まず、掲示版の動作は行えました。
原因:[An_httpでPHPを動かす]の設定案内の読み間違いでした。
[mbstring]の以下5行のコメントをはずす とかかれていたのを別の個所と思い違いしてました。

ようは必要のない extension ファイルを指定していたことになりますが
しかしながらふにおちないのはそのファイルはあるのにそのファイルが誤認識されていることでしょうか?

中田さんから紹介を受けました -V を起動時につけることでは改行制限がなくなっただけで、空白があいたファイル名が表示されることとはまったく関係ありませんでした。
設定後も空白はあいてました。

けれども、「掲示板を動かしたい」という課題においては解決いたしましたのでお騒がせいたしました。疑問の点はまたでてきましたらそのときに。


中田昭雄 nakata@st.rim.or.jp 2003/01/25 07:43

たかさん、
スペースが入るのは、AN HTTPD が改行つきのテキストをHTMLで表示しているからだと思います。
>PHP Warning: Unknown(): Unable to load dynamic library 'C:\php\extensions\php_m
でちょうど 79 バイトですから。

コマンドラインで php -v としてもそのエラーは出るのではないでしょうか。
もっともなぜエラーになるのかはわかりませんが。


たか takabou@mud.biglobe.ne.jp 2003/01/25 04:13

NT2000を使って構内httpサーバをan_httpにて運用させていただいております。
PHPを本格的に動かそうと最新版4.3.0を入れ、
http://homepage1.nifty.com/yito/anhttpd/faq/php.html
のサイトを参考に、設定し、Php4.1.2では動作していたあるツリー掲示板スクリプトを動作させますが次のようなメッセージ出力されます。

////

Content-type: text/html X-Powered-By: PHP/4.3.0
Script encoding error occurred.
Try "ISO-8859-1".

PHP Warning: Unknown(): Unable to load dynamic library 'C:\php\extensions\php_m crypt.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: Unknown(): Unable to load dynamic library 'C:\php\extensions\php_m hash.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: Unknown(): Unable to load dynamic library 'C:\php\extensions\php_m ssql.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0

////
指定されたファイルが見つからないとされるファイル名は、php.ini 上では
---
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
----
と、しています。
そう、なぜかエラー出力では ファイル名のphp_m*.dll
のphp_m とそれに続く文字列の間に スペース が入った形で認識されるため、該当する
ファイルがない と出力されるのです。

もちろん、該当のパス内には php.ini で設定されているファイル名そのままが入っていますが、php.exe を介すると別のものとして認識されるようです。
前のバージョンにした方がよいのでしょうか?

あと「Script encoding error occurred.
Try "ISO-8859-1".」
ですが、これは何を意味しているのでしょうか?

php.iniの後ろの方に
-------------
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;exif.decode_unicode_intel = UCS-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel = JIS
------------
が、あります。
これらの処理はどうすべきなのでしょうか?
勉強不足で申し訳ありませんが教えてください