題名の通り。
XAMPPとか使わず ローカルサーバー を立てる方法についてです。
やってみたら意外と簡単だったので、
ここでは 即席ローカルサーバーをPHPで立てる方法とか注意点 をまとめてみました。
忘れがちな自分へのメモも兼ねてます。
このページの目次
ローカルサーバーが必要になる場面ってこんなとき
ローカルサーバーの建て方には2種類あります。
- XAMPPとかで本格的に建てる
- PHPで即席サーバーを建てる
本格的なWeb開発をしたいときはXAMPP必須だけど、
ちょっとしたスクリプトとかのテストをしたいときには向いていません。
本格的なのはいらないけど、サーバーが必要な場面ってあるんですよね。
たとえば自分の場合・・・
ある時ローカル環境で JSから画像読み込みする処理をテスト してました。
▼ こんな感じのコード
1 2 3 4 5 6 7 8 9 10 11 |
var request = new XMLHttpRequest(); request.open('GET', './hoge.txt', true); request.send(null); request.onreadystatechange = function () { if (request.readyState === 4 && request.status === 200) { var type = request.getResponseHeader('Content-Type'); if (type.indexOf("text") !== 1) { return request.responseText; } } } |
実行スクリプトと同じ場所にある hoge.txt の内容を読み取るコード
▼ これを直にサーバーなしで実行したら、次のエラーが発生
1 2 |
test.html:9 Access to XMLHttpRequest at 'file:///C://example/hoge.txt' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. (anonymous) @ test.html:9 |
どうやら CROS ポリシーエラーで読み込みできてない模様
今回の場合だと fileプロトコルでファイルにアクセスしてるのが原因みたいです。
もちろんXAMPPでサーバーを立てるという選択肢もあったけど、面倒だったので却下
ちょっとしたスクリプトの検証だったので、PHPを使って即席サーバーを立ててみました。
PHPによる即席ローカルサーバーの建て方手順
そのやり方は次の手順
1.ディレクトリ内で php -S を実行
まずターミナル上でサーバールートにしたいディレクトリにアクセス
そしてそのディレクトリ内で次のコマンドを実行(場所が C:\localserver\ の場合)
1 |
php -S localhost:9000 |
すると次画像みたいにコマンド上でサーバーが起動します。
これで、即席サーバーのできあがり
2.作成した即席サーバーにアクセスする
あとは即席サーバーのあるディレクトリにスクリプト・必要なファイルを置くだけ
そしてブラウザ上から https経由 でアクセスできるようになります。
そのアクセスの仕方ですが・・
アドレス欄に
locadlhost:9000 から始まるURLを打てばおK
▼ トップページににアクセスする例
1 |
http://localhost:9000/ |
▼ index.html がない場合、しっかりエラーが表示される
これで自立して動くローカルサーバーのできあがり
本格的なことはできないけど、スクリプトのテストには持って来いです。
phpでローカルサーバーを立てるときの注意点
こういう風に簡単だけど、少し注意した方がいいこと もあります。
特に気を付けないといけないのは次の2点
1.ディレクトリ名に日本語を含めない
まず気を付けるべきがコレ
ディレクトリ名に日本語を含めちゃいけないこと
もし日本語が少しでも含まれていると、サーバーは建てられるけどアクセスできません。
▼ 例えば 日本語を含むディレクトリで php -S してみる
1 2 |
> cd "C:\ローカルサーバー" > php -S localhost:9000 |
▼ 一応サーバーが建てられたが・・・ん???
"ロローーカカルルササーーババーー" とか盛大に文字化けしてしまってます。
試しに index.html をディレクトリ内に作成してアクセスしてみます。
▼ すると案の定404エラーに・・・
確かに index.html を作成したのに404エラーが出てしまった
日本語を含める方法もあるのかもしれないけど、メリットが何1つ無いからディレクトリ名は ASCII だけにしておくのが無難ですね。
2.サーバー実行中はターミナルを閉じない
PHPで建てたローカルサーバーは即席
なので実行中はターミナルを閉じてはダメ
XAMPPだったらコントロールパネルを閉じても問題ないけど、PHPの場合はコマンド上で動いてるだけなので、絶対に閉じないように注意です。
もし本格的なWeb開発をしたいなら、XAMPPを使いましょう、、、
ここまでのまとめ
PHPでのサーバーの建て方まとめ
- ターミナル上で php -S を実行
- ブラウザ上でサーバーにアクセスする
ちょっとしたテストには役立つかもしれないと思います。