{"id":240,"date":"2024-12-15T17:47:07","date_gmt":"2024-12-15T16:47:07","guid":{"rendered":"https:\/\/blog.jeronimodiaz.com\/en\/migrar-el-sitio-wordpress-manualmente\/"},"modified":"2025-07-05T22:11:54","modified_gmt":"2025-07-05T21:11:54","slug":"migrar-el-sitio-wordpress-manualmente","status":"publish","type":"post","link":"https:\/\/blog.jeronimodiaz.com\/es\/migrar-el-sitio-wordpress-manualmente\/","title":{"rendered":"Migrar el sitio wordpress manualmente"},"content":{"rendered":"\n<p>Tras una r\u00e1pida b\u00fasqueda para encontrar informaci\u00f3n sobre c\u00f3mo migrar un sitio wordpress manualmente me di cuenta de que la mayor\u00eda de las soluciones utilizaban alg\u00fan tipo de plugin. Me gusta hacer las cosas por las malas, as\u00ed que decid\u00ed migrar todos los datos manualmente y quiero compartir todos los pasos que hice por si a alguien le resultan \u00fatiles.<\/p>\n\n\n\n<p>El objetivo de esta entrada es s\u00f3lo detallar los pasos necesarios para migrar el sitio wordpress de un host a otro. No describir\u00e9 c\u00f3mo instalar wordpress en el nuevo host. <\/p>\n\n\n\n<p>He migrado mi sitio wordpress de una VM que se ejecutaba en Hetzner a otra VM que se ejecuta en Oracle Cloud (ambas VM ejecutan la misma versi\u00f3n del SO).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requisitos<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress tiene la misma versi\u00f3n en ambas m\u00e1quinas virtuales<\/li>\n\n\n\n<li>MySQL est\u00e1 ejecutando la misma versi\u00f3n en ambas m\u00e1quinas virtuales<\/li>\n\n\n\n<li>PHP ejecuta la misma versi\u00f3n en ambas m\u00e1quinas virtuales<\/li>\n\n\n\n<li>Apache2 est\u00e1 ejecutando la misma versi\u00f3n en ambas m\u00e1quinas virtuales<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Pasos en la m\u00e1quina virtual de origen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Detener el servidor apache2<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl stop apache2<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Crea una copia de seguridad de la base de datos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysqldump -u root --database &lt;wordpress_database&gt; -p &gt; wordpress_dump.sql<\/code><\/pre>\n\n\n\n<p>El comando anterior te pedir\u00e1 la contrase\u00f1a del usuario root de la instancia MySQL. Ten en cuenta que debes sustituir <em>&lt;wordpress_database&gt;<\/em> por el nombre de la base de datos configurada en wordpress. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comprime la carpeta donde se encuentra la instalaci\u00f3n del sitio wordpress. En mi caso, es <em>\/var\/www\/wordpress<\/em>  <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>tar cfz wordpress.tar.gz \/var\/www\/wordpress<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Copia el archivo <em>wordpress_dump.sql<\/em> y el archivo tar del sitio wordpress a la VM de destino<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>scp wordpress_dump.sql &lt;user&gt;@&lt;vm_destination_ip&gt;:\nscp wordpress.tar.gz &lt;user&gt;@&lt;vm_destination_ip&gt;:<\/code><\/pre>\n\n\n\n<p>Ten en cuenta que hay que sustituir <em>&lt;user><\/em> y <em>&lt;vm_destination_ip<\/em> <em>><\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pasos en la VM de destino<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Con\u00e9ctate a la instancia MySQL, crea la base de datos, crea el usuario wordpress y concede los permisos necesarios<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p\nCREATE DATABASE wordpress;\nCREATE USER wordpress@localhost IDENTIFIED BY '&lt;PASSWORD&gt;';\nGRANTS ALL PRIVILEGES ON wordpress.* TO wordpress@localhost;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Importa todos los datos a la base de datos  <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p wordpress &lt; wordpress_dump.sql<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Copia los archivos del sitio wordpress a la ruta deseada<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>tar xfz wordpress.tar.gz\ncp -R wordpress \/var\/www<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Habilita los plugins necesarios en apache2<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>a2enmod ssl\na2enmod rewrite<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reinicia apache<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart apache2<\/code><\/pre>\n\n\n\n<p>Espero que estos pasos te resulten \u00fatiles. No dudes en hacer cualquier pregunta en la secci\u00f3n de comentarios. <\/p>\n\n\n\n<p>\u00a1Nos vemos en el pr\u00f3ximo post!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tras una r\u00e1pida b\u00fasqueda para encontrar informaci\u00f3n sobre c\u00f3mo migrar un sitio wordpress manualmente me di cuenta de que la mayor\u00eda de las soluciones utilizaban alg\u00fan tipo de plugin. Me&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[103,102],"class_list":["post-240","post","type-post","status-publish","format-standard","hentry","category-general-es","tag-migrar","tag-wordpress-es"],"_links":{"self":[{"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/posts\/240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/comments?post=240"}],"version-history":[{"count":3,"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/posts\/240\/revisions"}],"predecessor-version":[{"id":311,"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/posts\/240\/revisions\/311"}],"wp:attachment":[{"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/media?parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/categories?post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jeronimodiaz.com\/es\/wp-json\/wp\/v2\/tags?post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}