XAMPP の再インストール
何らかの理由で XAMPP の再インストールが必要になる場合があります。以下は Windows 環境(この例では Windows7)への XAMPP の再インストール方法についての覚書です。
また、以下の例では、XAMPP を C ドライブ直下(C:)にインストールしています。再インストールで試した XAMPP のバージョンは XAMPP for Windows 7.3.2 です。
作成日:2019年03月02日
バックアップ
データをバックアップする必要があります。特に htdocs にある Web サイトのデータや WordPress などデータベースを利用している場合は、MySQL のデータのバックアップが必要になります。
また、設定関連のファイルなどを必要に応じてバックアップを取るようにします。
※ XAMPP をアンインストールすると、XAMPP のフォルダ内のファイルが全て削除されてしまうので、確実に必要なファイルをバックアップすることが大切です。
以下はあくまで参考情報です。使っている環境によりバックアップが必要なファイルも異なってくるので、慎重に検討する必要があります。
データのバックアップ
特にサイトのデータのある htdocs(C:\xampp\htdocs)は必須ですが、その他のデータや設定ファイルのある Apache(C:\xampp\apache)、MySQL(C:\xampp\mysql)、PHP(C:\xampp\php)のフォルダなどはバックアップしておくと良いと思います。他にも XAMPP の機能を利用している場合は、それらのファイルをバックアップします。
何をバックアップして良いかわからない場合は、Xampp(C:\xampp)のフォルダを丸ごとコピーしてどこかに別名でバックアップします。
※編集中のファイルがあれば、保存して終了してからバックアップします。当然ですが、バックアップ後に編集した内容は XAMPP のアンインストールでなくなってしまいます。
MySQL のバックアップ
WordPress などデータベースを使っている場合は、MySQL のデータをバックアップする必要があります。
MySQL データフォルダ(C:\xampp\mysql\data)をコピーしてバックアップします。一応念のため、MySQL を停止してからバックアップします。
phpMyAdmin やコマンドプロンプトからデータをエクスポートして、再インストール後にインポートする方法もありますが、これらの方法を理解していないと難しいと思います。
例えば、エクスポートする際は、個々のデータベースを選択しないでエクスポートすると全部まとめてエクスポートされてしまいますし、個々にエクスポートするのも面倒です。また、インポートする際にはサイズの制限があったり(圧縮したり、設定を変更することはできますが)、予め空のデータベースを作成しておく必要があったりとそれなりの知識が必要になります。
今回試してみた限りでは、data フォルダを戻せば大丈夫だったので、その方が簡単かと思います。但し、何らかの理由でうまく行かない可能性もあるかも知れませんので、念のためエクスポートしておくのが良いとお思います。
※ バージョンが異なる場合など、data フォルダを戻すだけではうまく行かない可能性があるので個々のデータベースをエクスポートしておくことをおすすめします。
XAMPP のアンインストール
必要なファイルをバックアップが完了したら、XAMPP をアンインストールします。
※ XAMPP をアンインストールと XAMPP のフォルダ内のデータ(Web サイトのデータや設定ファイルなど)は削除されます。
XAMPP が起動していたらコントロールパネルで、起動している全てのサービスを「Stop」で停止させて「Quit」をクリックして終了させます。
XAMPP のインストールフォルダ(C:\xampp)にアンインストーラー(uninstall.exe)があるので、それをダブルクリックして実行します。
ユーザー アカウント制御の画面が表示されるので「はい」をクリックするとアンインストールが実行されます。
「XAMPP とそのモジュールの全てをアンインストールしてもいいですか?」と聞かれるので「Yes」をクリックします。
続いて、「C:¥xampp¥htdocs フォルダも削除しますか」と聞かれるので、問題がなければ(バックアップしてあれば)「Yes」をクリックします。
アンインストールが開始されます。
アンインストールが完了すると以下のように表示されます。
アンインストールが完了すると、「再起動しますか?」と聞かれるので「はい」をクリックして再起動します。もし、聞かれなくても再起動した方が良いです。
今回試したところ、アンインストール完了しても 「C:¥xampp」フォルダは残っていました(但し、中身はほとんど空でした)。再インストールの際に、「C:¥xampp」フォルダが残っていると、邪魔になるので削除します。
XAMPP の再インストール
XAMPP を再インストールします。インストール方法は「XAMPP のダウンロード・インストール方法と基本的な使い方」を参照ください。
起動しない:Attempting to start Apache app...
今回 Windows7 の環境で再インストール後起動しようとしたところ「Attempting to start Apache app...」と表示されたまま、Apache や MySQL が起動しないということが起こりました。
結果から言うと、それぞれのサービスがインストールされていなかったことが原因でした。
再現すると、再インストール後、Apache と MySQL の「Start」をクリックしても以下のように「Attempting to start Apache app...」と表示されたまま起動しませんでした。
XAMPP のコントロールパネルの「NetStat」をクリックすると、Apache や MySQL のプロセスは起動していました。
「Services」をクリックすると、Apache や MySQL が表示されていませんでした。
この状態で、再度 Apache や MySQL の「Start」ボタンをクリックしてしまうと、当然のことですが、すでにそれらのプロセスは起動しているので、以下のようなエラーが表示されてしまいます。
Problem detected! Port 80 in use by "Unable to get info" with PID 13592! Apache WILL NOT start without the configured ports free! You need to uninstall/disable/reconfigure the blocking application or reconfigure Apache and the Control Panel to listen on a different port Problem detected! Port 443 in use by "Unable to get info" with PID 13592! Apache WILL NOT start without the configured ports free! You need to uninstall/disable/reconfigure the blocking application or reconfigure Apache and the Control Panel to listen on a different port
上記エラーは「Port 80 と Port 443 は PID 13592 のプロセスにより既に使用されています。ポートを開放しないと Apache は起動できません」と言うような内容です。
今回の場合、再インストール後にすでに「Start」をクリックしていて、その後また「Start」をクリックしたために、このようなエラーが出てしまいました。他のアプリケーションにより Port 80 と Port 443 が使用されているわけではありません。PID 13592 のプロセスは「NetStat」で調べた httpd.exe (つまり Apache)です。
2重に起動させてしまったので、タスクマネージャを使って該当するプロセスを終了させる必要があります。
解決方法
今回の場合、XAMPP を管理者として起動してサービスをインストールすることで解決しました。
XAMPP のアイコンを右クリックして「管理者として実行(A)..」を選択して実行すると以下のような表示になっていました(サービスに赤い×印が付いている)。
赤い×印をクリックすると、以下のようにそのサービスをインストールするかを聞かれるので「Yes」をクリックするとサービスがインストールされます。
必要なサービスをインストール後、「Start」を押すと問題なく起動しました。
起動時に常に管理者として実行
XAMPP を起動する際に常に管理者として実行させるには、XAMPP のフォルダ(C:\xampp)にある「xampp-control.exe」を右クリックして「プロパティ」を選択します。
「互換性」タブで「管理者としてこのプログラムを実行する」にチェックを入れます。
データの復元
バックアップしておいたデータを元の場所にコピーします。
htdocs
新規に作成された htdocs(C:\xampp\htdocs)には XAMPP 関連のファイルやフォルダがあるので、それらは上書きしないで、バックアップしてある htdocs のデータを移行します。
MySQL
新規に作成されたデータフォルダ(C:\xampp\mysql\data)を別名(以下の例では data-original)に変更して、バックアップしてあるデータフォルダ(data)をそこ(C:\xampp\mysql\)にコピーします。
その他必要に応じてバックアップから復元します。
今回の場合、XAMPP でサブドメインを使用していたので、C:\xampp\apache\conf\extra\httpd-vhosts.conf の設定なども復元する必要がありました。
お使いの環境に合わせて復元します。