Recuerde la experiencia de la migración de un sitio web a wordpress

La migración de sitios web de Wordpress es difícil, simple pero no simple, y hay muchas cosas complicadas involucradas.

Encontré mucha información sobre qué complementos usar, y algunos de ellos deben ser pagados para usarlos. Después de usarlos, hay varios problemas.
Hice un intento simple. No necesito complementos de WordPress. Estoy familiarizado con los comandos de Linux y puedo migrar por mí mismo.

环境: Centos 7 ,  LNMP

旧站点:a.test.com
旧数据库: atest
旧项目代码路径: /var/www/atest

新的站点: b.test.com
新数据库: btest
新项目代码路径: /var/www/btest

Migre el antiguo sitio a.test.com al nuevo sitio de dominio b.test.com

Pasos de migración: copiar el código de wordpress -> cambiar la configuración del nombre de dominio / información de conexión de la base de datos -> exportar la base de datos modificar el nombre de dominio / información de la ruta de almacenamiento -> importar nueva base de datos -> agregar la configuración de nginx -> reiniciar el servicio

1. Copia el código completo de a.test.com, aquí puedes comprimirlo o copiar una copia del código de wordpress directamente

# cp -r atest  btest

2. Modifique todos los caracteres que aparecen en el nombre de dominio a.test.com en el código de wordpress recién copiado y reemplácelos con b.test.com

# cd  b-test
# for i in `grep -R "a.test.com" . | awk -F":" '{print $1}' | sort -u`;do sed -i 's/a.test.com/b.test.com/g' $i; done

Modificar la configuración de la base de datos de wordpress

# vi  wp-config.php 


Cambiar la nueva información de conexión de la base de datos

Hasta ahora, el nuevo código del proyecto del sitio de WordPress se ha modificado con el nuevo nombre de dominio y la nueva información de la base de datos.

3. Exporte la base de datos (mysqldump) y guárdela como un archivo de formato sql

以 atest数据库为例
 # mysqldump -uroot -p  atest > atest.sql


4. Modifique el archivo de base de datos aest.sql (también puede usar la herramienta wp-cli wp search-replace para modificarlo directamente), esta es la
forma más segura de modificar el archivo sql directamente para reemplazar el carácter a.test.com en el archivo de base de datos atest.sql b.test.com

# sed -i 's/a.test.com/b.test.com/g'  atest.sql


Modifique y reemplace la ruta de almacenamiento del sitio web en el archivo de base de datos test.sql. Mi ruta de almacenamiento anterior es / var / www / a-test, y cambió a la nueva ruta de almacenamiento / var / www / b-test

# sed -i 's/var\/www\/a-test/var\/www\/b-test/g'  atest.sql


5. Cree una nueva prueba de base de datos, permitiendo que todos los permisos del usuario admin / admin se definan de acuerdo con la situación

    > create database btest character set utf8;
    > grant all privileges on btest.* to 'admin'@'%' identified by 'admin';
    > flush privileges;
    导入修改好的atest.sql数据
    > use btest;
    > source /root/atest.sql;

Hasta el momento, se completó la migración de la base de datos, se modificó el nuevo nombre de dominio relacionado con el sitio y se almacenó la información de la ruta.

6. El último paso para configurar nginx (admite la configuración de múltiples sitios de nginx)

nginx  https配置 和  root路径根据自身情况自行配置,这里不多说 
 #  vi /etc/nginx/conf.d/btest.conf
server {
  server_name b.test.com;
  fastcgi_pass_request_headers on;
  fastcgi_pass_header Authorization;

   root /var/www/btest;

   #Load configuration files for the default server block.
  rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
  if (-f $request_filename){
        set $rule_2 1;
  }
  if (-d $request_filename){
        set $rule_2 1;
  }
  if ($rule_2 = "1"){
  }
  rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
  rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
  rewrite /. /index.php last;

   location / {
       index  index.html index.php;
   }
   location ~ ^(.+\.php)(.*)$ {
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_split_path_info       ^(.+\.php)(.*)$;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO       $fastcgi_path_info;
      include        fastcgi_params;
   }
  listen 443 ssl;
  ssl_certificate /etc/nginx/ssl/b.test.com.crt;
  ssl_certificate_key /etc/nginx/ssl/b.test.com.key;
}
server {
    if ($host = b.test.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
  listen 80;
  server_name b.test.com;
  return 404; # managed by Certbot
}

7. Reinicie el servicio nginx y visite la nueva dirección.


problema:

En la prueba de migración de múltiples sitios, se encuentra que si el nombre de dominio de a.test.com se cambia a cc.test.com después de visitar la nueva dirección, se descubre que algunas de las configuraciones de estilo del tema original no son válidas y deben restablecerse. Restablecer es imposible, algunos Olvidé la configuración de operación

Mi solución:

La longitud de caracteres del nombre de dominio de a.test.com antes de la migración es 10, y la longitud de caracteres del nuevo nombre de dominio cc.test.com después de la migración es 11. Si la longitud de caracteres de los dos nombres de dominio es diferente, la configuración de estilo se perderá después de la migración. La razón más probable es que la base de datos también guardará la longitud de la cadena del nombre de dominio para determinar la unicidad. Entonces, después de cambiar mi nombre de dominio a la misma longitud de caracteres que b.test.com después de la migración, se mostrará normalmente después de la migración, y el sitio web será el mismo que el original de wordpress.
Esta es solo una solución temporal para mí. Debería ser posible modificar directamente la configuración de longitud de caracteres de este nombre de dominio en la base de datos, pero no sé cómo modificarlo. Si hay una solución mejor, déjeme un mensaje. Lo aprenderé, ¡gracias! !

Supongo que te gusta

Origin blog.51cto.com/8789878/2542722
Recomendado
Clasificación