【发布时间】:2015-04-21 19:06:47
【问题描述】:
我想知道如何才能,例如,覆盖我的“index.php”,以便我可以自动更新我的页面。
我要做的是与 2 台服务器通信,服务器 1 告诉服务器 2 何时有新的更新,服务器 2 下载它:
*将新网页“content.zip”上传到我的 webserver1: (我这样做是因为这样我可以备份我的内容)
表格
<form action="uploader.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="Upload" />
</form>
上传者.php
<?php
$folder = "content/";
opendir($folder);
$destiny = $folder.$_FILES['file']['name'];
copy($_FILES['file']['tmp_name'],$destiny);
echo "Successful";
?>
*然后告诉webserver2下载新内容并替换旧内容。
if(somevariable == true){
file_put_contents("newcontent.zip", file_get_contents("http://someurl/fsadasd.zip"));
}
然后:
<?php
$zip = new ZipArchive;
$res = $zip->open('newcontent.zip');
if ($res === TRUE) {
$zip->extractTo('var/www/');
$zip->close();
echo 'woot!';
} else {
echo 'doh!';
}
?>
另外,我是否必须停止 LAMP 进程然后修改文件并重新启动它?
如果有人知道更好的方法,请告诉我。谢谢。
【问题讨论】:
-
我个人认为 bash 非常适合这个。请参阅 SCP 和 rsync 命令。如果您在联系我时遇到问题 :)
-
您的 Web 服务器进程可能没有(也不应该)对 /var/www/ 具有写入权限,因此这可能不起作用。相反,您应该做的是使用 ssh/scp/rsync/sftp 来更新服务器上的文件,作为对文件存储位置具有写入权限的用户。如果您授予您的网络服务器用户对这些文件的写入权限,那么您的服务器将很快被黑客入侵。
-
>Kheshav - 我会的,谢谢 ;) >delatbabel - 我明白了......是的,安全性真的很弱,但我只想让它运行,然后让它安全。谢谢顺便说一句。
-
我结束了使用 dropbox 和 .bash,它做我想做的事,而且比我打算做的更安全
标签: php html file function lamp