Opsworks 安装作曲家错误

Posted

技术标签:

【中文标题】Opsworks 安装作曲家错误【英文标题】:Opsworks install composer error 【发布时间】:2017-06-02 21:30:50 【问题描述】:

我有一个 AWS Opsworks 设置,我需要在实例启动和应用程序部署时安装 composer,但安装失败。谁能帮我解决这个问题。 我正在运行这个厨师食谱:

node[:deploy].each do |app_name, deploy|
  script "install_composer" do
    interpreter "bash"
    user "ubuntu"
    cwd "#deploy[:deploy_to]/current"
    code <<-EOH
    curl -sS https://getcomposer.org/installer | php
    php composer.phar install --no-dev
    EOH
    only_if  ::File.exists?("#deploy[:deploy_to]/current/composer.json") 
  end
end

我收到以下错误(其中第 21 行是带有script "install_composer" do 的错误)。

[2017-01-18T11:16:38+00:00] ERROR: Running exception handlers
[2017-01-18T11:16:38+00:00] ERROR: Exception handlers complete
[2017-01-18T11:16:38+00:00] FATAL: Stacktrace dumped to /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out
[2017-01-18T11:16:38+00:00] ERROR: script[install_composer] (composer::install line 21) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of "bash"  "/tmp/chef-script20170118-1672-16lyp81" ----
STDOUT: All settings correct for using Composer
The installation directory "/srv/www/[app_name]/releases/20170113140255" is not writable
Could not open input file: composer.phar
STDERR: 
---- End output of "bash"  "/tmp/chef-script20170118-1672-16lyp81" ----
Ran "bash"  "/tmp/chef-script20170118-1672-16lyp81" returned 1
[2017-01-18T11:16:38+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

我结合使用这些示例来构建脚本:

https://github.com/awslabs/opsworks-example-cookbooks/blob/master/phpapp/recipes/appsetup.rb https://github.com/onema/opsworks-chef-cookbooks/blob/master/composer/recipes/install.rb

安装程序在 Ubuntu 实例上运行。实例报告setup_failed。如果我禁用自定义配方,则实例启动正常。

名称显示在The installation directory "/srv/www/[app_name]/releases/20170113140255" is not writable 中的应用程序是我的应用程序列表中的第四个应用程序,但它应该实际安装composer 的第一个应用程序(它包含composer.json)。

希望你能帮助我。谢谢。

【问题讨论】:

【参考方案1】:

当我意识到用户在配方中应该是“root”而不是“ubuntu”时,我解决了这个问题。 ubuntu 用户根本没有足够的权限在发布文件夹中创建新文件夹。

【讨论】:

以上是关于Opsworks 安装作曲家错误的主要内容,如果未能解决你的问题,请参考以下文章

安装奏鸣曲新闻捆绑作曲家错误

Laravel作曲家安装错误[golonka / BBcodeParser] 404

为啥我在作曲家安装后在 Laravel 中收到 500 服务器错误 [关闭]

致命错误:方法 class@anonymous::__toString() 在作曲家安装后不得抛出异常

Laravel 作曲家安装给出错误“您的锁定文件不包含兼容的软件包集,请运行作曲家更新”

XAMPP:作曲家返回错误而不是创建新的laravel项目