我有一个使用 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/