Guest User

Untitled

a guest
Oct 19th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. <?php
  2. use function Deployer\{server, task, run, set, get, add, before, after, desc, upload, runLocally};
  3. require 'recipe/common.php';
  4. // Configuration
  5. $config = require 'deploy_config.php';
  6. //set('ssh_type', 'native');
  7. set('ssh_multiplexing', true);
  8. //set('repository', 'ssh://gogs@git.server.com:22/user/repo.git');
  9. set('shared_files', ['public/wp-config.php']);
  10. set('shared_dirs', ['public/wp-content/uploads']);
  11. set('writable_dirs', []);
  12. set('keep_releases', 10);
  13. set('composer_command', 'composer');
  14. set('server_name', $config['server_name']);
  15. set('site_name', $config['site_name']);
  16. set('db_name', $config['db_name']);
  17. set('db_user', $config['db_user']);
  18. set('db_pass', $config['db_pass']);
  19. //Defaults for all servers
  20. get('timezone', 'Europe/London');
  21. get('branch', 'master');
  22. // Configure servers
  23. server('development', $config['server_name'])
  24. ->user($config['server_user'])
  25. ->password($config['server_pass'])
  26. ->port($config['server_port'])
  27. ->set('deploy_path', '/var/www/' . $config['site_name'] . '.' . $config['server_name']);
  28. // Easy Engine tasks
  29. /**
  30. * Create new Wordpress site with php5.6
  31. */
  32. task('site:create', function () {
  33. run('ee site create ' . get('site_name') . '.' . get('server_name') . ' --wp');
  34. });
  35. /**
  36. * Delete existing Wordpress site
  37. */
  38. task('site:delete', function () {
  39. run('ee site delete ' . get('site_name') . '.' . get('server_name') . ' --no-prompt');
  40. });
  41. /**
  42. * Chown files to correct user
  43. */
  44. task('files:chown', function () {
  45. run('chown -R www-data:www-data ' . get('deploy_path'));
  46. });
  47. // Tasks
  48. task('files:upload', function() {
  49. runLocally('"C:/Program Files/7-Zip/7z.exe" a -r wp-content.zip wp/wp-content');
  50. $appFiles = [
  51. 'wp-content.zip'
  52. ];
  53. $deployPath = get('deploy_path');
  54. foreach ($appFiles as $file) {
  55. upload($file, "{$deployPath}/{$file}");
  56. }
  57. echo 'Upload ok > ';
  58. run("unzip -u {$deployPath}/wp-content.zip -d {$deployPath}");
  59. echo 'Unzip ok > ';
  60. run("rm -Rf {$deployPath}/htdocs/wp-content");
  61. echo 'WP_CONTENT remove ok > ';
  62. run("cp -R {$deployPath}/wp/wp-content {$deployPath}/htdocs/wp-content");
  63. echo 'Copy ok > ';
  64. run("rm -Rf {$deployPath}/wp");
  65. echo 'WP remove ok > ';
  66. });
  67. task('db:upload', function() {
  68. $deploy_path = get('deploy_path');
  69. $server_name = get('server_name');
  70. $site_name = get('site_name');
  71. $local_site_name = $site_name . '.dev';
  72. $remote_site_name = $site_name . '.' . $server_name;
  73. $db_name = get('db_name');
  74. $db_user = get('db_user');
  75. $db_pass = get('db_pass');
  76. runLocally('mysqldump -u root ' . get('site_name') . ' > wp.sql');
  77. echo 'Dump ok > ';
  78. upload('wp.sql', "{$deploy_path}/wp.sql");
  79. echo 'Upload dump ok > ';
  80. run("mysql -u {$db_user} -p{$db_pass} {$db_name} < {$deploy_path}/wp.sql");
  81. echo 'DB import ok > ';
  82. upload('srdb.class.php', "{$deploy_path}/srdb.class.php");
  83. upload('srdb.cli.php', "{$deploy_path}/srdb.cli.php");
  84. run("php {$deploy_path}/srdb.cli.php -h localhost -u {$db_user} -p {$db_pass} -n {$db_name} -s //{$local_site_name} -r //{$remote_site_name}");
  85. });
  86. task('db:download', function() {
  87. $deploy_path = get('deploy_path');
  88. $server_name = get('server_name');
  89. $site_name = get('site_name');
  90. $local_site_name = $site_name . '.dev';
  91. $remote_site_name = $site_name . '.' . $server_name;
  92. $db_name = get('db_name');
  93. $db_user = get('db_user');
  94. $db_pass = get('db_pass');
  95. run("mysqldump -u {$db_user} -p{$db_pass} {$db_name} > {$deploy_path}/wp.sql");
  96. });
  97. /**
  98. * Main task
  99. */
  100. desc('Deploy your project');
  101. task('deploy', [
  102. 'deploy:prepare',
  103. 'files:upload',
  104. 'files:chown',
  105. 'db:upload',
  106. 'cleanup',
  107. ]);
  108. // [Optional] if deploy fails automatically unlock.
  109. after('deploy:failed', 'deploy:unlock');
Add Comment
Please, Sign In to add comment