markwill
(Mark Williams)
1
对于我运行的各种生产服务(如 WordPress 站点等),我喜欢在正式站点之外再运行一个“镜像”站点。例如,我可能同时拥有 www.mydomain.com 和 mirror.mydomain.com。后者是通过从生产站点克隆创建的,随后禁用了几个无需运行的进程。
我想对我的论坛也采用同样的做法。据我了解,恢复功能是“全盘”的,它不仅恢复数据(主题等),还会恢复整个配置。这给我带来了两个需要进一步理解的问题:
-
我使用 WordPress SSO。恢复完成后,我希望 mirror-forum.mydomain.com 的 Discourse 站点将登录源指向 mirror.mydomain.com。我该如何修改镜像后的论坛站点?(当然存在一个死循环:恢复并登录后,镜像站点可能仍指向生产站点。)
-
我希望确保镜像论坛站点绝对不会发送任何电子邮件。同样,如果我将数据恢复到镜像论坛站点,那么我假设生产站点的所有计划任务(如向用户发送摘要邮件等)也会被调度,对吗?我该如何避免这种情况?是否有某个集中位置可以关闭该服务器上的所有电子邮件发送?
我该如何着手处理这个问题?
谢谢。
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
2
请查看 Syncing Production to Staging
尤其是 这听起来是个不错的方法
以下是我们用于将测试站点镜像同步到生产站点的脚本。
#!/bin/bash
echo "cd /var/www/discourse"
cd /var/www/discourse
echo "/usr/local/bin/rake site_settings:export > /var/www/discourse/settings.yml"
/usr/local/bin/rake site_settings:export > /var/www/discourse/settings.yml
echo "cd /var/www/discourse/public/backups/default"
cd /var/www/discourse/public/backups/default
echo "/usr/local/bin/discourse restore " $(ls -r | head -1)
/usr/local/bin/discourse restore $(ls -r | head -1)
echo "cd /var/www/discourse"
cd /var/www/discourse
echo "/usr/local/bin/rake site_settings:import < /var/www/discourse/settings.yml"
/usr/local/bin/rake site_settings:import < /var/www/discourse/settings.yml
该脚本通过 Docker 调用。
在 Discourse 实例外部调用脚本的示例:
echo 'cd /var/www/discourse; RUBY_ENV=production rails r /var/www/discourse/script/import_scripts/wordpress-with-sabai-export.rb /var/www/discourse/script/import_scripts/wordpress-discourse-id-map.json' | docker exec -i $(docker ps | grep app | awk '{print $1}') /bin/bash
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
3
将镜像站点的“禁用电子邮件”设置设为“是”
https://{fully-qualiified-domain-name}/admin/site_settings/category/email?filter=disable%20email
是的,请在您的站点设置中禁用电子邮件。或者,您可以将电子邮件设置为仅对工作人员可见,这在某些情况下很有帮助。