xampp 1.7.3 apacheの起動ができません

このQ&Aのポイント
  • xampp 1.7.0を使用していましたが、バージョンアップした結果、Apacheのみ起動しなくなりました。
  • ポートの問題やファイアウォールの設定を確認しましたが、解決しませんでした。
  • ノートンインターネットセキュリティを無効化し、パソコンを再起動しましたが、問題は解決しませんでした。
回答を見る
  • ベストアンサー

xampp 1.7.3 apacheのみ起動しない

xampp 1.7.0を使用していました(このバージョンは使えた)が、 この度、バージョンアップをしようと思い、 いったん、1.7.0をアンインストールし、1.7.3をインストールし直しました。 (WindowsXP SP3 を使用。インストールドライブはC:\xamppです。) その結果、 Apacheのみ起動しません。 他の、MySql、FileZilla、Mercuryは起動します。 Apacheを start しようとすると、いったんは running となるのですが、 またすぐに(2秒ほどで)、 stop 状態に戻ってしまいます。 で、その理由をネット上をくまなく検索してみたのですが、 どの対処法もダメでした。 例えば… ポート80がフリーになってないのではないか? (Skypeの件など) →問題なしです。xampp-portcheck.exeなどで、 ポート80がFreeであることは確認できています。 また、Window ファイヤーウォールの件も、オフにしました。 インストールに失敗したかもしれないと思い、 一度、1.7.3をアンインストールし、再インストールを試みましたが、 それでも、やはり変わりませんでした。 ノートンインターネットセキュリティを使っていますが、 これもいったんすべて切ってトライしてみましたが、やはりこれもダメ。 パソコンの再起動もしましたが、これもダメ。 もう万策尽きました。 どなたか、ご助言をお願い致します。

  • PHP
  • 回答数9
  • ありがとう数12

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

  • ベストアンサー
回答No.6

実はもう、こちらもXAMPPが正常に起動できそうなアドバイスは無くなってしまいましたね・・・ ちなみに、古めのXAMPPにあるApacheは、実行ファイルが「apache.exe」、新しいXAMPPにあるApacheは、「httpd.exe」。 何か、Windows標準のファイアウォールとか、そのたぐいで、止めてるということも無いですよね。 (xampplite1.7.3が起動するっていうのであれば関係ないでしょうが・・・) で、XAMPPに含まれるPHPのバージョンは、少なくとも、「PHP5.x.x」ですので どのバージョンのXAMPPを使おうが、SQLite3は使えるはずです。PDOがPHPに標準搭載なので。 と言いつつ、ちょっと調べてみたら、1.7.0とかだとXAMPPパッケージに含まれる、php.iniでSQLite3が無効に設定されているので、 ;extension=php_pdo_sqlite.dll と書かれている部分をコメントイン extension=php_pdo_sqlite.dll して、Apache再起動すれば使えます。 ■代替案で書きたかったこと Apacheではない、別のWebサーバをインストールして、PHPも本家からダウンロードしてきてインストールすれば 普通に使えるのではないか、といったことでした。

nbsp0606
質問者

お礼

お世話になっております。 >Windows標準のファイアウォール これも既に「無効」にしてあります。 >xampplite1.7.3が起動するっていうのであれば関係ないでしょうが・・・ そうですね。 liteとの違いの部分に、「正常起動しない原因が潜んでいる」のではないかと思っています。 >どのバージョンのXAMPPを使おうが、SQLite3は使えるはず もしそういうことであるなら、1.7.0でも良いのですが、 本件にぶち当たる前に、まずトライしたことが、実は、 コメントイン extension=php_pdo_sqlite.dll だったのです。 これをしまして、phpinfo()でPDOとか、sqliteとか、PDO SQLiteだかの項目を チェックしたのですが、 sqlite2という表示はあっても、sqliteという表示がなかったため、 sqlite3は使えないのか、とその時は思いました。 また、実際にも、PDOでsqlite3を使うプログラムを書き、 動かそうとすると、sqlite3のドライバーが見当たらないよ? というようなfatal errorが出たように記憶しています。 そんなわけで、アップグレードを試みたわけですが、 本当に、上記のコメントインをするだけで、 sqlite3がPDOで使えるようになるのであれば、 1.7.1か何かに戻しても良いと思っています。 >して、Apache再起動すれば使えます。 これをしたかどうか忘れましたが(したように思うのですが…)、 もう一度、トライしてみようかと思います。 もし、これがダメな場合、 その原因はどこにあるんでしょうね…。 Apache1.7.3がインストールできない理由とはまた別の問題だとは思いますが…。 まぁ、とりあえず、コメントインをし、Apacheの再起動をしてみます。 >Apacheではない、別のWebサーバをインストールして、 >PHPも本家からダウンロードしてきてインストール さすがにこれは険しい道のりになりそうなので、 最終手段にしておきたいなと思います。笑 以上を踏まえ、色々と試し、またご報告致します。

nbsp0606
質問者

補足

