【问题标题】:Is there any way to get the build number in the environment or at build-time for a php instance?有没有办法在环境中或在构建时获取 php 实例的构建号?
【发布时间】:2012-05-23 04:37:45
【问题描述】:

我正在尝试获取 php 实例中可用的内部版本号。我会将它用作静态资产(css、js)的一种“缓存破坏器”。有没有办法在运行时得到它? 如果没有,有没有办法在构建时在 postinstall 脚本中获取它?

【问题讨论】:

    标签: dotcloud


    【解决方案1】:

    我看到了几种方法可以做到这一点。

    1. /home/dotcloud/ 中,代码目录是构建版本的符号链接,例如我的代码目录指向git-16ae997。在您的 postinstall 脚本中,如果您获取该目录的名称并将其存储在临时文件、环境变量中,或者可能将其注入您的配置脚本之一,您可以从您的程序中引用它。

    将其放入您的postinstall 脚本中,会将BUILD_VERSION 变量添加到您的.profile 中,并且您可以在shell 或其他语言中从$BUILD_VERSION 使用它。进行更改后,您可能需要重新获取 .profile 以确保它已设置。

    $ echo "export BUILD_VERSION=`readlink /home/dotcloud/code`" >> /home/dotcloud/.profile
    
    $ echo $BUILD_VERSION
    

    使用 PHP,您应该能够在运行时使用以下变量获取它。

    $_ENV["BUILD_VERSION"]
    
    1. 我自己在其他项目中使用的另一种方法是在 postinstall 中创建仅包含构建时间戳的 .version 文件,并为 build_version 引用该文件并将其用作缓存破坏器。这种方法的问题在于,它是在postinstall 创建的,如果您扩展超过 1 个实例,您很可能最终会为每个实例使用不同的时间戳,我猜这不是您想要的。

      $ date '+%s' > /home/dotcloud/.version

    我会坚持使用 #1,因为它在您扩展时有效,而且更加向前。

    希望对您有所帮助。

    【讨论】:

    • 谢谢,效果很好。我最终将它添加到我的安装后脚本中,并在其中使用当前内部版本号修改了我的配置文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2020-09-23
    • 1970-01-01
    • 2018-04-22
    • 2017-01-27
    相关资源
    最近更新 更多