gpt4 book ai didi

php - SSH 连接到我的共享主机后,如何告诉 Deployer 使用不同的 PHP 版本?

转载 作者:行者123 更新时间:2023-12-03 15:10:43 25 4
gpt4 key购买 nike

我正在尝试使用 Deployer 从我的本地 ~/Code/project_foo 将 Laravel 应用程序部署到共享主机中(使用 laravel 配方) .

关键是当我通过 ssh 连接到我的共享托管服务器时, 然后默认 php -v版本是 5.6.33 .我确认我可以通过调用 php70 -v 即时更改 php 版本。甚至像 /usr/local/bin/php70 whatever 这样的整个路径.

关键是我不知道如何告诉部署者使用 php70 调用命令这是必需的,否则 composer install失败。

enter image description here

因此,在终端中,我位于 Laravel 项目的根目录中,我只需调用:
dep deploy
我的 deploy.php很困惑而且很简单,但这只是概念的证明。我试图弄清楚一切,然后我会让它看起来更好。

enter image description here

我查了source code of the laravel recipe ,我看到有:
{{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', 'git@github.com: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';
});

关于php - SSH 连接到我的共享主机后,如何告诉 Deployer 使用不同的 PHP 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49049552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com