みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Apache 2.4でphp-5.3を使いたいです

Apache 2.4.0でphp-5.3.9を使いたいです。

Apacheのインストールは、
http://www.apachelounge.com/download/から
Apache 2.4.0
httpd-2.4.0-win32.zip
をダウンロードし、c:/pg/にApache24という名前のフォルダで配置しました。
ドキュメントルートのhtmlファイルをブラウザで表示できるところまでできています。

そして、c:/pg/Apache24に空のフォルダc:/pg/Apache24/phpを作成します。

PHP 5.3 (5.3.9)用のモジュールは上記のページから
php5apache2_4.dll-php-5.3.9-win32.zip
をダウンロードしてc:/pg/Apache24/phpに
php5apache2_4.dllを配置しました。


PHPのインストールは
http://windows.php.net/download/から
PHP 5.3 (5.3.9)
Zip [14.94MB]
sha1: 4149d79a877ae7ccb0e5419b13152b5bd3074825

php-5.3.9-nts-Win32-VC9-x86.zipをダウンロードし
c:/pg/Apache24/phpに全て展開しました。

c:/pg/Apache24/phpには
「php5apache2_4.dll」と「展開したphp-5.3.9-nts-Win32-VC9-x86.zip」が入っています。

そして、

C:/pg/Apache24/conf/http.confの167行目に
LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dllを追加しました。
-----------------------------------------------------------
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule xml2enc_module modules/mod_xml2enc.so

LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dll
-----------------------------------------------------------

ダウンロードと一緒についてくるPHPのマニュアルを見ると、
# Runs with PHP 5.3.9, Apache 2.4 and Win 32

# Install:
- Copy php5apache2_4.dll to your php folder (eg. c:/php)
(和訳:php5apache2_4.dllをあなたのphpフォルダーへコピーして下さい)
⇒完了済み

# Add to your httpd.conf
(和訳:あなたのhttpd.confに追加して下さい)
LoadModule php5_module "c:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
⇒1つ目は完了済み、2つ目はまだ


# configure the path to php.ini
(和訳:php.iniへのパスを形成して下さい。)
PHPIniDir "C:/php"
⇒まだ


この状態でコマンドプロンプトから
C:\pg\Apache24\bin\httpd
を入力すると下記のエラーが出てしまいます。

C:\pg\Apache24\bin\httpd (←Apacheの起動)
httpd: Syntax error on line 167 of C:/pg/Apache24/conf/http.conf : Cannot load C:/pg/Apache24/php/php5apache2_2.dll into server: \x8ew\x92\x82\xb3\x82~~~~

C: (←Apacheが終了)

なぜエラーになってしまうのでしょうか。

投稿日時 - 2012-01-23 17:02:46

QNo.7262059

すぐに回答ほしいです

質問者が選んだベストアンサー

> # Add to your httpd.conf
> (和訳:あなたのhttpd.confに追加して下さい)
> LoadModule php5_module "c:/php/php5apache2_4.dll"
> AddHandler application/x-httpd-php .php
> ⇒1つ目は完了済み、2つ目はまだ
その後、このAddHandler部分は設定したのでしょうか?
設定していないと、拡張子.phpをphpのソースファイルだとは認識してくれないと思いますが。
しかし、その場合はphpinfo();と表示されそうだけど、何かエラーで中断しちゃってるのかな。
ログに出てませんか?

投稿日時 - 2012-01-31 11:43:00

お礼

そうだったのですか。
AddHandler部分を設定し再度http://localhost/phpinfo.phpを開くと、
phpの情報のページが開きました。最後に1つ質問させて下さい。
まだエラーがあるのでは?と不安ですが、このphpの情報が開けば問題ないのでしょうか。

投稿日時 - 2012-02-01 10:03:49

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

> 削除に失敗しているのでしょうか。
どこかにphp.iniが残っていたり、
環境変数のPATHに余計なのが残っていたりしませんか?

投稿日時 - 2012-01-27 12:01:15

お礼

何度もお返事有難うございます。
php.iniの設定はまだやっていなかったです。

"php.ini-development"ファイルをコピーし、ファイル名を"php.ini"に変更しました。
(変更時に「拡張子を変更すると使えなくなる可能性」というメッセージは無視しました)
"php.ini"ファイルは"c:/pg/Apache24/php/php.ini"に配置してあります。

そして、下記コードをc:/pg/Apache24/conf/httpd.confの一番最後に追加しました。
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

PHPIniDir "c:/pg/Apache24/php"


テキストエディタを開き下記の内容を記述して
"phpinfo.php"というファイル名で保存しました。
<?php
phpinfo();
?>
これをApacheのドキュメントルートであるc:/pg/Apache24/htdocsに配置しました。

コマンドプロンプトを開きApacheを起動してみると、エラーが出ずに起動しました。
ブラウザのURLに「http://localhost/phpinfo.php」と入力しアクセスを試みました。
正しくできていればここでPHPのサイトが表示されるようですが何も表示されません。

投稿日時 - 2012-01-28 21:53:33

ANo.4

まず、"Non Thread Safe"ってのは、スレッドセーフでは無いって意味ですよ。
Apache Lounge版がどういうコンパイルオプションでコンパイルされているか知りませんが、
apache.orgで配布してる方のWindows版は、マルチスレッドで動いてるので、
phpもスレッドセーフ版が必要ですので、Apache Lounge版の要件を調べて下さい。

