寻找一种安全的方式来部署PHP代码

mma*_*tax 6 php linux deployment

我们现在如何做事

我们有一个文件服务器(使用NFS),多个Web服务器挂载并使用这些挂载作为Web根目录.当我们部署代码库时,我们将SCP存档(tar.gz)发送到NFS服务器,并直接在文件服务器的"web目录"中取消归档数据.

问题

在部署过程中,我们看到一些i/o错误,主要是在无法读取请求的文件时:Smarty error: unable to read resource: "header.tpl"部署完成后,这些错误似乎消失了,所以我们假设这是因为直接将数据归档到web目录是'最安全的事情.我猜我们需要一些原子的东西.

我的问题

我们如何将新文件原子地复制到现有目录(Web服务器的根目录)?

编辑

我们不妥协到web目录中的文件不是目录中的唯一文件.我们正在将文件添加到已有文件的目录中.所以复制目录或使用符号链接不是一个选项(我知道).

gho*_*oti 1

这就是我所做的。

例如,DocumentRoot 是 /var/www/sites/www.example.com/public_html/:

cd /var/www/sites/www.example.com/
svn export http://svn/path/to/tags/1.2.3 1.2.3
ln -snf 1.2.3 public_html
Run Code Online (Sandbox Code Playgroud)

在更改符号链接之前,您可以轻松地修改它以扩展 .tar.gz,而不是从 svn 导出。重要的是,更改是符号链接的原子应用。