通过 php 显示修订

Display revision through php

我有这段代码可以在我的网页上显示当前修订版。我通过 php index.php 在我的 linux 服务器上 运行 它。代码运行良好。它是 HTML 代码并显示了修订。但是当我试图通过我的网络浏览器访问我的网页时(google-chrome 40)。它不显示修订。

<?php
    $revision = substr(shell_exec('git rev-parse origin/master'),0,7);
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Test - shell_exec</title>
    </head>
    <body>
        <footer class="footer">
            <p>Revision <?php echo $revision; ?></p>
        </footer>
    </body>
</html>

好的,我刚刚解决了。 似乎当您禁用 exec 时,shell_exec 也不起作用。

对于你的问题来说可能有点矫枉过正,但我​​在部署之前使用 ANT 来构建我的网站。使用此 ANT 构建,可以删除、移动、添加或更改某些文件。 这样你就可以在配置文件中放置 GIT 标签(我总是在 building/deploy 之前使用标签)。请参阅我的其他 post 配置文件。

我用ANT大致做了以下事情:

  1. 制作 GIT 在单独的文件夹中创建副本
  2. 删除所有不应上线的文件
  3. 对配置文件进行一些更改
  4. 创建一个包含所有提交的 CHANGELOG 文件,并以 GIT 标签分隔以便更好地阅读。

然后,盲目地将所有内容一次性上传是安全的 FTP 运行。

在配置文件中获取最新标签的步骤:

  • 创建一个配置文件,例如您的根文件夹 ("site.default.properties")
  • 在其中放置一个修订属性 (SITE_REVISION_NUMBER=xxxx)
  • 让 ANT 与 GIT 一起工作以获得 GIT 信息

最后一件事在 ANT 构建脚本中可以像这样工作:

<property name="GIT-src" location="/home/martin/deploy/build"/>
<exec executable="git"
      failonerror="true"
      outputproperty="tag.current"
      dir="${GIT-src}">
      <arg line="describe --tag"/>
</exec>

然后你有一个 属性 ("tag.current") 你可以放入一个配置文件并从 PHP:

读取它
<propertyfile
        file="${deploy}/site.default.properties"
        comment="Site properties">
        <entry  key="SITE_REVISION_NUMBER" value="${tag.current}"/>
</propertyfile>