• 締切済み

Windows7でApache+PHPが動作しない

開いていただきありがとうございます。 このたびWindows7に移行したので、それに伴いApache・PHPを再セットアップしようとしたのですが、 ApacheにPHPを連動させようとするとどうしてもエラーが発生してしまうため、質問させていただきました。 使用したバージョンはそれぞれ Apache 2.2.14 Win32 Binary PHP 5.2.11 Windows Binary installer であり、以前に挑戦して成功したものとはほとんど違いありません。 まずはApacheをセットアップするのですが、これに関しては何の問題もなく動作します。 localhost:80に設定しましたが、httpd.confの中身などは修正してもしなくても差はなかったようです。 次にPHPをセットアップするのですが、以前は「Apache2.2.Xに対応する形でセットアップ」の項目を選べば、そのまま利用が可能でした。 ですが今回は、PHPに関する項目をhttpd.confに設定すると"The requested operation has failed!"などと言われて起動に失敗してしまいます。 各設定項目を順番にコメントアウトするなどして試してみたのですが、LoadModuleもPHPIniDirも、いずれに起動しない原因となるようです。 自動設定に頼ったのが悪いのかと思い、念のためApacheも再セットアップして、 http://pocketstudio.jp/log2/2007/01/windows_apache_224_php_520.html こちらのサイトなどを参考に設定を手動で行ってみましたが、 結果は自動で行った場合とまったく同じになりました。PHPに関する設定を記入した途端に起動に失敗するようになります。 自分よりは明るい人などにも頼ってみたのですが、原因が分からないとのことです。 同じようなことでつまづいている人がいないかなども確認してしまいましたが、いずれの例も解決の参考にはなりませんでした。 なんとかしてうまくセットアップする方法をご存じの方はいらっしゃいませんでしょうか? よろしくお願いします。

みんなの回答

noname#119957
noname#119957
回答No.4

<参考にあるかどうかわかりません。> 上手くセットアップ出来ている例: apacheのバージョン 2.2.11 http://silvervine-ninelives.blog.so-net.ne.jp/2009-05-25-1 PHPのバージョン5.2.9-2 http://silvervine-ninelives.blog.so-net.ne.jp/2009-05-27

snowize
質問者

お礼

回答ありがとうございます。 その通りのバージョンは手に入りませんでしたので、Apache2.0系などの異なるバージョンを組み合わせてみたのですが、同じように起動しませんでした。 セットアップの手順は、こちらに記されている通りで間違いありません。なんなんでしょーか、もう……。

回答No.3

サービスを起動しようとしたときのエラーですか。 起動に問題があるならば、Apacheのログが残っていると思いますが いかがでしょう?

snowize
質問者

補足

セットアップしたてのApacheに、 セットアップしたてのPHPを突っ込んで起動した際のログです。 インストーラまかせでも手動設定でも、吐き出されるログは同じような感じでした。 40分がセットアップ直後の自動起動、42分がPHPセットアップ後の再起動です。 Starting the Apache2.2 service The Apache2.2 service is running. rmine the server's fully qualified domain name, using 192.168.0.4 for ServerName [Thu Oct 29 21:40:24 2009] [notice] Apache/2.2.14 (Win32) configured -- resuming normal operations [Thu Oct 29 21:40:24 2009] [notice] Server built: Sep 28 2009 22:41:08 [Thu Oct 29 21:40:24 2009] [notice] Parent: Created child process 1904 httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.0.4 for ServerName httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.0.4 for ServerName [Thu Oct 29 21:40:24 2009] [notice] Child 1904: Child process is running [Thu Oct 29 21:40:24 2009] [notice] Child 1904: Acquired the start mutex. [Thu Oct 29 21:40:24 2009] [notice] Child 1904: Starting 64 worker threads. [Thu Oct 29 21:40:24 2009] [notice] Child 1904: Starting thread to listen on port 80. [Thu Oct 29 21:42:34 2009] [notice] Parent: Received restart signal -- Restarting the server. [Thu Oct 29 21:42:34 2009] [notice] Child 1904: Exit event signaled. Child process is ending. [Thu Oct 29 21:42:35 2009] [warn] module php5_module is already loaded, skipping [Thu Oct 29 21:42:35 2009] [warn] module php5_module is already loaded, skipping Syntax error on line 490 of C:/Program Files/Apache/conf/httpd.conf: Only first PHPINIDir directive honored per configuration tree - subsequent ones ignored [Thu Oct 29 21:42:35 2009] [warn] (OS 995)スレッドの終了またはアプリケーションの要求によって、I/O 処理は中止されました。 : winnt_accept: Asynchronous AcceptEx failed. [Thu Oct 29 21:42:35 2009] [notice] Child 1904: Released the start mutex [Thu Oct 29 21:42:36 2009] [notice] Child 1904: All worker threads have exited. [Thu Oct 29 21:42:36 2009] [notice] Child 1904: Child process is exiting 490行目はPHPのiniを設定しますが、これをひとつきりにしたり、ひとつもなくしたところでシンタックスエラーが出なくなるだけで状況は変わりないです。

