LoginSignup
123
131

More than 5 years have passed since last update.

gulpでphp環境 ~ gulp-connect-php ~

Last updated at Posted at 2015-06-17

gulp環境で、PHPを使いたくて、browser-syncも使いたかった時に調べたメモ。

調べてた結果「gulp-connect-php」に行きついた。
他にもいろいろ方法はあるみたいだけど、「gulp-connect-php」はシンプルで良いと思われる。

node_modulesインストール
npm init
npm install --save-dev gulp
npm install --save-dev gulp-connect-php
npm install --save-dev browser-sync
gulpfile.jsサンプル(wwwディレクトリ内にPHPを設置)
var gulp = require('gulp'),
    connect = require('gulp-connect-php'),
    browserSync = require('browser-sync');

gulp.task('connect-sync', function() {
  connect.server({
    port:8001,
    base:'www'
  }, function (){
    browserSync({
      proxy: 'localhost:8001'
    });
  });
});

gulp.task('reload', function(){ 
  browserSync.reload();
});

gulp.task("default",['connect-sync'], function() {
  gulp.watch("./www/**/*.php",["reload"]);
});

と自分のmac環境だと動いたけど、windows環境だとうんともすんとも動かずで、
オプションにphpのexeとiniを指定出来るので、そっちを指定する方法で試したところ解決。
※このオプションのおかげでPHPのバージョン毎の環境が柔軟に作れて便利かも。

gulpfile.jsサンプル(bin指定Windowsバージョン)
var gulp = require('gulp'),
    connect = require('gulp-connect-php'),
    browserSync = require('browser-sync');

gulp.task('connect-sync', function() {
  connect.server({
    port:8001,
    base:'www',
    bin: 'C:/xamp/php/php.exe',
    ini: 'C:/xamp/php/php.ini'
  }, function (){
    browserSync({
      proxy: 'localhost:8001'
    });
  });
});

gulp.task('reload', function(){ 
  browserSync.reload();
});

gulp.task("default",['connect-sync'], function() {
  gulp.watch("./www/**/*.php",["reload"]);
});

gulpfile.jsサンプル(bin指定Macバージョン)
var gulp = require('gulp'),
    connect = require('gulp-connect-php'),
    browserSync = require('browser-sync');

gulp.task('connect-sync', function() {
  connect.server({
    port:8001,
    base:'www',
    bin: '/Applications/MAMP/bin/php/php5.6.2/bin/php',
    ini: '/Applications/MAMP/bin/php/php5.6.2/conf/php.ini'
  }, function (){
    browserSync({
      proxy: 'localhost:8001'
    });
  });
});

gulp.task('reload', function(){ 
  browserSync.reload();
});

gulp.task("default",['connect-sync'], function() {
  gulp.watch("./www/**/*.php",["reload"]);
});

勿論xamppのapacheは起動しなくても大丈夫。

他にもいろいろオプションがあるみたい。
詳しくは、「gulp-connect-phpのページ」をどうぞ。

※追記(6/17)
自分のWindows環境でデフォルト動かなかったのは、PHPにPATHが通ってなかったからでした。。
node_module内にPHPサーバーの機能が入っているのかと勘違いしました。

※追記(6/22)
Macのmamp内のPHPを指定するバージョンを追記しました。

123
131
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
123
131