結果報告を致します。 例のコメントインはうまくいきました。 恐らく、Apacheの再起動をしなかったのか、 したけれども、sqliteの文字を見逃したか、のどちらかだと思います。 で、再起動後、phpinfo()の結果にしっかり反映されました。 ただ、今回は1.7.0ではなく1.7.1で試しました。 (1.7.0でも結果は同じでしょうけれども。) 次に、PDOでエラーが出る件は、 これは、単純にDBパスの書きミスでした。 リモートとローカルでパスを書き換えなければならないところ、 うっかり、それをそのままにしていたため、 「そんなDBは開けません」というようなエラーが出ていました。 →これをPDOのドライバが起動しない、 というエラーとして私は前回、読み違えたのかもしれません。 (sqlite3が使えているかどうか半信半疑だったため、 このような読み違えをしたのだと思われます。) そこで、パスを書き直しましたら、上記エラーは消えました。 ただし、またさらにエラーが発生し、 今度は、 「そんなテーブルはないよ」 というエラーでした。 リモートでは問題なくアクセスできているテーブルであることから、 これはおそらく、 「リモートで作成したDBをローカルで開く場合、エラーが発生することがある」 といった問題なのではないかと思います。 参考:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1013194650 上記ページの現象と、まさに同じことが起き、また辿った結果も同じです。 つまり、ローカルではローカル用に新たにDBをCREATEして対処したわけです。 その結果、上手く開けましたし、インサートもできました。 これは、どういうわけで起こる問題なのでしょうね。 (もし、何かご存知でしたら、最後にご教示いただけますと助かります。) ------------------------- おかげさまで、 本来したかったことができるようになりましたので、 とりあえずは、問題解決です。 Apache1.7.2以降のバージョンが相変わらず使えないことには変わりありませんが、 これは横に置いて置くことに致します。 この度は非常に助かりました。 ありがとうございました! また宜しくお願い致します。

その他の回答 (8)

回答No.9

コマンドラインから、プログラムを走らせると、コマンドを叩いた場所が、カレントディレクトリになったりするので、 相対パス記法だと、パスが上手く引けない場合があったりするのですが、それではなさそうですかね。 また、パスの中にスペースや、マルチバイト文字列(日本語とか)が含まれていたりするのも、問題があった気がします。 そこら辺を解決しつつ、実際に走らせるスクリプトの位置から、データベースのパスを引く場合に、 dirname関数と、__FILE__定数とかを使うとある程度正確なものが出ます。 ■__FILE__定数 この定数には、今走っているスクリプト(今回だと「db_access.php」)の絶対パスが記述されています。 ■dirname関数 あるファイルのフルパスを引数にしてやることで、そのファイルの属しているディレクトリ名までのフルパスを返します。 ■DIRECTORY_SEPARATOR 今現在使用しているOSのディレクトリのセパレータ、Windowsだったら「円マーク」、Linuxとかだったら「/(スラッシュ)」 を返します。 <?php //とりあえず、db_access.phpと同階層にある「hoge.sqlite3」を引くなら、 define('DS', DIRECTORY_SEPARATOR); //定数が長いので略称の定数をつくっておく(CakePHPのパクリ) //まずスクリプトのディレクトリを取得する $path = dirname(__FILE__); //ディレクトリ名を取得したらその後ろにDB名をくっつけてやって、DBの置いてある //パスのフルパスが完成 $path .= DS . 'hoge.sqlite3'; $pdo = new PDO("sqlite:" . $path); //パスをPDOに渡してやる ?> というのが、割と正しいパス表現になります。 DIRECTORY_SEPARATORを使わないで表記すると、「円マーク」を「円マーク」でエスケープしなければならなかったり そもそもレンタルサーバとかにUPするときにパス表現をかえなきゃいけなかったりで結構面倒くさいですし。 これで一度試してみてどうでしょう。 最初に書いたように、パスにスペースや日本語が含まれているなら、 一度、「c:\scripts」など簡単なディレクトリを作ってそこで試してみるとか。 Webサーバのルートも、xampp\apache\httpd.confあたりをいじれば変えられるので、 変えてみてもいいかもしれません。

nbsp0606
質問者

お礼

解決しました! と、まずお伝えしておきます。 その詳細については、補足の方で、させて頂きますね。 やはり、パス表記にミスがありました。 今回も回答して頂き、ありがとうございます。 解決したことをお伝えするのに、新しく回答して頂けるのを待っておりました。 回答を締め切ってしまっても良かったのですが、 やはりフィードバックは大事ですから、待たせて頂きました。 お手数お掛けして、申し訳ありませんでした。

nbsp0606
質問者

補足

