Mijn vraag
Bij het overzetten van een productie Wordpress omgeving naar een testomgeving op mijn lokale server wil ik zowel de site url https://www.xxxxxx.com wijzigen in https://test.localhost en de www directory /home/xxxxxx/domains/xxxxxx.com/public_html omzetten naar /var/www/html.
Het omzetten doe ik met de WP-CLI en wel wp search-replace. Het vervangen van de site url gaat goed alleen het vervangen van de www directory laat steken vallen. In dit geval worden bij het uitvoeren van een wp search-replace <old> <new> niet alle voorkomens van <old> vervangen door <new>. Ook door gebruik te maken van de opties --all-tables en --precise.
Vraag 1:
Hoe kan ik ervoor zorgen dat wp search-replace zijn werk volledig doet?
Vraag 2:
Je ziet vaak dat alleen de site url wordt vervangen. Is het niet nodig om ook de www directory aan te passen. Je zou toch verwachten van wel?
Relevante software en hardware die ik gebruik
Laatste docker images mariadb, wordpress:latest en wordpress:cli.
Wat ik al gevonden of geprobeerd heb
Export de database en zoek naar de te vervangen string. Deze string wordt gevonden. Zoals verwacht.
Voer hierna de search & replace uit.
Export de database opnieuw en zoek opnieuw naar de te vervangen string. Deze string wordt gevonden terwijl je verwacht dat deze niet meer aanwezig is.
Bij het overzetten van een productie Wordpress omgeving naar een testomgeving op mijn lokale server wil ik zowel de site url https://www.xxxxxx.com wijzigen in https://test.localhost en de www directory /home/xxxxxx/domains/xxxxxx.com/public_html omzetten naar /var/www/html.
Het omzetten doe ik met de WP-CLI en wel wp search-replace. Het vervangen van de site url gaat goed alleen het vervangen van de www directory laat steken vallen. In dit geval worden bij het uitvoeren van een wp search-replace <old> <new> niet alle voorkomens van <old> vervangen door <new>. Ook door gebruik te maken van de opties --all-tables en --precise.
Vraag 1:
Hoe kan ik ervoor zorgen dat wp search-replace zijn werk volledig doet?
Vraag 2:
Je ziet vaak dat alleen de site url wordt vervangen. Is het niet nodig om ook de www directory aan te passen. Je zou toch verwachten van wel?
Relevante software en hardware die ik gebruik
Laatste docker images mariadb, wordpress:latest en wordpress:cli.
Wat ik al gevonden of geprobeerd heb
Export de database en zoek naar de te vervangen string. Deze string wordt gevonden. Zoals verwacht.
Voer hierna de search & replace uit.
Export de database opnieuw en zoek opnieuw naar de te vervangen string. Deze string wordt gevonden terwijl je verwacht dat deze niet meer aanwezig is.
root@DS716:/volume1/docker/blog# docker-compose run --rm wordpress-cli db export blog_db.sql Starting blog_db ... done Starting blog_wordpress ... done Success: Exported to 'blog_db.sql'. root@DS716:/volume1/docker/blog# grep -q '/home/xxxxxx/domains/xxxxxx.com/public_html' html/blog_db.sql && echo GEVONDEN GEVONDEN root@DS716:/volume1/docker/blog# docker-compose run --rm wordpress-cli search-replace '/home/xxxxxx/domains/xxxxxx.com/public_html' '/var/www/html' --all-tables Starting blog_db ... done Starting blog_wordpress ... done +-----------------------+-------------------------+--------------+------+ | Table | Column | Replacements | Type | +-----------------------+-------------------------+--------------+------+ | wp_commentmeta | meta_key | 0 | SQL | | wp_commentmeta | meta_value | 0 | SQL | | wp_comments | comment_author | 0 | SQL | <knip - hele lijst met tabellen> | wp_yoast_seo_links | type | 0 | SQL | | wp_yoast_seo_links | language | 0 | SQL | | wp_yoast_seo_links | region | 0 | SQL | +-----------------------+-------------------------+--------------+------+ Success: Made 0 replacements. root@DS716:/volume1/docker/blog# docker-compose run --rm wordpress-cli db export blog_db.sql Starting blog_db ... done Starting blog_wordpress ... done Success: Exported to 'blog_db.sql'. root@DS716:/volume1/docker/blog# grep -q '/home/xxxxxx/domains/xxxxxx.com/public_html' html/blog_db.sql && echo GEVONDEN GEVONDEN root@DS716:/volume1/docker/blog#
👉🏻 Blog 👈🏻