PHPによる世界一簡単なローカルサーバーの立て方【即席サーバー】

題名の通り。

XAMPPとか使わず ローカルサーバー を立てる方法についてです。

やってみたら意外と簡単だったので、
ここでは 即席ローカルサーバーをPHPで立てる方法とか注意点 をまとめてみました。

忘れがちな自分へのメモも兼ねてます。

ローカルサーバーが必要になる場面ってこんなとき

ローカルサーバーの建て方には2種類あります。

  1. XAMPPとかで本格的に建てる
  2. PHPで即席サーバーを建てる

本格的なWeb開発をしたいときはXAMPP必須だけど、
ちょっとしたスクリプトとかのテストをしたいときには向いていません。

本格的なのはいらないけど、サーバーが必要な場面ってあるんですよね。

 

たとえば自分の場合・・・
ある時ローカル環境で JSから画像読み込みする処理をテスト してました。

▼ こんな感じのコード

実行スクリプトと同じ場所にある hoge.txt の内容を読み取るコード

▼ これを直にサーバーなしで実行したら、次のエラーが発生

どうやら CROS ポリシーエラーで読み込みできてない模様

今回の場合だと fileプロトコルでファイルにアクセスしてるのが原因みたいです。

 

もちろんXAMPPでサーバーを立てるという選択肢もあったけど、面倒だったので却下

ちょっとしたスクリプトの検証だったので、PHPを使って即席サーバーを立ててみました。

PHPによる即席ローカルサーバーの建て方手順

そのやり方は次の手順

1.ディレクトリ内で php -S を実行

まずターミナル上でサーバールートにしたいディレクトリにアクセス

そしてそのディレクトリ内で次のコマンドを実行(場所が C:\localserver\  の場合)

すると次画像みたいにコマンド上でサーバーが起動します。

PHPで即席ローカルサーバーを立てた時の様子

これで、即席サーバーのできあがり

2.作成した即席サーバーにアクセスする

あとは即席サーバーのあるディレクトリにスクリプト・必要なファイルを置くだけ

そしてブラウザ上から https経由 でアクセスできるようになります。

 

そのアクセスの仕方ですが・・
アドレス欄に locadlhost:9000  から始まるURLを打てばおK

▼ トップページににアクセスする例

▼ index.html がない場合、しっかりエラーが表示される

PHPで建てた即席サーバーにブラウザからアクセスしたときの様子

これで自立して動くローカルサーバーのできあがり

本格的なことはできないけど、スクリプトのテストには持って来いです。

phpでローカルサーバーを立てるときの注意点

こういう風に簡単だけど、少し注意した方がいいこと もあります。

特に気を付けないといけないのは次の2点

1.ディレクトリ名に日本語を含めない

まず気を付けるべきがコレ

ディレクトリ名に日本語を含めちゃいけないこと

もし日本語が少しでも含まれていると、サーバーは建てられるけどアクセスできません。

 

▼ 例えば 日本語を含むディレクトリで php -S してみる

▼ 一応サーバーが建てられたが・・・ん???

PHPでローカルサーバーを立てようとしたが、日本語が含まれていて文字化けしてしまった・・・

"ロローーカカルルササーーババーー" とか盛大に文字化けしてしまってます。

 

試しに index.html をディレクトリ内に作成してアクセスしてみます。

▼ すると案の定404エラーに・・・

PHPでローカルサーバーを作るときはディレクトリに日本語は含めない方がいいみたい

確かに index.html を作成したのに404エラーが出てしまった

日本語を含める方法もあるのかもしれないけど、メリットが何1つ無いからディレクトリ名は ASCII だけにしておくのが無難ですね。

2.サーバー実行中はターミナルを閉じない

PHPで建てたローカルサーバーは即席

なので実行中はターミナルを閉じてはダメ

XAMPPだったらコントロールパネルを閉じても問題ないけど、PHPの場合はコマンド上で動いてるだけなので、絶対に閉じないように注意です。

もし本格的なWeb開発をしたいなら、XAMPPを使いましょう、、、

ここまでのまとめ

PHPでのサーバーの建て方まとめ

  1. ターミナル上で php -S を実行
  2. ブラウザ上でサーバーにアクセスする

ちょっとしたテストには役立つかもしれないと思います。

PHP

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください