当我在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"文件无法写入
答案 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
。
如果您遇到任何问题,请务必查看有关该答案的评论,以了解您可能需要进行的本地权限更改。
如果您遇到困难,请发表评论或提出新问题,我们可以帮助您解决问题。