php - segundos - wordpress no se puede acceder a este sitio web
Importador de Wordpress que muestra la página en blanco después de hacer clic en el botón Cargar archivo e Importar (5)
He intentado importar un archivo .xml de mi antiguo WordPress a uno nuevo. Tengo la siguiente configuración en php.ini:
- upload_max_filesize = 64M
- post_max_size = 90M
- memory_limit = 128M
Pero cuando hago clic en el botón Cargar archivo e Importar obtengo una página en blanco. Sin errores ni nada.
Alguien tiene alguna idea de cómo resolver esto? Gracias.
ACTUALIZAR:
Después de encender la pantalla de error que se sugiere a continuación, pude obtener el siguiente error:
Fatal error: Class ''DOMDocument'' not found in /var/www/html/wp-content/plugins/wordpress-importer/parsers.php on line 61
que luego pude arreglar instalando php-xml.
Esta pregunta en su forma original no proporcionaba suficiente información para justificar en realidad tratar de adivinar la solución.
Por lo tanto, sentí que la respuesta más relevante fueron algunos pasos generales de solución de problemas que pueden arrojar más luz sobre una situación similar: mi atención se centra en los consejos que pueden ayudar en esta situación particular, pero dado que va a ser bastante largo de todos modos incluyo algunos más consejos generales también.
El OP no está realmente pidiendo alternativas a la función de importación / exportación de wordpress, pero como esta migración se ha agriado (más el hecho de que la función de importación / exportación de wordpress deja mucho que desear), intentaré responder a la pregunta de Alans sobre formas alternativas de migrar WordPress entre servidores / ubicaciones / dominios también.
En riesgo de afirmar lo obvio: ¡ esta respuesta va a ser larga!
Depuración de errores de wordpress en general
Paso 1. Asegúrate de que puedes ver qué va mal
Habilite el modo de depuración y asegúrese de que display_errors
esté habilitado y que se haya definido un nivel de error_reporting
apropiado. Esto es vital para cualquier desarrollo de wordpress.
Abra wp-config.php
y encuentre esta línea:
define(''WP_DEBUG'', false);
Reemplazarlo por:
//Switch on wordpress'' built-in debug mode
define(''WP_DEBUG'', true);
/**
* Just a convenient check so you can leave the next few lines unchanged
* for next time you need debugging, and just switch true/false above.
*/
if (WP_DEBUG) {
//Handle all errors regardless of error level
ini_set(''error_reporting'', -1);
//Display errors directly in the browser
ini_set(''display_errors'', ''On'');
}
... si por alguna razón la línea no está ya allí, solo inserta en algún lugar sobre la línea diciendo.
/* That''s all, stop editing! Happy blogging. */
Esto debería permitirle ver más información sobre la mayoría de los errores (php-).
Notas:
- En la mayoría de los casos, simplemente establecer
WP_DEBUG
entrue
habilitará automáticamentedisplay_errors
; sin embargo, he encontrado lo anterior para cubrir algunos casosWP_DEBUG
donde los errores no se muestran a pesar de queWP_DEBUG
estrue
. - En un sitio en vivo (producción) puede ser muy indeseable mostrar errores a cada visitante, por lo que es posible que desee:
- habilitar
WP_DEBUG
condicionalmente, por ejemplo por IP:define(''WP_DEBUG'', $_SERVER[''REMOTE_ADDR''] === ''123.123.123.123'');
(obviamente sustituyendo su IP real) - registrar errores en lugar de mostrarlos; consulte el códice de wordpress para obtener más información: Depuración en WordPress
- habilitar
- Si tiene plugins o temas de poca calidad u obsoletos instalados, es muy probable que vea muchos resultados de funciones mal escritas dentro de ellos.
Si ve errores haciendo referencia a uno de sus complementos tan pronto como habilite el modo de depuración, mi recomendación es ponerse en contacto con el desarrollador del complemento en relación con el problema, o simplemente desinstalar el complemento y buscar otro que satisfaga sus necesidades. Los complementos de los desarrolladores que ni siquiera se preocuparon por utilizar el modo de depuración durante el desarrollo tienen muchas probabilidades de contener problemas de seguridad y / o ser subestándar con respecto a la compatibilidad futura o de terceros.
Paso 2. Reproduce el error
Cualquier cosa que hayas hecho para que el problema suceda, hazlo de nuevo. Esto debería darte algo con qué trabajar, por ejemplo, simplemente pegándolo en google y ver qué surge. Lo más probable es que no seas el primero en experimentar cualquier problema que estés teniendo.
Si sigue sin obtener errores visibles, intente hacer clic derecho en "nothingness" y ver el origen de la página en un editor de texto claro. En ocasiones, los errores pueden ocultarse dentro de un atributo o detrás de un elemento en la pantalla.
También puede intentar insertar algún código intencionalmente roto en wp-config.php
para confirmar que los errores se imprimirán. Por ejemplo, escriba this_function_surely_does_not_exist();
justo después de las directivas ini_set()
.
Algunos hosts restringen el uso de ini_set()
, por lo tanto, si las cosas aún no funcionan, pero no ve ningún error, intente averiguar cómo puede establecer la configuración pertinente de php.ini
, puede estar en el panel de control de su proveedor de hosting. (cPanel, Plesk, etc.), puede tener acceso directo a su php.ini a través de FTP ... o pueden no ofrecer ninguna forma de configurarlo (¡busque un proveedor diferente a la vez!)
También es posible que no pueda cambiar el valor, pero los errores se registran en algún lugar en su panel de proveedores de forma predeterminada.
Si obtiene una ventana del navegador completamente blanca, es probable que tenga un error fatal en alguna parte, o un problema de configuración en el servidor. Esto está fuera del alcance de esta respuesta, por lo que si las sugerencias sobre aumentar los límites en la siguiente sección no funcionan, intente google "WSOD" para comenzar.
Encuentra límites reales y configuraciones
No confíes en eso solo porque tienes un archivo llamado php.ini
que contiene una línea que dice memory_limit = 128M
tu límite de memoria es en realidad 128M. Esto se puede configurar de muchas maneras diferentes, y la única forma confiable de saberlo es preguntarle a php cuál es su límite de memoria actual. Esto es cierto para la mayoría de los ajustes php.ini
!
Para tener una idea clara de cómo se ve su entorno de trabajo, cree un archivo (preferiblemente en la raíz de su instalación de wordpress) llamado phpinfo.php
, con el siguiente contenido:
<?php
//Your memory limit
echo ''memory_limit: '' . ini_get(''memory_limit'') . ''<br>'';
//Your maximum size of post-data (including file uploads)
echo ''post_max_size: '' . ini_get(''post_max_size'') . ''<br>'';
//The maximum file size for uploads
echo ''upload_max_filesize: '' . ini_get(''upload_max_filesize'') . ''<br>'';
//Maximum runtime for php scripts (in seconds)
echo ''max_execution_time: '' . ini_get(''max_execution_time'') . ''<br>'';
//Current error reporting level
echo ''error_reporting: '' . ini_get(''error_reporting'') . ''<br>'';
//Are errors displayed?
echo ''display_errors: '' . ini_get(''display_errors'') . ''<br>'';
//Will errors be logged?
echo ''log_errors: '' . ini_get(''log_errors'') . ''<br>'';
//Where will errors be logged?
echo ''error_log: '' . ini_get(''error_log'') . ''<br>'';
//What is the absolute path of this files parent folder
// = the complete path to your wordpress "root folder"
echo ''root of wordpress: '' . __DIR__ . ''<br>'';
/**
* If you are curious to see *a lot* of information about your environment
* then uncomment this line too:
*/
//phpinfo();
/**
* This should print whatever is in the error log, but it could potentially
* be huge, so use with caution!
*/
//echo ''<pre>'' . file_get_contents(ini_get(''error_log'')) . ''</pre><br>'';
Debe tener en cuenta que todos los valores anteriores se pueden cambiar durante la ejecución de un script, y algunos complementos (de mala calidad) sí lo harán. He visto complementos que intentan aumentar el límite de memoria, por ejemplo, que está bien y es excelente, excepto que pasan de 6 a 7 años, y un complemento que "aumenta" el límite de memoria a 32 MB realmente arruina la instalación, porque hoy en día se necesitan 64 MB para una instalación bastante básica de wordpress, y 128 MB sería un mínimo razonable para la mayoría. El problema con esto es que la única manera de conocer realmente los valores con certeza en cualquier punto de ejecución dado es insertar el derecho de más arriba en ese punto.
Algunas razones muy comunes para los errores que ocurren "ocasionalmente", especialmente en conexión con importaciones o cargas de archivos, es que memory_limit
, post_max_size
o upload_max_filesize
están configurados demasiado bajos; puede intentar aumentarlos usando llamadas ini_set()
en wp-config.php
:
ini_set(''memory_limit'', ''256M'');
ini_set(''post_max_size'', ''128M'');
ini_set(''upload_max_filesize'', ''64M'');
De nuevo, su host puede evitar por completo que afecte sus límites al usar estas funciones, pero puede brindarle otra manera de configurarlas.
Si eso tampoco funciona, intente deshabilitar tantos complementos como sea posible y, como último recurso, cambie a un tema predeterminado, pero prepárese para perder widgets y una gran cantidad de configuraciones si las cosas cambian.
Si todavía estás atascado en el cuadrado, haz una pregunta sobre y sé muy detallado sobre lo que hiciste antes de que todo se fuera al sur;)
Clonar / migrar / mover o realizar una copia de seguridad de un sitio de wordpress
Hay muchos complementos de copia de seguridad / migración. Si no tiene experiencia en el trabajo con archivos, bases de datos y similares, su mejor opción es, probablemente, ir con uno de esos. No recomendaré ningún complemento específico, ya que los cambios son demasiado frecuentes y personalmente siempre lo hago de forma manual. Sin embargo, una búsqueda en Google debería arrojar muchos resultados relevantes, y estoy seguro de que muchos de ellos pueden hacer el trabajo en la mayoría de las situaciones.
Sin embargo, si como yo, prefiere hacerlo manualmente para comprender (y controlar) el proceso, este es el método que uso para mover, cambiar el nombre, clonar o hacer una copia de seguridad de las instalaciones de WordPress de forma rutinaria: debería funcionar para casi cualquier instalación independiente (es decir, Si intenta mover un sitio múltiple, probablemente debería buscar otra guía.
Estas instrucciones deberían funcionar ya sea que
- migrando de un servidor a otro - por ejemplo, desarrollo a producción
- migrando de un dominio a otro
- migrar de una subcarpeta a la raíz del dominio (o viceversa)
- hacer una copia de seguridad (simplemente detener la mitad del proceso y continuar donde lo dejó si alguna vez necesita recrear su copia de seguridad)
Los pasos básicos son:
- Obtenga una copia de todos los archivos
- Obtenga una copia de la base de datos completa
- Haga las correcciones necesarias en los archivos
- Cargue archivos en el nuevo servidor (o lo mismo si está restaurando una copia de seguridad)
- Cargue la base de datos en el nuevo servidor
- Haga las correcciones necesarias en la base de datos
Esto requiere que tengas acceso a:
- Sus archivos, por ejemplo a través de FTP o tal vez su proveedor de alojamiento, tienen una herramienta que puede crear un archivo que contiene todos sus archivos.
- Su base de datos, por ejemplo, a través de phpMyAdmin o cualquier herramienta que pueda hacer un volcado de base de datos completo para usted.
Todos los planes de alojamiento decentes, y casi todos los planes de alojamiento compartido de bajo costo vienen con acceso phpMyAdmin y FTP. VPS, servidores privados, etc. obviamente vienen con acceso directo a archivos y bases de datos que será aún mejor (o al menos más rápido).
Si no tiene acceso a lo anterior, donde sea que esté alojado su sitio, es probable que lo haya comprado a alguien que no quiere que lo retire (generalmente porque diseñaron su sitio web gratis o a un costo muy bajo, y necesita que te quedes con ellos para recuperar su inversión). Si ese es el caso, puedes probar uno de los muchos complementos de copia de seguridad / migración, pero es probable que ni siquiera te permitan instalar complementos, por lo que tendrás que contactarlos y concertar algún acuerdo. (Si no tiene acceso a su base de datos, pero tiene acceso a sus archivos, puede instalar phpMyAdmin usted mismo, pero cómo hacerlo está fuera del alcance de esta respuesta)
Tenga en cuenta que, dependiendo de la operación que esté realizando, se pueden omitir algunos pasos, que puede hacer una vez que comprenda el proceso y por qué cada paso es (a veces) necesario, pero si es la primera vez que comienza. la parte superior y trabaja tu camino a través de cada paso.
Paso 1. Obtenga una copia de todos los archivos
Querrá obtener todos los archivos en la "raíz" de su instalación de wordpress. Esa es la carpeta que contiene wp-content
, wp-admin
y wp-includes
más unos 15-20 archivos. Asegúrese de obtener también los archivos ocultos (por ejemplo, el archivo .htaccess
probablemente estará oculto de manera predeterminada si usa FTP; en algunos casos, este archivo es completamente irrelevante, pero en otros puede ser esencial, así que asegúrese de obtener todo)
Si su proveedor de hosting tiene algún tipo de administrador de archivos, puede intentarlo primero. Muchos administradores de archivos ofrecen la opción de subir o descargar carpetas como un solo archivo comprimido, que será mucho más rápido que descargar todos los archivos individualmente.
Si tiene un VPS o cualquier solución con SSH o alguna otra forma de acceso a la consola, zip -r my_wp_backup.zip .
y navegue hasta la "raíz" de su instalación, luego comprima todo, algo así como zip -r my_wp_backup.zip .
debería hacer. Descarga el archivo usando cualquier medio que tengas.
Si solo tiene acceso FTP a sus archivos, puede tomar un tiempo, pero simplemente debe iniciar sesión con FTP (mi cliente FTP favorito es FileZilla , porque es fácil de usar y permite varias transferencias simultáneas ... pero cualquier cliente debe estar multa). Navega hasta la "raíz" de wordpress y transfiere todos los archivos a una carpeta local en tu computadora (¡no olvides mostrar los archivos ocultos!)
Paso 2. Obtenga una copia de la base de datos completa
Si tiene acceso a phpMyAdmin a través de su proveedor, úselo: es, con mucho, el más fácil y nunca he tenido ningún problema, excepto con bases de datos extremadamente especiales o versiones extremadamente antiguas de phpMyAdmin.
Simplemente inicie sesión en phpMyAdmin, seleccione su base de datos, haga clic en exportar y acepte los valores predeterminados (las opciones son muy diferentes dependiendo de la versión, pero los valores predeterminados deberían estar bien para cualquier base de datos de WordPress "normal"). Esto debería proporcionarle una descarga de archivos con un nombre que termine en ".sql", o un gran campo de texto con gran cantidad de texto. Si obtiene este último, simplemente cópielo a un archivo de texto normal en su computadora local: el bloc de notas, el bloc de notas ++ o cualquier otro editor de texto sin formato funcionarán (es decir, ¡no use word, google docs ni ningún otro editor de texto enriquecido!)
Si no tiene acceso a phpMyAdmin, puede instalarlo (que no voy a describir), o debe encontrar otra forma de exportar la base de datos, por ejemplo:
- Si tiene acceso a la consola, este comando debería darle un volcado utilizable:
mysqldump -u your_database_username -p your_db_name > my_backup.sql
- si no conoce el nombre de su base de datos, eche un vistazo en wp-config.php (también contiene su nombre de usuario y contraseña si no los conoce) - Si no tiene acceso a la consola, vaya a explorar el panel de control de su proveedor, seguramente tienen alguna forma de permitirle realizar un volcado de la base de datos.
Paso 3. Haz las correcciones necesarias en los archivos
Ahora debería tener una copia de seguridad completa en su disco local.
- Si está haciendo una copia de seguridad, ya está listo: los archivos y la base de datos están listos para ser cargados en la misma ubicación, y todo se restaurará al estado actual.
- Si te mudas a un servidor diferente o a una ubicación diferente en el mismo servidor, averigua:
- cuál es su nueva ruta (suba el archivo
phpinfo.php
anterior si su proveedor no le da ninguna pista) - cuál es tu nuevo nombre de usuario y contraseña de la base de datos
- si necesita un nombre de host especial para conectarse a la base de datos (el host
localhost
es suficiente en la mayoría de los casos, pero algunos proveedores tienen servidores mysql dedicados que requieren que se conecte a otro nombre de host)
- cuál es su nueva ruta (suba el archivo
Corrija su archivo wp-config.php
; las líneas relevantes son:
/** The name of the database for WordPress */
define(''DB_NAME'', ''your_database_name'');
/** MySQL database username */
define(''DB_USER'', ''your_database_username'');
/** MySQL database password */
define(''DB_PASSWORD'', ''your_database_password'');
/** MySQL hostname */
define(''DB_HOST'', ''localhost'');
Aunque es bastante raro, algunos complementos escriben información en archivos que deben actualizarse, por lo que si la ruta absoluta de su carpeta raíz de wordpress, o la URL absoluta de su instalación está cambiando en el proceso de migración, también debe hacer una búsqueda completa y reemplazar por aquellos:
- Si la ruta absoluta anterior de su instalación era
/var/www/www.example.com/web/blog
y su nueva ruta absoluta es/var/www/blog.example.com/public_html
, busque y reemplace las que se encuentran en todas las ubicaciones. archivos. ¡No incluya una barra final! - Si la URL anterior era
http://www.example.com/blog
y la nueva URL va a serhttp://blog.example.com
realice una búsqueda dewww.example.com/blog
reemplazando conblog.example.com
. ¡No incluyahttp://
y no incluya una barra inclinada!
Tenga en cuenta que si por alguna razón se encuentra en una situación en la que no conoce su antigua ruta absoluta y / o URL, puede encontrarlos en la base de datos, así que haga primero el paso 5 y busque en la tabla prefix_options
los valores de siteurl
(su URL absoluta) y upload_path
generalmente contendrá la ruta absoluta (plus /wp-content/uploads
); si no lo hace, probablemente haya otras filas en la tabla que le indiquen cuál era la ruta, busque algo que comience. con /var/www
o /home/something
.
Paso 4. Cargar archivos en el nuevo servidor o en una nueva ubicación
Como en el paso 1, sus opciones pueden variar, pero el objetivo es que todos los archivos cargados en la carpeta sea su nueva raíz. Use los medios que tenga disponibles para hacerlo.
No ceda a la tentación de "probar" el sitio después de cargar archivos, aunque es poco probable que pueda tener consecuencias imprevistas si visita antes de que se completen todos los pasos.
Paso 5. Cargue la base de datos en el nuevo servidor
De nuevo, las opciones varían:
- Si phpMyAdmin está disponible, simplemente inicie sesión, seleccione su base de datos, haga clic en importar y suba el archivo desde el paso 2. A veces, incluso hago clic en la pestaña
SQL
y simplemente pego todo el contenido directamente en el campo de texto grande. - Si tiene acceso a la consola, puede cargar el archivo y ejecutar
mysql -u your_database_username -p your_new_db_name < my_backup.sql
Paso 6. Realice las correcciones necesarias en la base de datos
Si está restaurando una copia de seguridad en el mismo servidor y ubicación, ya está.
Sin embargo, si está migrando a un servidor diferente o a una URL diferente, debe tener en cuenta que Wordpress en sí mismo, así como una gran cantidad de complementos, escribe su URL absoluta en muchos (miles) lugares en la base de datos, y su ruta absoluta Es probable que también esté presente en al menos un par de filas.
También debe tener en cuenta que una gran cantidad de complementos, así como algunas funciones principales de wordpress, utilizan la función php serialize
para almacenar datos complejos fácilmente en la base de datos. Ese formato es muy sensible a los cambios, por lo que una búsqueda y reemplazo "regular" es muy probable que lo rompa todo.
Afortunadamente hay una herramienta gratuita diseñada específicamente con esto en mente. No tengo afiliación, pero no puedo recomendar la búsqueda de base de datos / interconexión y reemplazar lo suficiente. Está bien mantenido, es súper fácil de usar, y nunca lo he experimentado personalmente.
Descárguelo usando el enlace de arriba, descomprímalo, cambie el nombre de la carpeta a something_random_for_security
y cárguela en su carpeta raíz de WordPress. Luego, vaya a http://blog.example.com/something_random_for_security
en su navegador (obviamente sustituyendo partes relevantes de la URL).
Se te presentará una interfaz gráfica ordenada, y probablemente ya haya rellenado los detalles de tu base de datos (leyendo wp-config.php
).
En la parte superior de la pantalla, hay un campo de búsqueda y un campo de reemplazo. No te metas con nada más, a menos, por supuesto, que no haya podido obtener la información de tu base de datos automáticamente.
Me gusta para los archivos que necesita buscar:
- su antigua ruta absoluta y reemplace con su nueva ruta absoluta (sin incluir la barra diagonal)
- su antigua URL absoluta y reemplace con su nueva URL absoluta (sin incluir el protocolo
http://
y la barra diagonal)
Primero puede utilizar el botón "Secuencia de ejecución" para ver qué se cambiará y, en caso de surgir algún problema obvio, después de eso simplemente haga clic en el botón "Ejecutar en vivo" y revisará toda su base de datos reemplazando en una serialize()
de manera segura cuando sea relevante.
Paso 6,5 enlaces permanentes quebrados
Si ha movido su sitio de una carpeta a otra (o sube o baja un nivel), los enlaces permanentes / "URL bonitas" pueden no funcionar (es decir, su página principal está bien, pero todo lo demás es un gran error). Esto se debe a las reglas en ese archivo .htaccess
"oculto" que se "confunde". La solución es muy simple: solo visite "Configuración" -> "Enlaces permanentes" en el administrador de wordpress ... no necesita hacer ningún cambio, el archivo se actualiza automáticamente tan pronto como visita la página.
Hecho
Comprueba que todo funcione, luego ve a celebrar ...
Estos pasos pueden ayudar:
- Después de mostrar la página en blanco, la página se ejecuta en segundo plano (puede ver esto en vuelo al actualizar la tabla wp_posts o wp-admin)
- Dentro de
wp-includes/deprecated.php
hay una función llamadawp_get_http()
con@set_time_limit( 60 );
, cambie esto a0
para desactivar la limitación.
La única forma de averiguar qué está causando la pantalla en blanco es verificar el registro de errores del servidor.
Y también toma referencia de here
Sus directivas están en el formato incorrecto. Tratar
upload_max_filesize = 64M
post_max_size = 90M
memory_limit = 128M
max_execution_time = 120
Si esos no funcionan, pregúntale a tu proveedor de alojamiento web; es posible que no pueda realizar cambios en php.ini.
Y intente ejecutar depuración https://codex.wordpress.org/Debugging_in_WordPress para detectar los errores de PHP que pueden señalar el camino al problema y la solución.
intente esto, después de hacer los cambios necesarios para cargar un archivo en php o wordpress ie
post_max_size = 90M
max_execution_time = 120
upload_max_filesize = 64M
memory_limit = 128M
otros pasos,
1)Increase the PHP memory limit via .htaccess (e.g. php_value memory_limit 64M)..
2)Increase the PHP memory limit via wp-config.php (e.g. efine(‘WP_MEMORY_LIMIT’, ’64MB’);)
finalmente verificar,
https://codex.wordpress.org/Importing_Content