回答No.2

よくある例は、php.iniで指定された拡張モジュールがDLL不足等でロードできない、です。 コマンドプロンプトでphpを実行すればxxx.dllが見つからないとかエラーメッセージが出ます。

snowize
質問者

お礼

お返事ありがとうございました。 申し訳ありません。 ロードしたDLL,iniは確かに存在しました。 余談になりますが、公式のインストーラを使って「前回はできたことが今回はできない」という状況なので、ちょっと不可思議です。 ApacheはProgramFiles直下、PHPは別ドライブという状況が「Vistaでは問題なかったが7では問題」とかあるんでしょうかね……。 エラーログの話を聞いて記録しておこうと思ったのですが、風邪を引いてしまいました。お返事が精一杯です。すみません。

回答No.1

どちらもインストーラーを利用しているようですが、 Vistaの頃からUACの制限によってProgram Files配下の ファイルには操作制限がかかると思います。 ですから、C:\配下へのインストールであったり にインストールすると問題なかった記憶があります。 Vistaを大していじり倒してないのでちょっとわかりませんが、 ディレクトリ構成とアクセス制限については C:\UserData\ユーザー名\ のとこでも問題ないかもしれません。 ファイル操作が行えない理由としてはそれが有力なのではと パッと思いついて、しっかり質問読んでませんごめんなさい・・・。

snowize
質問者

お礼

補足の追記ができないので、ややこしいことになってしまい申し訳ありません……。 このようなエラーのよくある例として出てくる「……2_2.dll」がなかったという落ちですが、これは確認済みです。 インストーラによる自動設定、参考サイトを見ての手動設定ともに行いましたので、タイプミス(というかコピペしましたが)のようなこともないかと思います。 宗教上の理由でXAMPPなどはできれば避けたいところですので、明日以降も入れたり消したりを繰り返そうと思いますが、アドバイスなどありましたらなにとぞご教示ください。

snowize
質問者

補足

回答ありがとうございます。 少し分かりにくかったかもしれませんが、 Vista ⇒ 成功 7 ⇒ パスも含めてまったく同じ手順で行っているのに失敗 といった様子です。UACは完全に切って、管理者権限もあります。 アップデート版なので、さすがにVistaでどうだったかを確認するためだけにOSの入れ替えをするのはきついので確実ではありませんが、Windows7導入後にApache+PHPを導入する練習として実験した程度なので、さして決定的な違いがあるとは考えにくいです。 また、PHPインストーラの自動設定部分を手動でやるように切り替えた際も同一の問題が起きたので、ファイルの操作制限などは関係ないかと思います。 インストーラを使わない方法に関しましては、古い情報が混じっていたり(よく分かりませんが、バージョンによってはWindows側の設定も大きく変更しなければならないとか?)、そうせねばならない理由が不明確であったりなどで、できればインストーラで安心確実にすませちゃいたいなあ……という気分が強いのですが。

関連するQ&A