初めてLaravelでチーム開発を行なっていた時、php artisan serveとターミナルに入力して、開発中のアプリケーションにアクセスしていました。しかし、その際XAMPPを使っていたため、XAMPPのApache Http サーバーが起動してアプリケーションにアクセスしているのだと勘違いしていました。
php artisan serveコマンドとは一体なんぞや?
php artisan serveとターミナルにコマンドを入力すると、Laravelに内蔵されている(PHP本体にある)ビルトインサーバー機能が利用され、アプリケーションにアクセスすることとなります。そのため、XAMPPのApache Http サーバー(Webサーバー)は経由していません。この場合、ブラウザであなたが見ている画面は、Webサーバーを経由することなくApplicationサーバーにダイレクトでアクセスし、画面が表示されているということになります。
Apache HTTP サーバーを経由してアプリにアクセスしてみる
ブラウザのアドレスバーに"http://localhost/プロジェクト名/public"と入力すると、Apache HTTP サーバーを経由してアプリにアクセスすることができます。この場合、Webサーバー(Apache HTTP サーバー)を経由した後、Applicationサーバー(php artisan serveコマンドを実行)を経由してアプリにアクセスしているという流れとなっております。
どのように使い分けたらいいの?
では一体、どのように使い分けたらいいのでしょうか? 開発段階では、php artisan serveコマンドを使ってアプリケーションにアクセスします。そして、アプリケーションを公開する場合は、Apache HTTP サーバーを使用します。ただしここで注意!XAMPPに搭載されているApache HTTPサーバーは、ローカルIPアドレスで動作します。そのため、XAMPPをインストールしたコンピュータ以外からは直接アクセスすることができません。それだと、Apache HTTPサーバーはアプリケーションを公開するために使えないじゃないかと思うかと思います。実は、Apache HTTPサーバーはXAMPPに搭載されている以外に、レンタルサーバー(ホスティングサービス)でよく利用されているのです。そのため、アプリケーションを公開するために、よくApache HTTPサーバーが利用されるわけです。アプリケーションを公開したい場合は、レンタルサーバーを利用することが一般的であるようです。つまり、アプリケーションを公開しようと思うとお金がかかるわけですな...