我正在尝试获取 php 实例中可用的内部版本号。我会将它用作静态资产(css、js)的一种“缓存破坏器”。有没有办法在运行时得到它?如果没有,有没有办法在安装后脚本中的构建时获取它?
问问题
47 次
1 回答
0
我看到有几种方法可以做到这一点。
- 在
/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"]
我在其他项目中使用的另一种方法是在 postinstall 中创建仅包含构建时间戳的 .version 文件,并为 build_version 引用该文件并将其用作缓存破坏器。这种方法的问题在于,
postinstall
如果您在 1 个实例以上扩展,您很可能最终会为每个实例使用不同的时间戳,我猜这不是您想要的。$ date '+%s' > /home/dotcloud/.version
我会坚持使用#1,因为它在您扩展时起作用,而且它更加向前。
希望有帮助。
于 2012-05-23T12:53:07.323 回答