有没有更快捷的自动更新WordPress的方法?

时间:2018-01-10 作者:Arcticooling

以下是我开始每日更新WordPress的方式:

cat <<-"CRON_DAILY" > /etc/cron.daily/nses_cron_daily
    for dir in /var/www/html/*/; do cd "$dir" && /usr/local/bin/wp plugin update --all --allow-root; done
    for dir in /var/www/html/*/; do cd "$dir" && /usr/local/bin/wp core update --allow-root; done
    for dir in /var/www/html/*/; do cd "$dir" && /usr/local/bin/wp theme update --all --allow-root; done
    chown www-data:www-data /var/www/html/* -R
    find /var/www/html/* -type d -exec chmod 755 {} \\;
    find /var/www/html/* -type f -exec chmod 644 {} \\;
CRON_DAILY
chmod +x /etc/cron.daily/nses_cron_daily
我使用heredocument创建文件,更改权限,并每天运行。

有没有一种更短、无插件的更新方式(行更少,哈哈哈)?

更新我基本上没有改变里面的任何东西wp-config.php 除了数据库凭据。

2 个回复
最合适的回答,由SO网友:Rick Hellewell 整理而成

如果在wp配置文件中有此语句(默认情况下)

define( \'WP_AUTO_UPDATE_CORE\', true );
然后会自动为您更新WP核心文件。这假设您的站点有流量(如果没有人访问您的站点,则不会进行更新)

因此,您的解决方案实际上会导致服务器做更多的工作,而且有点冗余和重复。默认情况下,WP将自行检查核心更新。

SO网友:user237862

关于OP发布的代码的一些注释:

我不会自己作为root用户进行更新-我使用“sudo-u webuser/usr/local/bin/wp…”而不是命令。如果您让每个VirtualHost作为不同的用户运行(针对Apache的httpd.itk),那么您还需要从Web配置中选择该用户来运行wp。

所有WP更新(无论是留给自动WP更新还是通过WP-CLI完成)的最大缺点是,如果更新失败,没有自动DB/Web备份或自动回滚。

这就是为什么我必须编写一个非常庞大的脚本,以“安全的方式”对我管理的100多个站点进行WP更新的原因-它进行Web/DB备份,加载更新前和更新后检查,如果更新后检查失败,它会立即恢复Web/DB。我还添加了一些功能,比如能够阻止已知有问题插件/主题的更新。一个最大的优点是,我可以准确地安排何时更新我们的开发、UAT和live站点(也就是说,不需要等到更新完成后再进行)。

结束

相关推荐

Run WP-CLI using PHP

我已经在Mac上安装了WP-CLI,下一步是使用PHP脚本执行WP-CLI命令。我试图用以下方式实现它,但我没有看到任何事情发生。有人能看看我的代码,告诉我我做错了什么吗?我正在使用Docker并在中安装了WPDocker/xamp/www/wordpress_wwws/htdocs 目录我是否需要从WP目录中执行PHP代码,或者可以在服务器上的任何目录中执行PHP代码?define( \'WP_CLI_ROOT\', \'/usr/local/bin/wp\' ); include WP_CLI