//-------------------------------------- //DB関連の定義 define('DIR_DB',addslashes(dirname(__FILE__).DIRECTORY_SEPARATOR)); define('DB','hoge.sqlite3'); //パスのフルパスが完成 $path = DIR_DB.DB; $pdo = new PDO("sqlite:" . $path); //パスをPDOに渡してやる //--------------------------------------- このようにしたら、上手くいきました。 で、何が問題だったのか。 実は、意外や意外。 PDOに渡す「dsn」の記述にミスがあったのです! new PDO("sqlite:" . $path)のカッコの中の、 "sqlite:"の部分を、レンタルサーバ上では、 "sqlite:/" として動かしていました。(実際に動いていました。) それをそのままローカルに持ってくると、前述のエラーが吐かれます。 そこで、 "sqlite:/" → "sqlite:" とすると、キレイサッパリ解決! 確かに、ローカルにおいて、 "sqlite:/C:\xampp\~~" という表記はオカシイですものね。 私は、PDO関連のDB処理は、自作クラスにて行っており、 その中を覗いてバグを探すことは通常あまりしないため、 余計な「/」の発見に手間取りました。 また、dsn というものをよく理解していなかったために、 それをブラックボックスにしてしまっていたことも、 発見を遅らせる原因の1つだったかもしれません。 以上、 最後まで、私の愚問にお付き合い頂き、 本当にありがとうございました。 非常に助かりました!!! スッキリ! (ただし、Xampp1.7.3のApacheが起動しない件は、スッキリしていませんが。笑)

回答No.8

やっぱり咬み合ってなかったですね、ごめんなさい。 >例 >hogehogeディレクトリ内 >hogehoge/db_hoge.sqlite3  //データベース >hogehoge/script_hoge.php  //データベースを操作するphpスクリプト >script_hoge.php の中では、 >define('DB','db_hoge.sqlite3'); これを例にしたとして、 <?php //とりあえずエラーが全部でるようにしとく error_reporting(E_ALL); define('DB', 'db_hoge.sqlite3'); //まずDBが存在するか確認 if(!file_exists(DB){ echo "dbがないよ";exit(); } $pdo = new PDO('sqlite:' . DB); //なにかダメだったときにException(エラー)を投げるようにする $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //適当なSQLを投げてみる $pdo->query("SELECT * FROM your_table"); ?> もし、データベースにアクセスしていて、そのデータベースが、SQLite3のデータベースでないか、バージョン違いの場合、 「Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 26 file is encrypted or is not a database'」 とかといったエラーメッセージが現れます。 どうなるでしょうか。 また、 http://reddog.s35.xrea.com/wiki/TkSQLite.html こちらのサイトに、Windowsで動作する、SQLite用のGUIクライアントがあるので、これの最新版 下のほうにある、 tksqlite-0.5.8-win32-bin.zip ってやつをダウンロードして、データベース開いてみてください。 左下に「Version」と表記され、バージョン情報が出てきます。 また、スクリプトを見直して、 <?php $pdo = new PDO('sqlite2:' . DB); //sqlite2で開いてる ?> とか、レンタルサーバ側においたスクリプトでやってないかとか確認してみてください。 ※SQLite3.xxの、3のマイナーバージョン側の違いで開けないというのはあるのかもしれませんが・・・わかりません

nbsp0606
質問者

お礼

