Я экспериментирую с Deployer для развертывания приложения Laravel на виртуальном хостинге (используя рецепт laravel) из моего локального ~/Code/project_foo
,
Дело в том, что когда я подключен к своему серверу общего хостинга через ssh
тогда по умолчанию php -v
версия 5.6.33
, Я подтвердил, что могу изменить версию php на лету, позвонив php70 -v
или даже весь путь, как /usr/local/bin/php70 whatever
,
Дело в том, что я не знаю, как сказать развертывателю вызывать команды, используя php70
что требуется, в противном случае composer install
выходит из строя.
Итак, в Терминале я нахожусь в корне проекта Laravel и просто звоню:
dep deploy
мой deploy.php
это грязно и очень просто, но это всего лишь доказательство концепции. Я пытаюсь все выяснить, и тогда я буду выглядеть лучше.
Я проверил Исходный код рецепта Laravel, и я увидел, что есть:
{{bin/php}}
но я не знаю, как переопределить значение, чтобы соответствовать тому, что мой хостинг говорит мне использовать:
/usr/local/bin/php70
Пожалуйста, дайте мне любые подсказки, как заставить скрипт использовать другую версию PHP после подключения к удаленному хосту / серверу.
Это целый сценарий:
<?php
namespace Deployer;
require 'recipe/laravel.php';//env('bin/php', '/usr/local/bin/php70'); // <- I thought that this will work but it doesn't change anything// Project name
set('application', 'my_project');
// Project repository
set('repository', '[email protected]:xxx/xxx.git');
// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', true);
// Shared files/dirs between deploys
add('shared_files', []);
add('shared_dirs', []);
// Writable dirs by web server
add('writable_dirs', []);// Hosts
host('xxx')
->user('xxx')
->set('deploy_path', '/home/slickpl/projects/xxx');
// Tasks
task('build', function () {
run('cd {{release_path}} && build');
});
// [Optional] if deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');
// Migrate database before symlink new release.
before('deploy:symlink', 'artisan:migrate');
ОК, я нашел решение.
Я добавил (после require
):
set('bin/php', function () {
return '/usr/local/bin/php70';
});
Других решений пока нет …