Laravel + Capistrano使用ServerPilot发布到DigitalOcean

时间:2016-08-08 15:28:13

标签: laravel composer-php capistrano

今天寻找解决方案的可悲部分证明,所提供的答案都没有得到充分解释。

我相信我的问题解决方案非常简单。我跑的时候

cap production deploy

我得到了这个输出:

00:08 deploy:build
  01 composer install --no-dev --quiet
  01 /usr/bin/env: php: No such file or directory
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as user@x.x.x.x: composer exit status: 127
composer stdout: Nothing written
composer stderr: /usr/bin/env: php: No such file or directory

SSHKit::Command::Failed: composer exit status: 127
composer stdout: Nothing written
composer stderr: /usr/bin/env: php: No such file or directory

Tasks: TOP => deploy:build
(See full trace by running task with --trace)
The deploy has failed with an error: Exception while executing as user@x.x.x.x: composer exit status: 127
composer stdout: Nothing written
composer stderr: /usr/bin/env: php: No such file or directory

我剪掉了不必要的部分。如果需要,我可以上传.log文件,但我相信应该这样做。

我认为当capistrano尝试运行作曲家时,作曲家的路径存在一些问题,但我不确定。任何帮助都是适当的

3 个答案:

答案 0 :(得分:0)

看起来您需要为PHP CLI设置默认的PHP版本。这将创建/usr/bin/php/usr/bin/composer,这是您仅运行命令phpcomposer而不是phpX.Y-spcomposerX.Y-sp时将使用的内容(其中XY是PHP版本。)

首先,确保已安装ServerPilot的sp-php-cli包:

sudo apt-get install sp-php-cli

然后在其上运行dpkg-configure以选择应该使用哪个版本的PHP:

sudo dpkg-reconfigure sp-php-cli

ServerPilot文章How to Change the Version of the 'php' Command中的更多信息。

答案 1 :(得分:0)

发现我的git存储库有不同于我期望的文件结构。一切都在名为“laravel'”的文件夹中。这就是命令无法运行的原因

答案 2 :(得分:0)