レスポンスが遅れまして、申し訳ありません。 色々と試行錯誤しておりました。 リモートとローカルでSQLiteのファイルが開けたり開けなかったりという問題ですが、 この問題の原因はほぼ間違いなく、「パス表記」にありそうです。 (つまり、マイナーバージョンなどのバージョン違いによる問題ではなさそうだ、ということです。) 具体的に、何が分からないかと言うと、 DBにアクセスするPHPスクリプトファイルの中で、 $db = 'hoge.sqlite3'; と書いた場合、 そのDBファイルと、スクリプトファイルの階層は、「同階層」だという認識で 私は、いるのですが、 どうもこれは「必ずしも正しくはない(?)」ようなんです。 私の環境では、 $db = 'hoge.sqlite3';とした場合、そのDBファイルの存在場所は、 C:\hoge.sqlite3 という、「C:\~」の階層(Cドライブ直下の階層)になっているのです。 私としては、PHPスクリプトファイルと同階層にDBを作成したり、 また、その同階層にあるDBファイルにアクセスしたりしたいので、 「同階層のパス表記」をまず確実に理解し、 その上で、そのパス表記をもとに、DBの作成やアクセスをする、 という方向で、問題解決を図りたいと考えております。 そこで、同階層の表記として、 'xampp\\htdocs\\xampp\\db_dir\\' とか、 'C:\\xampp\\htdocs\\xampp\\db_dir\\' なんて書き方を試したのですが、 どちらもダメでした。 (DBの存在場所の最終理想形 → C:\xampp\htdocs\xampp\db_dir\hoge.sqlite3) ※ちなみに、 phpスクリプトファイルの存在場所は C:\xampp\htdocs\xampp\db_dir\db_access.php になります。 話を戻しまして、 前者の書き方だと、「DBがないよ(if(!file_exists(DB)){~~の分岐)」と言われ、 後者だと、 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [14] unable to open database file' in C:\xampp\~~~~ というエラーが吐かれます。 (※前者は、自作のデバグコードです。) 「C:\~」というパス表記だと怒られるのでしょうか? このような場合、一体、どう書けば、 「同階層のパス」は得られるのでしょうか。 これさえ解決すれば、すべて丸く収まる気がします。 何度もすみません、また宜しくお願い致します。

nbsp0606
質問者

補足

お礼で書いたことに補足させて下さい。 if(file_exists(C:\\xampp\\htdocs\\xampp\\db_dir\\hoge.sqlite3)){ echo 'DBはあります'; } else 'DBはありません'; として、パスの正誤判定をしますと、「DBはあります」となりますから、 ファイルパスの表記自体は正しそうです。 しかし、そのファイルパスを、PDOに渡すと、 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [14] unable to open database file' in C:\xampp\~~~~ これが吐かれます。 PDOには、このパスは理解できないのでしょうか? 問題の根源は、おそらくココにあります。

回答No.7

>リモートでは問題なくアクセスできている リモートとは、どういう事でしょう。 参照先のURL(Y!知恵袋)見てみましたが、SQLiteManagerを使ってデータベースファイルを生成した、ということでしょうか。 XAMPPの場合、「c:\xampp」にインストールした場合は、 「c:\xampp\htdocs」がWebのルートディレクトリになりますが、 SQLiteManagerを c:\xampp\htdocs\sqlitemanager にインストールされた場合、デフォルト設定で「hoge.db」というデータベースを生成した場合、 c:\xampp\htdocs\sqlitemanager\hoge.db と作成されます。 とりあえずコレを、 c:\xampp\htdocs\myapp\index.php というPHPファイルから呼びたい場合、 <?php define('DATABASE', dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'sqlitemanager' . DIRECTORY_SEPARATOR . 'hoge.db'); //というようにフルパスで定数でもつくっておいて、 $pdo = new PDO('sqlite:' . DATABASE); //などといった感じで呼び出す。 ?> 質問された内容と全然噛み合ってなかったらごめんなさい。

nbsp0606
質問者

お礼

回答有り難うございます。 私の説明に分かりにくい点があり、申し訳ありません。 >リモートとは、どういう事でしょう リモートサイト、という意味です。 その逆が、ローカル(ローカルサイト)です。 DreamWeaverにそういった言葉がありまして、それをそのまま使わせて頂きました。 具体的には、リモートはレンタルサーバー上となります。 一方、ローカルは自分のPCです。 >SQLiteManagerを使ってデータベースファイルを生成した、ということでしょうか。 いえ、phpスクリプトファイルからDBを作成しました。 $sql = CREATE~; というSQL文をPDOで、 $conn->exec($sql); として作成、といった流れです。 で、話を戻しまして、 リモートで作成(これも、phpスクリプトファイルから作成)したsqlite3のDBを、 ローカルにダウンロードして、そこでそのDBファイル(.sqlite3)にアクセスすることは できないのでしょうか? アクセスできない理由として、 作成者の問題、権限(パーミッション)の問題、 リモートとローカルで同じsqlite3ファイルを作成したとしても、 微妙にsqlite3のバージョンが異なることによる問題、 などにより、アクセスできなかったりするのでしょうか? というのが前回の質問でした。 分かりにくくてすみませんでした。 なお、 実際には、 リモートで作成した.sqlite3ファイルでも、ローカルで開けるんだけど、 その開く際のファイルパスの書き方に問題があって開けないのかな、 なんて思っていたりします。 その意味で、 >define('DATABASE', dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'sqlitemanager' . DIRECTORY_SEPARATOR . 'hoge.db'); ここには注目しました。 やはり、パスの問題なのでしょうか? ちなみに、ローカルにダウンロードしてきて、 その.sqlite3ファイルは、それにアクセスするphpスクリプトファイルと 同じディレクトリに入れています。 例 hogehogeディレクトリ内 hogehoge/db_hoge.sqlite3  //データベース hogehoge/script_hoge.php  //データベースを操作するphpスクリプト script_hoge.php の中では、 define('DB','db_hoge.sqlite3'); のようにして、DBにアクセス。 以上、何度もスミマセン。 宜しくお願い致します。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.5

大アイアンです。ドライバー以上に飛びます。違います。打ち間違いです。 代替案です。 俺自身、インストールしてみて、へ~って思っただけで、結局使わなかったもので、 なんか 開発も止まってしまっているような、WampServerと言うものもあります。 http://www.forest.impress.co.jp/article/2008/12/19/wampserver.html http://www.wampserver.com/en/ http://ja.wikipedia.org/wiki/WampServer 正直、自分自身も 使い込んでおりませんし、よく分かってもおりません。 そんなのを、あまり人に勧めるのもどうかと思ってますので、万策尽きて どうしようもない時にお試しください。 なんか 似たようなものが、もう一つあったのですが、名前が完全に記憶から吹っ飛んでしまっており、思い出せません。

nbsp0606
質問者

お礼

回答ありがとうございます。 >大アイアンです。 打ち間違いを修正できるにも関わらず、そのまま強行突破する辺りが、 まさに大アイアンと言えそうです。笑 さて、wampサーバー(リナックスだとランプなのでしょうね。)という、 開発のストップしている怪しげな大アイアンを教えて頂き、ありがとうございます。 xamplite1.7.3が今最も熱い代替案として浮上していますので、 この代替案でつまずいたら、ワンプを覗いてみようかと思います。 もっとも、ワンプでSQLite3が使えないのであれば、役立たずですが…。 >似たようなものが、もう一つあったのですが、名前が完全に記憶から吹っ飛んで こちらも大アイアンだったんですね。 なんと芸の細かいこと。笑

回答No.4

となると後はアンインストール時にレジストリが消えきってないということが考えられるんですが、 http://www.getnext.net/wp/?p=346 こんな記事が。 また、XAMPPをサービスとして起動とか、そういうオプションにチェックをいれていた場合、 コントロールパネル>管理ツール>サービス の中の一覧にApacheが存在してたりすることがあるのですが、コレは問題なかったですか? http://kawama.jp/archives/2006/09/windows.html 一応、削除方法がここに。 上記でも無さそうなら、レジストリエディタ起動して、xamppとなの付いているエントリを確認して、 最初の記事のようにディレクトリが現在と違うものがあるなら、削除したり、書き換えたりを 試してみてもいいかもしれません。※レジストリ編集は慎重に。 ■代替案 恐らく本家Apacheを入れても、同じ現象になると思うので、当てに出来ないと思います。 別のHTTPDを入れてみるって言うのも手といえば手ですが・・・・ ・AN Httpd ・雷電HTTPD とか・・・・ まぁ、マイナーな物を使っても情報は見つからないでしょうし、オススメは出来ません。 最も良い方法は、Windows自体の再インストール、とかなってしまいそうですね。

nbsp0606
質問者

お礼

回答有り難うございます。 >コントロールパネル>管理ツール>サービス >の中の一覧にApacheが存在してたりする 確認しましたが、Apacheが関係するものは有りませんでしたので、 ゆえに、「消す」という作業をすることはありませんでした。 ついでに、Apacheとは無関係な、しかし、邪魔しているかもしれないサービス を止めたりしてみましたが、これも効果はなく。 >レジストリエディタ起動して、xamppとなの付いているエントリを確認 レジストリエディタなるものを使うのは初めてでしたが、 起動させ、「編集>検索」を経由して、「xampp」を検索。 該当するものを1つずつ見ていき(F3キーで移動)、 「c:\xampp\xampp」のものを「c:\xampp」へと修正。 バージョン1.7.0の旧xamppは、「c:\xampp\xampp」にインストールしていました。 一方、新バージョンは「c:\xampp」にインストールしたので、 レジストリの中にある「c:\xampp\xampp」関連のものをすべて、 「c:\xampp」に修正し、その際、 修正した結果、その名前「c:\xampp~~~」は既にあります とエラーが出たものについては、削除 としました。 ----- と、ここまで書いていて思うのですが、 旧バージョンがインストールされていたディレクトリ「c:\xampp\xampp」 に対し、新バージョンも同様に、そのディレクトリへインストールした場合には、 関連するレジストリは、おそらく、すべて上書きされる?のではないかと思うので、 上記のようなレジストリの書き換えはしなくても済んだのでしょうか? ----- というわけで、書き換えるべき全てのレジストリを書き換え、 今度こそはと、Apacheを起動させてみましたが、変化はありませんでした。 ついでに、PCの再起動なんかもしてみましたが、それでもダメ。 私の行ったレジストリの修正・削除の方法は、 もしや、間違っていましたでしょうか? アンインストール後に、レジストリエディタから、 xampp関連のものをすべて「削除」し、まっさらにし、 その上で、改めてインストールをする、 という方法で再インストールをすべきだったのでしょうか。 私がしたのは、 アンインストール →ディレクトリを変えての再インストール →ディレクトリの異なるものでxamppと名の付くファイルやデータを修正or削除 という方法です。 また、 ご提示頂いた、■代替案については、やり方がよく分からないため、まだしていません。 話は変わり、 xampplite1.7.3なるものはどうなのか、と思い、 インストールしてみました。 そしたら、見事、使えました。 liteバージョンだと、FTPサーバー、Mailサーバー機能が省かれているようです。 ということは、この辺りの機能との相性により、本件は生じていた問題なのでしょうか。 まぁ、よく分かりませんが、liteなら使えそうです。 最悪、これを使うことになりそうです。 また、これまでxampp1.7.0を使っていた、というのは既にお話しした通りですが、 xampp1.7.1はどうかと思い、試してみましたら、これも使えました。 では、1.7.2はどうかと言うと、これはダメでした。 インストールの際に、オレンジ色の画面がモニタいっぱいに広がる形式の インストーラーの場合(1.7.0や1.7.1が、そう。)だと、 インストール後、正常にApacheは機能し、 コマンドプロンプト上で(y/n)のやりとりだけでインストールを進めるタイプの バージョンですと、正常にApacheは機能しない、 という違いがあることが分かりました。 本件の原因が、インストール形式にあるのかどうかは謎ですが、 念のため、記しておきます。 さて、これで、 xamppの新しめのバージョンだと、エラーが出ることが分かりました。 悲しいことに、1.7.2からSQLite3対応のようで、 私が今使うことのできる中で最も新しいバージョンである1.7.1は、 SQLite3を使いたい私には、1.7.0同様、役立たずです。 liteだと、最新バージョン1.7.3が使え、 これはSQLite3に対応しているため、問題有りません。 ただ、Mailサーバーが使えないのは少なからず残念な点です。 以上の私の試行錯誤の結果から、 もし何か他に打開策など思いつくことがございましたら、是非ご教示下さい。 宜しくお願い致します。

nbsp0606
質問者

補足

■「お礼」の記載の中で分かりにくいかもしれない箇所を修正します。 ------------ 私がしたのは、 アンインストール →ディレクトリを変えての再インストール →ディレクトリの異なるものでxamppと名の付くファイルやデータを修正or削除 ------------ ↓修正(より正確かつ詳細に) ------------ 私がしたのは、 →アンインストールをし、 →過去のレジストリが残った状態(つまり、何も手を加えていない状態)で、 ディレクトリを変えての再インストール。 (具体的には、「c:\xampp\xampp」から「c:\xampp」へ) →レジストリエディタを開き、xamppと名の付くものの中から、「ファイルの名前」や「データ(中身)」を、正しいディレクトリのものへと、修正or削除 (具体的には、「c:\xampp\xampp」から「c:\xampp」へ) ------------

回答No.3

ざっと調べてみましたが、Skypeとかでポートの競合があるとか、 XamppとかApacheだけとかサービスですでに起動している別のプロセスが動きっぱなしになっているとか。 一応ここらへんを確認してみてはいかがでしょう。 また、単純にポートの競合であるのなら、httpd.confでListenポートを、現在の80から、8888とかに変えてみて起動するか確認するというのはどうでしょうか。

nbsp0606
質問者

お礼

回答ありがとうございます。 >Skypeとかでポートの競合があるとか これはどうやったら調べられますでしょうか? 質問文に書きました通り、スカイプの件は80ポートをスカイプでは使わない という設定に変えて対処しています。 また、Xamppn内の「xampp-portcheck.exe」にて、 ポートの競合がないかのチェックも既にしてあります。 すべての項目において「free」となっています。 >すでに起動している別のプロセスが動きっぱなしに PC起動直後にApacheを起動してみてもダメでした。 もっとも、PC起動直後が、まっさらな状態かどうかは謎ですが。 (まっさらな状態かどうかの確認方法がありましたら、教えて頂けると助かります。) >httpd.confでListenポートを、現在の80から、8888とかに変えてみて起動 これもやってみました。 C:\xampp\xampp\apache\conf にある、httpd.conf を、 #Listen 0.0.0.0:80 #Listen [::]:80 Listen 8888 のようにして、PCの再起動はせずに、 すぐにApacheを起動させようとしてみましたが、 やはりダメでした。 で、この作業の結果、吐かれたエラーログは、 これまでのエラーログと全く一緒です。 参考: http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1435797084 ん~、どうしたらよいのやら。 ApacheとPHP5とSQLite3が使えれば良いので、 Xamppじゃなくても良いのかもしれないのですが、 何か、代替案はありますでしょうか。 もしご存知でしたら、お教示下さい。 宜しくお願い致します。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

多分、俺のも ほとんど同じ状態です。 ただ、それでも、特に何もいじらずに使えてしまっているので、いつも通りの斜め下な回答ですみません。 俺は、apache と mysql しか使ってないのですが、コンパネを以下の順序で押すと安定します。 apacheクリック → Mysqlクリック → [apache落ちる] → 再度、apacheクリック → 安定 最近、意識せずに こうしている為、よく覚えていませんが、Mysqlを先に起動させると良いのかもしれません。 俺は この状態で使えてしまっている為、問題を解決せずに回避しているだけです。

nbsp0606
質問者

お礼

回答ありがとうございます。 私の場合ですと、mysqlをon/offしても全く効果はなく、 相変わらず、起動後2秒で落ちます。 この姿勢がずっと変わらないという意味では、 ある意味、安定していると言えます。苦笑 また、ちなみに私は、Xamppのコントロールパネルでon/offできる機能のうち、 Apacheのみ使用したいと考えていますので、 正常に動作してくれる他の機能については、 正直、どうでも良かったりします。 Apache+PHP+SQLite3で使いたいと考えているので、 Xamppでなくてもいいのかもしれません。 >問題を解決せずに回避しているだけ この考え方、よく分かります。 私も、それで対処できるのであれば、そうしたいところですが、 今はそれすらできない状況なので、本当にまいっています…。 また何か分かりましたら、アドバイスして下さい。

回答No.1

Xamppディレクトリ内の、apache/logs/error.logファイルに何かエラーとか表示されていないですか? 以前のhttpd.confファイルなどを上書きで使い回してたりすると、パスが変わったり、書式が変わったりしててエラーが出たりということはあったりします。

nbsp0606
質問者

お礼

回答ありがとうございます。 早速、エラーログをコピペさせていただきます。 (アンインストールしたはずの古いXamppが何らかの形で影響を及ぼしているのでしょうかね…?) [Tue Dec 07 18:06:08 2010] [notice] Server built: Nov 11 2009 14:29:03 [Tue Dec 07 18:06:08 2010] [crit] (22)Invalid argument: Parent: Failed to create the child process. [Tue Dec 07 18:06:08 2010] [crit] master_main: create child process failed. Exiting. [Tue Dec 07 18:06:08 2010] [notice] Parent: Forcing termination of child process 36 [Tue Dec 07 18:06:16 2010] [notice] Digest: generating secret for digest authentication ... [Tue Dec 07 18:06:16 2010] [notice] Digest: done [Tue Dec 07 18:06:16 2010] [notice] Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations このことから、何か分かりますでしょうか…。 宜しくお願い致します。

関連するQ&A

  • XAMPPのApacheがどうしても起動しません。

    WindowsXP sp3 32bitにあるXAMPPの1.7.1をアンインストールし、XAMPPの1.7.7をバージョンアップで入れたのですが、xamppのコントロールパネルからMySQLは起動するのですが、Apacheのみが起動できません。エラーログにも何も表示されず、BUSYとなり、WARNING: terminating worker thread 0と表示され、ポート80も443もフリーで、 APACHE FRIENDSにあるFAQの「APACHEが起動しません。」項目全てを調べたのですが、どれも当てはまらず、 最後のWINSOCK XP FIXを試してもだめで、元にも戻らなくなってしまいました。 万策尽きて困り果てております。どなたか解決策を伝授いただけないでしょうか。

  • XAMPPでApacheが起動しない

    プログラミング初心者です。 XAMPPをダウンロードしたのですがMySqlやFileZillaは起動し、Apacheだけが起動しません。 こういった場合、ポートが競合して使えなくなっていることが多いそうですがPort-Checkを行っても全てのポートが解放されている状態でした。 OSはWindows7の32bit版、xamppのバージョンは1.7.3(1.7.4も試しましたがダメでした)です。どなたが原因がわかる方いらっしゃいましたら教えていただけると嬉しいです。よろしくお願いいたします。

  • xampp lite の apache が起動しません

    USBメモリにxampp liteを入れたんですが、apacheが起動しません。Mysqlはちゃんと動きます。 port80はちゃんとfreeになってます。 「xampp start」を押すと、 「Syntax error on line 476 of C:/xampplite/apache/conf/httpd.conf」 ↑ 中身は「Include conf/extra/httpd-xampp.conf」 「Syntax error on line 7 of C:/xampplite/apache/conf/extra/httpd-xampp.conf」 ↑ 中身は「LoadModule php5_module "C:/xampplite/apache/bin/php5apache2_2.dll"」 「Cannot load C:/xampplite/apache/bin/php5apache2_2.dll into server」 でこうなるわけです。 ちなみにxampp lite ではなく xampp は動くのか?とおもいxamppインストールしてみたらちゃんとapache動きました。で、そのあとxamppアンインストールしてからもう一度 xampp lite で 「xampp start」 やりましたがダメです。mysqlしか動きません。 コントロールパネルから Start を押すと 「Apache Started [Port 80]」 って出るんですが、「Running」の表示が出ません。で、もちろん起動もしていないです。 * Skypeなどは使用しておりません。「Active Ports」やxampp portcheckで調べましたがport80はfreeです。 http://www.altech-ads.com/category3/10000237_1_0.htm * PCは2000とXP両方試しました。 * logファイルは空っぽでエラーログなどはでてません。

    • 締切済み
    • PHP
  • XAMPPでApacheが起動できない。

    XAMPP1.7.7をダウンロードしてインストール後、起動したのですが、Aapcheがstratを押しても起動しません。 MySQLはRunning状態になっています。 インストール前の設定では、 ・Apacheをサービスとしてインストール ・MySQLをサービスとしてインストール にチェックを入れました。 使用OSはXPです。 XAMPPのコントロールパネルのstartを押しても 下部に Busy・・・ Apache service started と表示されるだけで Running にならないのです。

    • ベストアンサー
    • PHP
  • win10でxamppのApacheが起動しない。

    xamppを使用してローカルでwordpressサイトを構築しています。 数ヶ月触ってなかったのですが、久しぶりにローカルホストにアクセスしようとxampp(v3.2.1)を起動したのですが、スタートボタンを押してもapacheが起動できません。 win10に変えてからこうなったのかは自信はないのですが、思いつく原因はそれくらいしかありません。 XAMPPがWindows10で動かない時の対処法(http://kaketayo.net/xampp-cant-start-windows10/) の通りにポートの確認操作をしてみたのですが、 [Ports] Port80=FREE Port443=FREE Port3306=FREE Port21=FREE Port14147=FREE Port8080=FREE とポートはすべてFREEと表示されていて、他とバッティングはしていないようです。 コマンドからnetstatで調べてもやはり上記ポートはどこも使用していないようです。 xamppのエラー文は Windows10にアップブレードしてXAMPPのApacheが起動しない件(http://tonari-it.com/windows10-xampp/) と全く同じ文章です。 xamppでまたローカルホストが使用できるようにするための解決方法、もしくはそのヒントになりそうなサイトがあれば教えてください。

  • 「XAMPP1.71」apacheが起動しない

    「XAMPP1.71」apache起動不具合について教えてください。 ▼インストール直後 apacheは正常に開始でき、Admin画面も確認出来た。 ▼xampp-control.exeからapache停止ボタンを一度でもクリックすると その後、apacheが二度と起動しなくなります。(起動せずAdminボタンを押せない状態) ※何度かXAMPP自体の再インストールを試みたのですが、ほぼ同じ症状でした。 環境等 ・WindowsXP ・XAMPP1.71 ■下記サイトを参考にしているのですが、うまくいきません。 XAMPPでApachが起動しない場合のわりと汎用的な調査・解決方法まとめ http://www.vippers.net/blog/2009/04/xamppapach.html □1)Apachの強制起動 ・/xampp/apache_start.batを実行すると、下記エラーとなります。 (OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 : make_sock: could not bind to address 0.0.0.0:80 □2)ポート80を使っているプロセスの特定 ・netstat -oan TCP 0.0.0.0:80 0.0.0.0:0  LISTENING 5172 □3)ポート80を使っているプロセスからアプリケーション名の特定 httpd.exe □4)ポート80を使用しているアプリケーションの停止 サービス画面より、下記アプリケーションがあやしいと思っているのですが、これを停止すればよいのでしょうか? また、停止するには、どうすればよいのでしょうか? Apache2.2の実行パス、"C:\dev\xampp\apache\bin\httpd.exe" -k runservice

    • ベストアンサー
    • PHP
  • XAMPPでapacheが起動しない

    WinXPでXAMPP for windows ver. 1.7.2を導入しているのですがXAMPPのコントロールパネルからApacheスタートを押すと6秒ほどrunningが表示されて消えてしまいます.  ポート80がほかのアプリで使われているかxamppについてきたポートチェッカーで確認したところfreeと表示されていてこちらはよさそうです. 懸案事項としては,以前phpdevを使っていたことです.しかしphpdevのフォルダは削除したので関係ないと思うのですが… エラーも特に表示されないので何が原因か分からず途方にくれています.誰かご存知の方がいましたらご教授よろしくお願いします.

  • apacheが起動しません。xamppをインストールしました。

    windowsXPを扱っています。PHPをはじめようとして以下の事から進まないので質問します。 http://httpd.apache.org/ から Apache 2.0.63 Released をインストールして http://localhost/にアクセスしたところ、 「あなたの予想に反してー」のページが表示されました。 その後PHPをインストールしていたところ、PHPは最初いろいろインストールするものがあり、ややこしいので 全部をアンインストールしてxamppをインストールした方が早いという事を聞き apacheとPHPをアンインストールして(いろいろインストールしたままだと誤作動が起きると聞いたので) その後xamppをインストールしました。 しかし、今度はhttp://localhost/に アクセスしても「ページを表示できません。」という表示がでてしまいます。 xamppのコントロールパネルversion2.5のモジュールはapacheとMYsqlが起動中となっています。 コントロールパネルの中ではapache起動となっているのですが、実際には起動していないように思います。(localhostに表示されないので)  http://localhost/に 「あなたの予想に反してー」のページが表示されるにはどうしたらよいですか?   (xamppをアンインストールして、また最初と同じようにapacheだけインストールしましたが、http://localhost/にアクセスしても表示されなくなってしまいました。)  ちなみに現在セキュリティソフト(ウイルス対策ソフトなど)は入れていません。  

  • Apacheが起動しない

    Apacheが起動しない XAMPPをインストールしてApacheを起動しようとしたところ、Apacheが起動せず困っています。XAMPPはVer.1.7.3、Apacheは2.2.14です。 他のPCでは起動しているのですが、メインのPCのみ起動しません。 以前、XAMPPではなく個別にApacheをインストールしており、旧バージョンのXAMPPをインストールした際も挙動がおかしいので調べてみると個別にインストールしたApacheが自動的に起動していたので、個別にインストールしたApacheをアンインストールした記憶があります。 ただ、それ以降Apacheの挙動がおかしく、今回XAMPP自体をアンインストールして再インストールしましたが、今回はXAMPPのコントロールパネルから起動しようとしても全く起動しなくなってしまいました。 不可解な症状でどう聞いて良いかも迷うところですが、このような症状に見当がある方がいらっしゃったら教えて頂けないでしょうか?

  • xampp1.7.4のApacheが起動しない

    Windows 7 64ビット、xampp1.7.4のApacheが起動しません。 xamppは32ビット版ですが、多くの方が64ビットで起動しているので、問題ないと思います。 skypeは入っていますが、skypeは80番ポート以外を使用するように設定しています。 Controlパネルを起動すると、MySqlは起動しているのですが、Apacheはstart出来ません。 Windowsの管理ツールのサービスからApacheを起動しようとしても、出来ません。 何回もxamppのアインストールとインストールを繰り返しています。 何度かstart出来てブラウザ上でテストページを確認したのですが、 controlパネルを操作しているうちに、Apacheが起動出来なくなりました。 他に80番を使っているソフトがあるのかと思い、 コマンドの使い方もよくわからないまま、 netstat -oanとしても、:80というものは出てきません。 http://hi-es.net/scripts/portcheck.php で80番を指定しても接続失敗になります。 Windowsファイアーウォールを無効にしてもダメでした。 他に調べるべきことは何でしょうか。 httpd.confは何も触っていません。 何度もインストールしているのがまずかったのでしょうか。

    • 締切済み
    • PHP