对于我们的WordPress网站,我想创建一个测试实例-测试WordPress更新/插件更新和主题的新发展等等。。。
所以我写了一个脚本来复制数据库和文件:
sourcedir="/srv/www/htdocs/www.example.de"
testdir="/srv/www/htdocs/test.example.de"
workdir="/data/example.de_test-system"
sqldumpfile="$workdir/mysql_dump_example_wp2017.sql"
echo "delete webroot test.example.de"
rm -rf $testdir
echo "www.example.de nach test.example.de kopieren"
cp -R $sourcedir $testdir
echo "cache-verzeichnisse leeren"
rm -rf $testdir/wp-content/cache/minify
rm -rf $testdir/wp-content/cache/db
rm -rf $testdir/wp-content/cache/object
rm -rf $testdir/wp-content/cache/page_enhanced
rm -rf $testdir/wp-content/cache/tmp
echo "alten dump loeschen"
rm -f $sqldumpfile
echo "aktuellen Dump aus DB ziehen"
mysqldump -u root --password=xxx example_wp_2017 > $sqldumpfile
echo "dump bearbeiten - www.example.de gegen test.example.de ersetzen"
sed -i s/www.example.de/test.example.de/g $sqldumpfile
echo "bearbeiteten dump in test-DB einspielen"
mysql -u root --password=xxx example_wp_2017_test < $sqldumpfile
echo "test-config einspielen"
cp /data/example.de_test-system/wp-config.php $testdir
echo "www-nutzer-rechte auf test.example.de setzen"
chown -R wwwrun $testdir
chgrp -R www $testdir
脚本将复制WordPress文件夹,清空缓存文件夹,转储数据库,用测试系统查找/替换生产系统的条目,并将转储导入数据库-最后,将测试配置复制到测试文件夹
这是可行的,但我遇到了一些奇怪的错误-例如徽标图像,它显示的是占位符图像
缺少元导航
在后端,左侧导航中的一些点丢失了,比如自定义帖子类型
我的剧本中是否遗漏了一些东西?
最合适的回答,由SO网友:Mark Kaplun 整理而成
一般来说,测试环境最好使用与实时站点相同的域名。由于您似乎没有遵循这样的模式(是的,很难遵循),因此您需要确保正确转换数据库中的所有URL,这样做的方式将导致任何序列化的数据失败。使用wp cli更改URL,而不是重新发明自己的解决方案。
此外,您可能需要更改选项或添加一些代码,以确保google不会尝试为测试站点编制索引。