作曲家在Openshift上自我更新没有给予许可?

时间:2016-11-01 11:45:27

标签: laravel composer-php openshift

当我在Openshift中运行composer-self-update时,我得到以下错误。我搜索了一段时间,但无法正确理解这个解决方案 - How can I composer update on OpenShift?

[作曲\下载\ FilesystemException]
  文件系统异常:
  Composer更新失败:" /var/lib/openshift/.cartridge_repository/redhat-php/0.0.28/usr/bin/composer.phar"文件无法写入

1 个答案:

答案 0 :(得分:1)

如果你关注链接,你链接的问题中的answer可以很好地解释它,但我很乐意尝试为你进一步解释。

Openshift支持action hooks,这些脚本被触发以在您链接到的相应git阶段运行。

要使用他们建议的解决方案,您需要:

首先;在项目的根目录中创建一个名为.openshift/action_hooks的目录(例如mkdir .openshift/action_hooks) - 将其放在根目录中,它将像myproject/.openshift/action_hooks

一样映射

二;您现在需要在包含以下内容的action_hooks目录中创建名为 post_deploy bash脚本

#!/bin/bash

export MY_PHPCOMPOSER=$OPENSHIFT_DATA_DIR/composer.phar

# if composer not exists, download
if [ ! -f $MY_PHPCOMPOSER ]; then
    cd $OPENSHIFT_DATA_DIR
    echo "Downloading composer..."
    php -r "readfile('https://getcomposer.org/installer');" | php 
fi

$MY_PHPCOMPOSER -n -q self-update
cd $OPENSHIFT_REPO_DIR 
# install
php -dmemory_limit=1G $MY_PHPCOMPOSER install

你现在应该有一个在你的项目中这样映射的脚本; myproject/.openshift/action_hooks/post_deploy

现在每次在openshift中推送你的repo时,它都会执行该脚本并有效地运行composer install

如果您遇到任何问题,请务必查看有关该答案的评论,以了解您可能需要进行的本地权限更改。

如果您遇到困难,请发表评论或提出新问题,我们可以帮助您解决问题。