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目录中的文件不是目录中的唯一文件.我们正在将文件添加到已有文件的目录中.所以复制目录或使用符号链接不是一个选项(我知道).
这就是我所做的。
例如,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 导出。重要的是,更改是符号链接的原子应用。