openshift - 在 Openshift 上更新composer.phar

标签 openshift fuelphp

我有一个使用 Fuelphp 1.6.3 用 PHP 编写的应用程序,并希望将其部署在 Openshift 上

由于框架需要 Composer ,当我在 http://audit-manhthang.rhcloud.com/public/ 访问我的应用程序时,它显示了错误

Composer is not installed. Please run "php composer.phar update" in the root to install Composer

我用谷歌搜索并发现了一篇文章:https://www.openshift.com/content/support-for-git-clone-on-the-server-aka-support-php-composerphar 我尝试按照说明进行操作,在 .openshift/action_hooks 文件夹中创建文件名部署并添加以下内容:

unset GIT_DIR
cd $OPENSHIFT_REPO_DIR/libs
wget -qN http://getcomposer.org/composer.phar
php composer.phar install

但是这不起作用。我尝试通过 update

修改 install
unset GIT_DIR
cd $OPENSHIFT_REPO_DIR/libs
wget -qN http://getcomposer.org/composer.phar
php composer.phar update

但是什么都没有改变。 我在 Openshift 上使用 PHP 5.3 Cartridge

最佳答案

当我更新 Composer 时

cd app-root/runtime/repo/php
/usr/bin/php composer.phar update

我收到这样的错误

[RuntimeException]                                                                                        
  /var/lib/openshift/52d3b7bd500446f4300001a5/.composer/cache/vcs does not exist and could not be created.

Composer is using $HOME variable找到根路径。所以为了解决这个问题,我做了。

export HOME=/var/lib/openshift/52d3b7bd500446f4300001a5/app-root/runtime/repo/php

然后

/usr/bin/php composer.phar update

成功了。

更新完成后,我恢复了 $HOME

export HOME=/var/lib/openshift/52d3b7bd500446f4300001a5 

看起来 openshift 现在的工作方式发生了一些变化。我知道这是一个相当丑陋的解决方法。如果我能找到更好的东西,我会更新这个答案。尽管如此,还是希望这能对某人有所帮助。

<小时/>

编辑

明白了! :)

在.openshift目录下创建新文件:

.openshift/action_hooks/deploy

并将其标记为可执行文件。

#!/bin/bash
# Run composer install

cd app-root/runtime/repo/php

export HOME_ORIGIN=$HOME
export HOME=$HOME/app-root/runtime/repo/php

/usr/bin/php composer.phar install

export HOME=$HOME_ORIGIN

之后,每次推送时,composer 都会更新到当前的composer.lock 位置。完美的! :)

还要确保供应商/路径为空。最好添加到 .gitignore,这样它就不会被你的本地设置弄乱。

关于openshift - 在 Openshift 上更新composer.phar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094005/

相关文章:

java - 从云外的 JAVA 代码连接到 Openshift Online 3

angular - Multi-Tenancy Angular 2 Dart 应用程序

php - 使用带有 PHP 框架的 HTML5 Boilerplate Build 脚本

php - 为什么 REST Response 没有结束执行?

mysql - 如何在 FUEL/ActiveRecord 中插入 NULL 值

python - OpenShift - 如何安装适用于 Linux 的 Microsoft ODBC 驱动程序

docker - Openshift-我可以使用Openshift运行docker客户端命令(例如docker push)吗?

http - 如何更改 OpenShift Jenkins 以使用 HTTP 而不是 HTTPs

node.js - 'express' 的 Openshift haproxy 错误没有可用的服务器

php - ORM 的 FuelPHP 更新偶尔会导致“而不是”