从服务器端cron作业自动更新SVN

时间:2017-03-24 作者:Nate Eldredge

我正在用Apache和MySQL在Ubuntu上运行WordPress。我想自动安装WordPress的次要更新和安全更新。

然而,据我所知standard auto-update mechanism (另请参见How exactly do automatic updates work?) 最终由web请求触发,这意味着更新过程以apache用户的身份运行(对我来说是www-data). 所以www-data 用户必须具有写入WordPress php文件的权限。这让我很不舒服——它可能会让攻击者升级“创建文件”漏洞以“执行任意代码”。我宁愿让WordPress php文件和目录归其他人所有,而不是www-data, 并将其保留为只读www-data. 因此,我宁愿不使用标准机制。

我知道唯一的选择就是跑步svn sw 如文件所述here. 但这需要运行包含所需新版本的命令。所以我不能把它放在cron作业中,因为我不知道cron作业如何在没有手动干预的情况下找出新的版本号。我可以创建某种黑客,试图从wordpress.org, 但这似乎很脆弱。有没有更好的方法,或者现有的脚本我可以直接使用?

此外,svn更新的最后一步是访问wp-admin/config.php 使用web浏览器,根据需要登录。有没有一种简单的方法可以从服务器上的cron作业自动执行该操作,理想情况下无需将管理密码硬编码到脚本中?

1 个回复
SO网友:Lazy Badger

我宁愿让WordPress php文件和目录归www数据以外的人所有,并让它们对www数据保持只读

为什么不呢?只需这样做,但在它手动订阅任何(至少两个)“发布通知”频道(低活动,甚至可以用眼睛控制)后:mail listRSS-channel on official site for category "Releases". 通过这些通知,您可以:

使用站点登录主机,返回权限,所有权,执行“经典”WP更新,将所有权回滚到“严格RO”状态,不是在cron中运行subversion的更新(99%的运行浪费了时间和资源),而是按需运行(关于此主题的howto是offtopic,请咨询SuperUser | WebMaster | StackOverFlow)

当你convert your current blog into SVN-managed 将有一个“新版本”活动,启动(必须围绕我的肮脏想法编写)SVN updater可以很容易地检测到最新版本(并将博客的WC切换到它):在你提到的“使用Subversion安装/更新WordPress”文章中,它只是

cd blog
svn sw https://core.svn.wordpress.org/tags/4.7.3/ .
在哪里4.7.3 是正确的版本,您只需半自动更改“正确”的版本即可。好吧,让我们在命令中的URL和另一个SVN命令的输出上进行se(用于实时WP core repo)

>svn ls https://core.svn.wordpress.org/tags/
1.5/
...
4.7.3/
latest字符串始终是最新WP版本的编号(从技术上讲,是数量最大的版本)。对于具有良好shell的良好操作系统,“svn ls的最后一个字符串”输出仅为svn ls <URL>|tail -1 你有一个目标,你必须在这个目标上转换

Final note:

此外,svn更新的最后一步是访问wp admin/config。带有web浏览器的php

否。根据上述食品法典中的同一页

运行通常的wp管理/升级。php,你就完成了

并且此任务可以(未测试!!!)通过在服务器控制台中使用URL调用f.e.CURL,在没有客户端浏览器的情况下执行(由相同的SVN更新程序脚本负责)

相关推荐

如何使用乌龟SVN为WordPress Core做贡献?

我期待逐步指导如何使用提交补丁Tortoise SVN 因为有点不清楚documentation 对我来说。例如,它说,“”Open the folder, 并找到需要更改的文件。在您喜爱的纯文本编辑器中打开它。注意:不要使用诸如Word或OpenOffice之类的富文本编辑器来编辑文件。“”什么文件夹?我知道这意味着有WordPress核心文件的文件夹。但是我应该在哪里买到呢?(来自https://wordpress.org/download/ ???)那么,当我去创建一个新的记录单时,我应该选择“增强