それ以前に、phpがちゃんと動作していないですね。
同じ、Non Thread Safe版を入れてみましたが、コマンドプロンプトでphp -vすると、
以下のように表示されます。

> C:\pg\Apache24\php>php -v
> PHP 5.3.9 (cli) (built: Jan 10 2012 16:33:06)
> Copyright (c) 1997-2012 The PHP Group
> Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
>
> C:\pg\Apache24\php>

VC9のランタイムが不足していたりしませんか?
あるいは、PATHの通ったところに、他のphpがあったりしませんか?

投稿日時 - 2012-01-26 09:38:57

お礼

すみません。見なおしたところVC9 x86 Thread Safeをインストールし直したところ
次のステップに進むことができました。しかし、

今度は、下記のようにWarningウィンドウが計8回開きます。

PHP Startup: Unable to load dynamic library
'C:/phpdev/php/extensions\php_gd2.dll' - 指定されたモジュールが見つかりません

PHP Startup: Unable to load dynamic library
'C:/phpdev/php/extensions\php_sockets.dll' - 指定されたモジュールが見つかりません

PHP Startup: Unable to load dynamic library
'C:/phpdev/php/extensions\php_zilb.dll' - 指定されたモジュールが見つかりません

PHP Startup: Unable to load dynamic library
'C:/phpdev/php/extensions\php_dbase.dll' - 指定されたモジュールが見つかりません

が表示された後、同じ順序でもう1回ずつ表示されます。


phpdevというのは、以前使用していたApacheを入れていたフォルダだと思います。
以前のApacheは、
http://php5.seesaa.net/category/1632821-1.html
このサイトを参考にインストールしたものです。
phpを学習していましたがヴァージョンが低いことで不都合が生じ、
php5へ変えようとしましたが、うまくできずapacheごとインストールし直す方法をとりました。
そのときに、phpdevフォルダごと右クリックでゴミ箱へという通常の削除をしました。
apacheはサービスを登録している場合はその方法だと問題があるそうですが登録した記憶もなく、
コンピュータを右クリック > 管理 >
「コンピュータの管理」ウィンドウのサービスとアプリケーション >
サービス > サービスの詳細情報が表示される
その中にApacheという文字がなかったのを確認してから削除しました。

削除に失敗しているのでしょうか。

投稿日時 - 2012-01-26 21:05:21

ANo.3

いや、
c:/pg/Apache24/php/

c:/php/
が混ざってるので、c:/pg/Apache24/php/に直さなきゃいけないとこ
残ってるんじゃないかなぁと思ったんですが、
そうでもないようで。

ところで、
c:/pg/Apache24/php/
には、php.exeがあると思いますが
コマンドプロンプト開いて、
c:/pg/Apache24/php/
に移動して、
php -v
ってやると、バージョン表示されます?
別の言い方すると、phpちゃんとインストールされてます?

それと、phpはスレッドセーフ版使ってますか?

投稿日時 - 2012-01-25 18:16:04

お礼

c:/pg/Apache24/php/に移動して、php -vとすると、
指定されたモジュールがみつかりませんといったエラーウィンドウが表示されます。
phpはスレッドセーフ版だと思います。

http://windows.php.net/download/
のページに下記のエリアがありますが、
----------------------------------------------------------
PHP 5.3 (5.3.9)

Download source code [20.41MB]
VC9 x86 Non Thread Safe (2012-Jan-10 16:50:42)

Zip [14.94MB]
sha1: 4149d79a877ae7ccb0e5419b13152b5bd3074825
Installer [38.32MB]
sha1: 4286abda4676bb8549ddcd492129f5647745d16b
Debug Pack [7.92MB]
sha1: 2b46caf7a66d37a0bf15adde126a325b2fc3de0f
----------------------------------------------------------
とあるところのZip [14.94MB]をダウンロードして、全て展開し、それを配置しました。

Windows Vista Home Premium 32bit だとスレッド版はインストールできないということなのでしょうか。

投稿日時 - 2012-01-25 18:55:28

ANo.2

PHPをインストールするディレクトリを意識して、読み替えましょう。
理解せずにコピペしてるから、
C:/pg/Apache24/php/
にインストールしている場合の書き方と、
C:/php
にインストールしている場合の書き方が、
ごっちゃになってますよ。

> LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dllを追加しました。
> LoadModule php5_module "c:/php/php5apache2_4.dll"
おまけに、二重登録してるし。

投稿日時 - 2012-01-24 15:28:48

お礼

有難うございます。
phpのディレクトリを基点として読みとるようにするということでしょうか。
例えば、
C:/pg/Apache24/php/ ←はCドライブを基点として読みとる
phpディレクトリの場合は、
../php/php5apache2_4.dll
という発想をするということでしょうか。

質問文が読みずらくてすみません。
LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dll
の1行のみを追加したので二重登録はしていないです。

投稿日時 - 2012-01-24 17:05:12

ANo.1

こんばんは

えーと・・・、
LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dll
ですよね?
間違いない???

Cannot load C:/pg/Apache24/php/php5apache2_2.dll
なんですが・・・。

名前、違うでしょ?

投稿日時 - 2012-01-23 19:10:54

お礼

すみません、質問側が間違っていました。
LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dll
としていますが、
エラーになってしまいます。

Cannot load C:/pg/Apache24/php/php5apache2_4.dll
と表示されます。

投稿日時 - 2012-01-23 19:18:27