一旦告诉我的共享主机,如何告诉Deployer使用不同的PHP版本?

马特·科马尼克(Matt Komarnicki)

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

关键是当我通过连接到共享托管服务器时ssh,默认php -v版本是5.6.33我确认可以通过调用php70 -v甚至整个路径(如)来动态更改php版本/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');
马特·科马尼克(Matt Komarnicki)

好的,我找到了解决方案。

我在后面添加了require

set('bin/php', function () {
    return '/usr/local/bin/php70';
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

WordPress如何告诉我的CSS版本

如何告诉 buildroot 使用不同版本的 Qt 源代码

告诉autoconf使用不同版本的gcc

如何告诉winetricks使用不同的前缀?

如何告诉我的PHP脚本运行Javascript函数?

PHP 请告诉我如何访问对象键

它告诉我在 php 上使用 <td style="color:...;"> 时犯了一个错误

你能告诉我如何使用InvokeScriptTransaction

如何告诉Ansible在不同的环境中使用不同的用户?

谁能告诉我如何实现?

我使用jdk8,但Spring告诉我我需要jdk5或更高版本

我可以告诉我程序是哪个ghc版本的吗?

motd消息,当我使用ssh登录时,告诉我我有一封邮件,该如何检查?

一旦我们使用asort,Php如何按倒序排序?

使用 apt 安装 kdenlive 两次,然后使用 flatpack、终端和软件应用程序告诉我不同的版本?为什么?

我如何告诉我与Xamarin一起工作的老板不会使其更快

Flash插件为最新版本,但Firefox不断告诉我我使用的是旧版本

我如何告诉我的Dockerfile在docker-compose的RUN命令中使用哪个DNS?

如何理解这种类型类错误,告诉我我使用了错误的类型?

React告诉我我正在开发中使用Minified ...

paintComponent告诉我我使用的是对象而不是图形

Linux告诉我正在使用一个串行端口,但是没有使用

有人可以告诉我DateTimeZone :: getOffset PHP函数如何工作吗?

谁能告诉我如何一次在Java中删除两个元素?

nmap告诉我一个服务是“打开的”,而本地是“打开的”,如何打开?

有人能告诉我如何让函数运行一次然后结束吗?

您能告诉我一些完全使用Flutter Web构建的网页吗?

试图在Perl中告诉我什么是“在范围内(或翻转)使用统一值$。”

我对 Python assert 语句的使用有不同的看法,我想请您告诉我为什么我错了