Start a PHP-server
Pretty much a drop-in replacement for grunt-contrib-connect. Useful for eg. developing PHP projects or running tests on it.
Uses the built-in server in PHP 5.4.0+.
Doesn't have a middleware
option as grunt-contrib-connect does.
$ npm install --save-dev grunt-php
require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks
grunt.initConfig({
php: {
dist: {
options: {
port: 5000
}
}
}
});
grunt.registerTask('default', ['php']);
grunt.initConfig({
php: {
test: {
options: {
keepalive: true,
open: true
}
}
}
});
grunt.registerTask('test', ['php', 'mocha']);
Use it with BrowserSync
grunt.initConfig({
php: {
dist: {
options: {
hostname: '127.0.0.1',
port: 9000,
base: 'dist', // Project root
keepalive: false,
open: false
}
}
},
browserSync: {
dist: {
bsFiles: {
src: [
// Files you want to watch for changes
]
},
options: {
proxy: '<%= php.dist.options.hostname %>:<%= php.dist.options.port %>',
watchTask: true,
notify: true,
open: true,
logLevel: 'silent',
ghostMode: {
clicks: true,
scroll: true,
links: true,
forms: true
}
}
}
},
watch: {
// Your watch tasks
}
});
grunt.registerTask('serve', [
'php:dist', // Start PHP Server
'browserSync:dist', // Using the php instance as a proxy
'watch' // Any other watch tasks you want to run
]);
Use it with grunt-contrib-watch
grunt.initConfig({
php: {
watch: {}
}
});
grunt.registerTask('phpwatch', ['php:watch', 'watch']);
grunt.initConfig({
php: {
dist: {
options: {
directives: {
'error_log': require('path').resolve('logs/error.log')
}
}
}
}
});
grunt.registerTask('default', ['php']);
Type: number
Default: 8000
The port on which you want to access the webserver. Task will fail if the port is already in use. Use the special value ?
to use a system-assigned port.
Type: string
Default: '127.0.0.1'
(usually same as localhost
)
The hostname the webserver will use.
Use 0.0.0.0
if you want it to be accessible from the outside.
Type: string
Default: '.'
From which folder the webserver will be served. Defaults to the directory of the Gruntfile.
Type: boolean
Default: false
Keep the server alive indefinitely. Any task specified after this will not run.
This option can also be enabled ad-hoc by running the task like grunt php:targetname:keepalive
Type: boolean
or string
Default: false
Open a browser when task is triggered.
Can be one of the following:
true
: opens the default server URL ('http://' + hostname + port)- a relative URL (string): opens that URL in the browser. Useful when testing pages that are not the default one.
Type: string
Optionally specify the path to a router script that is run at the start of each HTTP request. If this script returns false
, then the requested resource is returned as-is. Otherwise the script's output is returned to the browser.
Example router script:
<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false; // serve the requested resource as-is
} else {
echo "<p>Thanks for using grunt-php :)</p>";
}
?>
Type: string
Default: 'php'
Path to the PHP binary. Useful if you have multiple versions of PHP installed.
Type: string
Default: Built-in php.ini
Path to a custom php.ini
config file.
Type: boolean
Default: false
Suppress output produced by the PHP-server.
Type: object
Default: {}
Add custom ini directives.
Type: object
Default: {}
Set environment variables for the PHP process.
MIT © Sindre Sorhus