Deploying WordPress with Deployer 4
<?php
namespace Deployer;
require 'recipe/common.php';
set('ssh_type', 'native');
set('ssh_multiplexing', true);
// Set configurations
set('repository', 'git@github.com:user/repo.git');
set('shared_files', ['public/wp-config.php']);
set('shared_dirs', ['public/wp-content/uploads']);
set('writable_dirs', []);
set('keep_releases', 3);
set('composer_command', 'composer');
//Defaults for all servers
set('timezone', 'Europe/Stockholm');
set('branch', 'master');
// Configure servers
server('production', 'example.com')
->user('root')
->identityFile()
->forwardAgent()
->set('deploy_path', '/var/www/example.com/deployer')
->set('environment', 'production');
/**
* Chown files to correct user
*/
task('deploy:chown', function () {
run('chown -R www-data:www-data ' . get('deploy_path'));
});
/**
* Restart php-fpm
*/
task('deploy:restart-php', function () {
run('ee stack restart --php7');
});
/**
* Restart Memcached
*/
task('deploy:restart-memcached', function () {
run('service memcached restart');
});
/**
* Write current Git commit hash to version.txt of current release
*/
task('deploy:write_version', function () {
cd(get('deploy_path') . '/current/public/');
run('git rev-parse HEAD > version.txt');
});
/**
* Display current Git commit hash
*/
task('info:version', function() {
cd(get('deploy_path') . '/current');
$version = run('git rev-parse HEAD')->getOutput();
write("Currently deployed commit: <info>$version</info>");
});
/**
* Main task
*/
task('deploy', [
'deploy:prepare',
'deploy:release',
'deploy:update_code',
'deploy:shared',
'deploy:writable',
'deploy:vendors',
'deploy:symlink',
'deploy:write_version',
'deploy:chown',
//'deploy:restart-php',
//'deploy:restart-memcached',
'cleanup',
'info:version',
'deploy:warm_cache'
])->desc('Deploy your project');
after('deploy', 'success');