Red Hat Bugzilla – 1172055 – Can not install dependency by composer in php gear due to missing '$OPENSHIFT_PHP_DIR/usr/bin' in $OPENSHIFT_PHP_PATH_ELEMENT after upgrade from OSE 2.1->2.2
Can not install dependency by composer in php gear due to missing '$OPENSHIFT_PHP_DIR/usr/bin' in $OPENSHIFT_PHP_PATH_ELEMENT after upgrade from OSE 2.1->2.2
The openshift-origin-cartridge-php upgrade script previously did not properly upgrade existing cartridges to allow for Composer to be used. As a result, any cartridges with a version greater than 0.0.17 was not properly upgraded with Composer functionality; the Composer directory was not created, breaking composer functionality. This bug fix updates the upgrade script to perform Composer migration steps on any cartridge with a version less than that used in OpenShift Enterprise release 2.2.6 (0.0.26.1). As a result, PHP cartridges existing before Composer features were added are able to use Composer after an upgrade.
Description of problem:
Can not install dependency by composer in php gear after upgrade from OSE 2.1->2.2
Missing '$OPENSHIFT_PHP_DIR/usr/bin' element in $OPENSHIFT_PHP_PATH_ELEMENT
Version-Release number of selected component (if applicable):
openshift-origin-cartridge-php-1.29.1.0-1.el6op.noarch
How reproducible:
100%
Steps to Reproduce:
1. Create a php app on old server and upgrade to latest server
2. Add a use_composer marker
# touch .openshift/markers/use_composer
3. Modify the composer.json in repo
eg:
{
"require": {
"monolog/monolog": "1.0.*"
}
}
4. git push and check the app
Actual results:
Can not found the command 'composer'
Expected results:
Deploy successfully.
Additional info:
Even if OPENSHIFT_PHP_PATH_ELEMENT is composed corectly, composer functionality still does not work, because the following block code is never called, this is similar to BZ#1170784
#vim /usr/libexec/openshift/cartridges/php/bin/upgrade
if [[ $curr == 0.0.17 ]]; then
source ${OPENSHIFT_PHP_DIR}usr/lib/php_config
rm -f ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/*
echo > ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/openshift.ini
chown $OPENSHIFT_GEAR_UUID:$OPENSHIFT_GEAR_UUID ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/openshift.ini
chcon -u unconfined_u ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/openshift.ini
update_configuration
mkdir -p ${OPENSHIFT_HOMEDIR}.composer
chown $OPENSHIFT_GEAR_UUID:$OPENSHIFT_GEAR_UUID ${OPENSHIFT_HOMEDIR}.composer
chcon -u unconfined_u ${OPENSHIFT_HOMEDIR}.composer
fi
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://rhn.redhat.com/errata/RHBA-2015-1463.html
Description of problem: Can not install dependency by composer in php gear after upgrade from OSE 2.1->2.2 Missing '$OPENSHIFT_PHP_DIR/usr/bin' element in $OPENSHIFT_PHP_PATH_ELEMENT Version-Release number of selected component (if applicable): openshift-origin-cartridge-php-1.29.1.0-1.el6op.noarch How reproducible: 100% Steps to Reproduce: 1. Create a php app on old server and upgrade to latest server 2. Add a use_composer marker # touch .openshift/markers/use_composer 3. Modify the composer.json in repo eg: { "require": { "monolog/monolog": "1.0.*" } } 4. git push and check the app Actual results: Can not found the command 'composer' Expected results: Deploy successfully. Additional info: Even if OPENSHIFT_PHP_PATH_ELEMENT is composed corectly, composer functionality still does not work, because the following block code is never called, this is similar to BZ#1170784 #vim /usr/libexec/openshift/cartridges/php/bin/upgrade if [[ $curr == 0.0.17 ]]; then source ${OPENSHIFT_PHP_DIR}usr/lib/php_config rm -f ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/* echo > ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/openshift.ini chown $OPENSHIFT_GEAR_UUID:$OPENSHIFT_GEAR_UUID ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/openshift.ini chcon -u unconfined_u ${OPENSHIFT_PHP_DIR}configuration/etc/php.d/openshift.ini update_configuration mkdir -p ${OPENSHIFT_HOMEDIR}.composer chown $OPENSHIFT_GEAR_UUID:$OPENSHIFT_GEAR_UUID ${OPENSHIFT_HOMEDIR}.composer chcon -u unconfined_u ${OPENSHIFT_HOMEDIR}.composer fi