在Openshift中返回错误的PHP版本 [英] Wrong PHP version returned in Openshift

查看:129
本文介绍了在Openshift中返回错误的PHP版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用。当git推回到Openshift时,我收到了一条错误消息:



我不知道问题是否与DYI墨盒或Openshift本身有关。有人知道吗?



更新



通过与John Lamb的电子邮件交换,解决方案是将我的PATH导出包含在 build 脚本中,如下所示(请参阅

 # !/ bin / bash 
$ b export PATH = $ {OPENSHIFT_HOMEDIR} / app-root / runtime / bin /:$ {PATH}
$ b $ export COMPOSER_HOME =$ OPENSHIFT_DATA_DIR /。作曲家

if [! -f$ OPENSHIFT_DATA_DIR / composer.phar];然后
curl -s https://getcomposer.org/installer | php - --install-dir = $ OPENSHIFT_DATA_DIR
else
php $ OPENSHIFT_DATA_DIR / composer.phar自更新
fi

(未设置GIT_DIR; cd $ OPENSHIFT_REPO_DIR ; php $ OPENSHIFT_DATA_DIR / composer.phar install)


已编辑因为我没有足够的评论点:$ b​​
$ b

你可以发布你的构建钩子脚本( .openshift / action_hooks / build )?




从我对bugzilla bug的回应:
自定义PHP二进制文件应该在 $ OPENSHIFT_HOMEDIR / app-root / runtime / bin / php

中找到

以下是我遵循的步骤做这个工作:


  • #rhc app-create p55test diy-0.1 --from-code' https://github.com/laobubu/openshift-php5.5-cgi-apache.git'

     应用程序选项
    -------------------
    域名:jltest
    子菜单:diy-0.1
    源代码:https://github.com/laobubu/openshift-php5.5-cgi-apache.git
    Gear Size:默认
    Scaling:no

    创建应用程序'p55test' ...完成

    免责声明:这是一个实验性盒式磁带,提供了一种在OpenShift上尝试不支持的语言,框架和中间件的方法。

    您的应用程序'p55test'现在可用。

    URL:http://p55test-jltest.dev.rhcloud.com/
    SSH to:xxxxxxxxxxxxxxxxxxxxxxxx@p55test-jltest.dev.rhcloud.com

    Git remote:ssh://xxxxxxxxxxxxxxxxxxxxxxxx@p55test-jltest.dev.rhcloud.com/~/git/p55test.git/

    运行'rhc show-app p55test'了解更多关于你的应用程序的细节。


  • #curl'http://p55test-jltest.dev .rhcloud.com /'

     < html> 
    < head>
    < title>已安装< /标题>
    < / head>
    < body>
    < h1>已安装< / h1>
    < p>您刚创建了一个惊人的PHP5.5 + Apache应用程序。< / p>
    < h2> Next ...< / h2>
    < p>
    < p>按照< a href = https://github.com/laobubu/openshift-php5.5-cgi-apache> https://github.com/laobubu/openshift-php5 0.5-CGI-阿帕奇< / a取代。
    < p>您可以刷新此页面以检查世界是否准备就绪。
    < p>< a href =?doitnow>来吧,机器人,您可以自动完成...< / a>< p>
    < / p>< / body>< / html>


  • #curl'http://p55test-jltest.dev .rhcloud.com /?doitnow'

     <!DOCTYPE HTML PUBLIC -  // IETF // DTD HTML 2.0 // EN> 
    < html>< head>
    < title> 302找到< / title>
    < / head>< body>
    < h1>找到< / h1>
    < p>文件已移至< a href =./?working>此处< / a>。< / p>
    < hr>
    < address> Apache / 2.2.15(Red Hat)Server at p55test-jltest.dev.rhcloud.com Port 80< / address>
    < / body>< / html>


  • #rhc ssh p55test

      [p55test-jltest.dev.rhcloud.com xxxxxxxxxxxxxxxxxxxxxxxx] \> top 


  • 等待'make.sh'完成


  • [p55test-jltest.dev.rhcloud.com xxxxxxxxxxxxxxxxxxxxxxxx] \> $ OPENSHIFT_HOMEDIR / app-root / runtime / bin / php --version

      PHP 5.5.18 (cli)(构建:2015年7月22日10:33:49)
    版权所有(c)1997-2014 The PHP Group
    Zend Engine v2.5.0,Copyright(c)1998-2014 Zend Technologies




另外,可以验证PHP实际运行代码的版本,像这样:


  • #curl' http://p55test-jltest.dev.rhcloud.com/?phpinfo'

     < !DOCTYPE HTML PUBLIC -  // IETF // DTD HTML 2.0 // EN> 
    < html>< head>
    < title> 302找到< / title>
    < / head>< body>
    < h1>找到< / h1>
    < p>文件已移至< a href =./ 15541_PHPINFO_TEMP.php>这里< / a>。< / p>
    < hr>
    < address> Apache / 2.2.15(Red Hat)Server at p55test-jltest.dev.rhcloud.com Port 80< / address>
    < / body>< / html>


  • #curl'http://p55test-jltest.dev .rhcloud.com / 15541_PHPINFO_TEMP.php'| grep -i'php version'

      ... snip ... 
    < ; h1 class =p> PHP版本5.5.18< / h1>
    < tr>< td class =e> PHP版本< / td>< td class =v> 5.5.18< / td>< / tr>



I have created a PHP application (from scratch) using instructions available here. In /mish/make.sh, the php version is 5.5.18. After the build, the php info page confirms the version: 5.5.18.

Yet, when I log in my Openshift application with SSH, php --version returns 5.3.3 with a wrong build date:

I discovered this issue when I tried to install Composer on Openshift. I got an error message when git pushing back to Openshift:

I don't know whether the issue is related to the DYI cartridge or to Openshift itself. Does anyone know?

Update

From an email exchange with John Lamb, the solution was to include my PATH export in the build script as following (see this question):

#!/bin/bash

export PATH=${OPENSHIFT_HOMEDIR}/app-root/runtime/bin/:${PATH}

export COMPOSER_HOME="$OPENSHIFT_DATA_DIR/.composer"

if [ ! -f "$OPENSHIFT_DATA_DIR/composer.phar" ]; then
    curl -s https://getcomposer.org/installer | php -- --install-dir=$OPENSHIFT_DATA_DIR
else
    php $OPENSHIFT_DATA_DIR/composer.phar self-update
fi

( unset GIT_DIR ; cd $OPENSHIFT_REPO_DIR ; php $OPENSHIFT_DATA_DIR/composer.phar install )

解决方案

Edited because I don't have enough points to comment:

Could you post your build hook script (.openshift/action_hooks/build)? laobubu's response should have solved your problem.


From my response to your bugzilla bug: The custom PHP binary should be found at $OPENSHIFT_HOMEDIR/app-root/runtime/bin/php

Here's the steps I followed to make this work:

  • # rhc app-create p55test diy-0.1 --from-code'https://github.com/laobubu/openshift-php5.5-cgi-apache.git'

    Application Options
    -------------------
    Domain:      jltest
    Cartridges:  diy-0.1
    Source Code: https://github.com/laobubu/openshift-php5.5-cgi-apache.git
    Gear Size:   default
    Scaling:     no
    
    Creating application 'p55test' ... done
    
      Disclaimer: This is an experimental cartridge that provides a way to try unsupported languages, frameworks, and middleware on OpenShift.
    
    Your application 'p55test' is now available.
    
      URL:        http://p55test-jltest.dev.rhcloud.com/
      SSH to:     xxxxxxxxxxxxxxxxxxxxxxxx@p55test-jltest.dev.rhcloud.com
    
      Git remote: ssh://xxxxxxxxxxxxxxxxxxxxxxxx@p55test-jltest.dev.rhcloud.com/~/git/p55test.git/
    
    Run 'rhc show-app p55test' for more details about your app.
    

  • # curl 'http://p55test-jltest.dev.rhcloud.com/'

    <html>
    <head>
    <title>Installed</title>
    </head>
    <body>
    <h1>Installed</h1>
    <p>You just created one amazing PHP5.5+Apache app.</p>
    <h2>Next...</h2>
    <p>
    <p>Follow the instruction on <a href=https://github.com/laobubu/openshift-php5.5-cgi-apache>https://github.com/laobubu/openshift-php5.5-cgi-apache</a>.
    <p>You can refresh this page to check if the world is ready.
    <p><a href=?doitnow>Come on, robot, you can do it automatically...</a><p>
    </p></body></html>
    

  • # curl 'http://p55test-jltest.dev.rhcloud.com/?doitnow'

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>302 Found</title>
    </head><body>
    <h1>Found</h1>
    <p>The document has moved <a href="./?working">here</a>.</p>
    <hr>
    <address>Apache/2.2.15 (Red Hat) Server at p55test-jltest.dev.rhcloud.com Port 80</address>
    </body></html>
    

  • # rhc ssh p55test

    [p55test-jltest.dev.rhcloud.com xxxxxxxxxxxxxxxxxxxxxxxx]\> top
    

  • wait for 'make.sh' to finish

  • [p55test-jltest.dev.rhcloud.com xxxxxxxxxxxxxxxxxxxxxxxx]\> $OPENSHIFT_HOMEDIR/app-root/runtime/bin/php --version

    PHP 5.5.18 (cli) (built: Jul 22 2015 10:33:49)
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    

Also, since I closed the ticket, I realized you can verify the version of PHP actually running the code from your repo like so:

  • # curl 'http://p55test-jltest.dev.rhcloud.com/?phpinfo'

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>302 Found</title>
    </head><body>
    <h1>Found</h1>
    <p>The document has moved <a href="./15541_PHPINFO_TEMP.php">here</a>.</p>
    <hr>
    <address>Apache/2.2.15 (Red Hat) Server at p55test-jltest.dev.rhcloud.com Port 80</address>
    </body></html>
    

  • # curl 'http://p55test-jltest.dev.rhcloud.com/15541_PHPINFO_TEMP.php' | grep -i 'php version'

    ...snip...
    <h1 class="p">PHP Version 5.5.18</h1>
    <tr><td class="e">PHP Version </td><td class="v">5.5.18 </td></tr>
    

这篇关于在Openshift中返回错误的PHP版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