0

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

4

1 回答 1

0

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

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

将其放入您的postinstall脚本中会将BUILD_VERSION变量添加到您的脚本中,.profile并且您可以$BUILD_VERSION在 shell 或其他语言中使用它。.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,因为它在您扩展时起作用,而且它更加向前。

希望有帮助。

于 2012-05-23T12:53:07.323 回答