トップ «前の日(07-12) 最新 次の日(07-14)»

PC関係のメモ


WindowsにApache2.2とPHP5をインストールする手順

用意したファイル

  • apache_2.2.4-win32-x86-no_ssl.msi
  • php-5.2.3-Win32.zip
  • pecl-5.2.3-Win32.zip

peclは必須ではなく、別途拡張ライブラリが欲しい場合に用意する。今回はphp_ssh2.dllを使用する為用意。

Apacheのインストール

apache_2.2.4-win32-x86-no_ssl.msiはインストーラなので手順通り。

IEでhttp://localhostにアクセスして正常に起動していることを確認する。

PHPのインストール

php-5.2.3-Win32.zipを展開。今回はc:\usr\local\phpに展開。

この時点でApacheに組み込んでみて正常に連携することを確認する。まずはhttpd.confを編集。

httpd.confはデフォルトでは「Apacheのインストールフォルダ\conf」にある。

# 下記を追加
LoadModule php5_module E:/usr/local/php/php5apache2_2.dll
AddType application/x-httpd-php .php

「Apacheのインストールフォルダ\htdocs\phpinfo.php」を作成。

<?php phpinfo();

http://localhost/phpinfo.php」にアクセスしてみてphpinfo()が表示されれば正常に連携している。Apacheの起動に失敗する場合、イベントログを確認する。

PEARをインストールするため「go-pear.bat」を実行。

「%Systemroot%」フォルダにc:\usr\local\phpから以下のファイルをコピー

  • php.ini(元ファイル名はphp.ini-distもしくはphp.ini-recommended)
  • ssleay32.dllとlibeay32.dll(php_ldap.dll/php_ssh2.dll等で必要)

次にphp.iniを編集。

extension_dir = "E:\usr\local\php\ext"
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_ssh2.dll

ちなみに通例として、magic_quotes_gpcをOffにしたり昔はregister_globalsをOffにしたり(現在はデフォルトでOff)にする。ただし自分の場合「.htaccessで設定できる項目は.htaccessでやる」というポリシーなのでphp.iniは極力編集しない。

.htaccessで設定する場合、こんな感じ。

php_value session.gc_probability 30
php_value session.use_trans_sid 0
php_flag  magic_quotes_gpc Off
php_flag  register_globals Off
php_flag  mbstring.encoding_translation Off
php_value mbstring.internal_encoding "UTF-8"
php_value mbstring.http_input "UTF-8"
php_flag  short_open_tag Off
php_value pcre.backtrack_limit 300000

最後にApacheをリスタートして設定を反映。

Apache2.2とPHP5のエラーが文字化けする。

httpd.exe: Syntax error on line 115 of
C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf:
Cannot load E:/usr/local/php/php5apache2.dll into server:
\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9

上記エラーはイベントログに残されたApache2.2のログ。実際は一行。

エラーが出力された原因はhttpd.confの記述ミスで、115行目にこう書いていた。

LoadModule php5_module E:/usr/local/php/php5apache2.dll

今回使っているのはApache2.2なのでphp5apache2_2.dllと記述すべき。

見ればわかるとおり(?)Shift-JISのコードが16進で出力されているので、バイナリエディタなどで変換してやれば内容がわかる。

今回だと「指定されたファイルが見つかりません」だったと思う。

それからもうひとつ、PHP5がApache2.2経由で出力するerror_logにも同じように文字化けが。

PHP Warning:  PHP Startup: Unable to load dynamic library
'E:\\usr\\local\\php\\ext\\php_ldap.dll' -
\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[
\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9
\x82\xf1\x81B\r\n in Unknown on line 0

こちらも実際は一行。

ちなみにエラーが出力された原因はphp_ldap.dllに必要なssleay32.dllとlibeay32.dllを%SystemRoot%にコピーし忘れたため上記DLLがロードできなかったことによるエラー。

なんだけど、出力されているエラーは「指定されたファイルが見つかりません」。このエラーだけ見ると「'E:\\usr\\local\\php\\ext\\php_ldap.dll'が見つからなかった」と間違えて読み取ってしまいそう。

余談ではあるけど、上記エラーはphp_ssh2.dllについても同様のエラーが出力されていたし、libmysql.dllを%SystemRoot%にコピーせずにphp_mysql.dllをロードしようとした場合にも発生するらしい。

WindowsのPHPで拡張モジュールのエラーが出てる場合は、依存するDLLが%SystemRoot%等に存在するかどうか確認すべき。

最終更新時刻: 2009年09月30日
コメント(2) [コメントを投稿する]

_ うみ [ありがとうございました。 >、出力されているエラーは「指定されたファイルが見つかりません」。このエラーだけ見ると「..]

_ hajime [>うみさん コメントありがとうございます。 確かにこのエラーはわかりづらいんですよね。 お役に立てたみたいで嬉しい..]


dddav 0.0.11.0リリース

dddav - GUIのWebDAVクライアント for Windows

機能追加

  • ホストに接続した際に表示するフォルダ(初期フォルダ)を設定可能にした。
最終更新時刻: 2008年10月31日

iPhone4に乗り換えた

これまでスマートフォンは避けていたけど、ついにiPhoneに乗り換えた。

さようならDOCOMO N905iμ。君には不満はなく、むしろコンクリートの上に何度落としても壊れない耐久性とかサイズは非常に評価してる。

ただ、iPhoneを持ちたいというだけの理由で乗り換える僕を許して。

あ、というわけでメールアドレス変わりました。

前のアドレスの@以前から「.」を除いて、@以降を「softbank.ne.jp」に変えてください。っていうかそのうちちゃんとメールします。多分。きっと。

最終更新時刻: 2010年07月13日

全システムの静止点なんてそう簡単に取れないよJK

VMwareのOS領域のVMDK入れるストレージでスナップショット切れますよって言われても、 全システムのOSレベルでの静止点取ることなんて現実不可能に近い以上、あんまり嬉しくない。

「何それスゲーじゃん!」って沸き立つ人もいるだろうけど、 でもそれ、わかる人にとっては詐欺とは言わないけど誇大広告だ。

もちろんスナップショットは使い方によっては非常に有効。 ただ、その使い方には知識が必要だということも忘れてはいけない。

最終更新時刻: 2011年07月13日