XAMPP Apacheが起動できないときのメモ

XAMPPでイントールしたApacheが起動できないときのメモを残しておきます。

原因はポートの80番が他で使われてしまっていること。80番を使うアプリケーションとしては、SkypeとかTermViewerとかありますが、今回は違いました。

netstat -aon で80番を使っているプロセスを調べると、アプリケーションではなくてPID4のNT Kernel & systemが使っていました。

これは止めてはいけませんので、調べていくと、WinRMというサービスが80番を使っているので停止。他のところでは、違うサービスを停止と書いてあります。ユーザーによっては違うみたい。

取りあえず、現在は無事にApacheが起動できるようになりました。使用OSはWindows7です。

違うPHPのバージョンを切り替えできるようにする。

昔CakePHPで作成したWebサイトの機能追加を行っているのですが、そのサイトはPHP4なのです。テストするため、PHP4の環境が必要です。

PCですとXAMPPで一発インストールなのですが、みんなで参照するLinuxサーバーではそうはいきません。今まではyumで簡単にインストールしていきましたが、PHP4は古いバージョンなのでyumでのパッケージインストールもできません。

しかたないのでソースからコンパイルです。PostgeSQLとかMySQLもソースからインストールしていきます。今回はとても時間がかかる。PHP4 だけではなく、いまはPHP5 もテストで使うであろうと考えて、切り替えるようにしておきます。参考になったのは、

【PHP】複数バージョンのPHPを使う方法

です。違いはApacheがパッケージでインストールしているとか、PHPのバージョンの違いです。

以上、自分が設定したことを忘れそうなので、手順はEvernoteにメモしておきます。

CakePHP 1.3によるWebアプリケーション開発 オープンソース徹底活用

CakePHP辞典 Pocket詳解

XAMPPのバーチャルホストを設定してCakePHPのテストサイトを構築する。

CakePHPで開発していて、ローカルのサーバーにテストサイトで動かしたいとき、まともにlocalhost直下に置ければいいのですが、いろいろとプロジェクトを抱えていると、たくさんのテストサイトを同時に動かしたいときがあります。サブディレクトリごとに設定してあげてもいいのですが、これだと.htaccessの設定が面倒であったり、絶対アドレスでリンクを指定できないとか制限があります。

ドメイン直下にドキュメントルートを配置できればいいのですが、一つ考えられるのはサブドメインを指定するというのがあります。しかし、これではlocalhostでは指定できないととか、わざわざローカルのPCにサブドメインを指定するのもやっかいであるとなります。

次に考えられるのはポート番号で分けてしまう方法があります。例えば

  • Aプロジェクトは、http://localhost:8080/
  • Bプロジェクトは、http://localhost:8082/

などでアクセスすることになります。これですと、ポート番号を適当に追加していけばプロジェクトを分けてアクセスすることが可能にになります。

簡単にローカルのPCにCakePHPのテスト環境を構築するにはXAMPPをインストールしてしまうのが一番簡単です、XAMPPを一つインストールしてしまえば、CakePHPのテスト環境で必要なApacheや、PHP、MySQLも動かすことがことができます。

ポート番号で分けてCakePHPの環境で動かすには、Apacheのhttpd.confにバーチャルホストの設定を追加してしまいます(ここからが本題)。上記のAプロジェクトの場合はApacheのhttpd.confに以下のバーチャルホストの設定を追加します。

Listen <span style="color: #ff0000;">8080</span>

8080>

DocumentRoot "<span style="color: #ff0000;">C:/workspace/TestProject/app/webroot</span>"
DirectoryIndex index.html index.php
ServerName localhost

<Directory "<span style="color: #ff0000;">C:/workspace/TestProject/app/webroot</span>">
Options Indexes FollowSymLinks MultiViews Includes ExecCGI
AllowOverride All
Order deny,allow
Allow from all

この場合、ダウンロードしたCakePHPは、c:\workspace\TestProjectにコピーしてしますと(EclipseのPDTで開発しているためこんなディレクトリにプロジェクトを入れています)、ドキュメントルートはその下の\app\webrootになります。プロジェクトを増やす場合は、赤字の部分を変更すればいいでしょう。

Optionsは、適当に動作させる環境に合わせて設定してください。これは、テスト環境を自分のローカルPC以外からアクセスできないようにしたり、ましてインターネットからアクセスできないようにしたり(もちろん当たり前ですが)してしまえば、あまり気にしなくてもよいかもしれません。

以上、いつもhttpd.confの設定でつまずく覚え書きです。

追記

せっかくこの記事にたどり着いて読んでくれたところ申し訳ありませんが、現在(2014/04/28)のところ、この方法は使っていません。今はVirtual Box+Vagrant+Chefでローカルのテストサイトを構築しています。