ノートPCでWEBサービス開発をしていると、ノートPCが非常に熱くなってしまうことに悩んでいた、ユゲタです。
ノートPCが熱くなるのは、CPUの使いすぎという事なんですが、実際には、Docker環境を常に立ち上げていて、まあまあ複雑なサーバー環境を構築しているのが原因なんですけどね。
でも、MAMPを使っても非常に高熱化したし、VM系の仮装サーバーもアッツアツ状態になる。
夏場は溜まったモンじゃありません。
2020-06-windowsインスパイアのwindowsfx-10-1-b20-04-armを、raspberry-pi-4-model-b-4gbで日本語起
PHPだけでいいのだ
web開発は、LAMP環境として、php+apache+mysqlをセットで起動しないといけないので、mac本体にそのモジュールをbrewなどでインストールしておけば、macのローカル環境構築はできてしまうが、
実は、僕の使っているフレームワークは、phpだけで、データ管理もできて、非常に軽量に動作し、google-insiteでの点数計測をすると、80点オーバーを取得することができるスグレモノで、
これを使うには、phpサーバー環境だけあればOKなんです。
ということで、PHP ver5.4.0から利用可能な「Built-in web-server」機能というのがあることを思い出した。
この機能は、phpがインストールされている端末に任意ポートでのアクセスでphpが動作できるようになる、簡易サーバーにすることができる機能です。
メリットとしては、apacheやnginxなしでも、アクセスによってphpを実行することができます。
ようするに、最低限の機能でphpサーバーを立ち上げて、且つ、他のモジュールを起動しない分、軽量で省電力で軽量という事は、簡単に理解できます。
とりあえず、使ってみてなんぼなので、調査も兼ねて、ビルトインwebサーバーを使ってみることにしました。
Built-in Web-serverの使い方
この機能の実行方法は、PHPがインストールされているmac(pc端末や、サーバー)で、以下のコマンドを実行するだけです。
php -S localhost:8080 -t %root-path
phpのcliがlocalhostの8080ポートを監視して、実行するという事がわかります。
そして、フレームワークを立ち上げてみたところ見事無事に実行成功しました。
apacheがなくても、jsファイルやcssファイルも、urlアクセスで取得できていて、これはこれで便利ですね。
80番ポートは使えない
上記コマンドで80番ポートを指定した場合に、エラーが出たので、どうやら権限エラーになるとのことでした。
[Wed Aug 26 09:24:28 2020] Failed to listen on localhost:80 (reason: Permission denied)
8080や8000ポートなど、無難な開発ポート環境で使っても良いんですが、どうしても80番ポートで立ち上げたい時は、以下のように実行しましょう。
php -S 0.0.0.0:80 -t %root-path
errorログの確認方法
そういや、web開発をする時に、nginxのエラーログをデバッグトラッカーとして使っていたんだけど、ビルトインサーバーの場合は、こうしたアクセスやエラーログは、どこかに吐き出されているのだろうか?
text.phpを作って、ワザと間違った記述をしてみたところ、ちゃんと、コマンドに表示されていました。
<?php
echo "hoge;
[Wed Aug 26 10:19:21 2020] 127.0.0.1:53199 [200]: /myntpage/test.php
[Wed Aug 26 10:19:32 2020] 127.0.0.1:53245 [200]: /myntpage/test.php - syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in /Users/yugeta/web/myntpage/test.php on line 2
これで、ほぼ問題なく、PHPだけの開発環境として使えることが分かりました。
いや〜、効率・効率!
あ、そうそう、今回使っているフレームワークに興味がある人は、コメントなどでお問い合わせください。
ビジネスなどでも、かなり使えるシロモノですよ。
参考
PHP : ビルトインウェブサーバー
https://www.php.net/manual/ja/features.commandline.webserver.php
0 件のコメント:
コメントを投稿