フロントエンドの人でも楽して、PHPが使える環境をサクッと用意したいのだ!
こんにちは、ダイエット生活1ヶ月経過のishidaです。
この1ヶ月、以下のルールを守って生活したら1ヶ月で4kg体重が減りました。
・1日1回スムージー
・揚げ物は食べない
この調子のままいくと桜の季節には体重が50kgになるぜよ。
さてさて、PHPを使うにはこれまでMAMP・XAMPPやVagrantなどの仮想環境をそれぞれ用意していました。 データベースを使用しない場合は、簡単にPHPを使う方法が他にあるんですね。
もっと早く知りたかった―。会いたかった―。会いたかった―。会いたかった―。イェス!!
PHPのビルトインサーバ
PHP 5.4.0 からウェブサーバの機能が組み込まれています。
この機能を使うことでサクッとPHPが使えるようになります。
※なおウェブサーバの機能はアプリケーションの開発支援用に設計されているので、公開サーバでは使用しないように。
PHPのインストール
まずはPHPをインストールします。
macについては、PHPがプリインストールされているのでバージョンだけ確認することにします。
$ php -v
PHP 5.5.31 (cli) (built: Feb 20 2016 20:33:10)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
自分のマシンは、PHPのバージョンは5.5.31でした。
WindowsにPHPをインストール
Windowsの場合には別途PHPのインストールが必要となります。
Windows10へのPHPインストールは以下の記事が参考になりました。
Windows 10にPHP5.6 VC11をインストール | Webデザインラボ
ウェブサーバの起動
コマンドラインから簡易ウェブサーバを起動します。
対象となるディレクトリに移動して、phpコマンドの-Sオプションを指定することでビルトインウェブサーバを開始させます。
$ cd htdocs
$ php -S localhost:8000
PHP 5.5.31 Development Server started at Wed Oct 12 17:36:25 2016
Listening on http://localhost:8000
Document root is /Users/hogehoge/Desktop/gulp-php/htdocs
Press Ctrl-C to quit.
これで、PHPが使えるようになりました。
でもフロントエンドがメインの場合には、gulpを使うことが多いですよね。
できることならば、gulpも連動させたい!
gulpとPHPを連動させる
PHPビルトインサーバをgulp上で使うには、gulp-connect-phpプラグインが便利です。
起動したPHPビルトインサーバをbrowserSyncのproxyオプションに指定します。
以下は、
・ PHPビルトインサーバ起動
・ browserSyncによるライブリロード
を設定した gulpfile.coffee です。
gulp = require 'gulp'
browserSync = require 'browser-sync'
php = require 'gulp-connect-php'
# PHPビルトインサーバ
gulp.task 'php', ->
php.server
base: 'htdocs/'
port: 8000
# BrowserSyncの設定
gulp.task 'server',['php'], ->
browserSync
proxy: 'localhost:8000'
port: 8000
open: 'external'
# リロード
gulp.task 'reload', ->
browserSync.reload();
# デフォルトタスク
gulp.task 'default', ['server'], ->
gulp.watch 'htdocs/**/*.php', ['reload']
この gulpfile.coffee で gulp
を実行すると PHPファイルに変更が入るたびに、リロードされるようになります。
phpファイルをテンプレートエンジンで出力する場合には、 元のソースをhtml拡張子にして
出力時に php拡張子にリネームしてもちゃんと動作しますね。
まとめ
- PHP 5.4.0 からウェブサーバの機能が組み込まれている
- php -S でビルトインサーバを起動できる
gulp と連携するなら gulp-connect-php プラグインが便利
PHPがあるから環境を用意しなきゃというのは、もう古いんですね。。。。
これまで、ちょっとしたPHPがからむプロジェクトでも環境構築に時間がかかっていましたが 今後はPHPビルトインサーバを利用することで作業効率がグーンとアップしそうです。
目先見えている、あの案件でも利用してみます。