¿Qué es el comercio por Internet? El comercio electrónico es un nicho de negocio. Plataformas comerciales para el esquema de empresa a empresa

Estoy ejecutando WP 3.0.1 en anfitrión compartido usando PHP5. Tengo problemas para cargar archivos que son un poco más grandes a través del cargador de medios en la sección de administración de WP.

Cada vez que intento descargar un archivo de más de unos pocos megabytes, se carga, dice que falla y luego aparece un gran "error HTTP" rojo. - nada más.

Esto sólo ocurre en archivos que son un poco más grandes, es decir, un archivo de 20 MB. El archivo de 5 MB parece funcionar bien. Lo extraño es que en el pasado descargamos archivos de 40 MB sin problemas.

Estos son los pasos que he tomado hasta ahora para intentar solucionar la situación:

  • Verificó dos veces php.ini para aumentar la carga, la publicación y el uso de memoria fueron lo suficientemente altos.
  • .htaccess actualizado para incluir un filtro que encontré en otro lugar.
  • Verificó dos veces todos los permisos de archivos a través de ftp para asegurarse de que fueran 755.
  • Llamada del anfitrión: "No admiten scripts de terceros" (odio IPower)
  • Probé con varios archivos de audio de tamaño similar.
  • Deshabilitar todos los complementos

¿Tienen más ideas sobre lo que podría estar causando el "error HTTP" no especificado? ¿problema?

Gracias de antemano.

10 respuestas

El problema, como ya habrás identificado, está relacionado con el tamaño de carga del archivo. Déjame recordarte que HTTP no está diseñado para transferir archivos grandes...puede hacerlo, pero no siempre y no muy bien. Tiene un problema en el que su host deshabilita la transferencia porque el archivo es demasiado grande. Lo más probable es que se trate de un servidor al que no tienes acceso.

Dado que "no admiten scripts de terceros", supongo que se encuentra en un entorno cohospedado, por lo que las cosas pueden cambiar en su servidor si no hace nada. Posibles soluciones:

Tuve un problema similar con Nginx y PHP5-FPM (y WordPress 4.1).

Síntomas: archivo (< 5MB, так относительно небольшой) частично передается через передачу, как указано индикатором выполнения, когда вы получаете сообщение об ошибке HTTP.

Incluso si ha configurado upload_max_filesize en su php.ini, también debe verificar post_max_size como mínimo. No olvide reiniciar php5-fpm.

Si aún no funciona, edite el archivo nginx.conf (en Debian/Ubuntu it/etc/nginx/nginx.conf) y agréguelo al bloque http:

client_max_body_size 100m;

Luego reinicie Nginx.

Uno de nuestros clientes tuvo el mismo problema.

Finalmente, descubrimos que el "Error HTTP" de WordPress al cargar imágenes se debía a un cambio en el servidor. La empresa de hosting decidió agregar aceleración APC al servidor para mejorar la estabilidad y velocidad del servidor. La aceleración de APC sólo debería funcionar con FastCGI, no con su, por lo que instalan PHP como FastCGI.

En usando PHP como FastCGI, si intenta cargar un archivo de más de 128 KB, se produce el error "mod_fcgid: la longitud de la solicitud HTTP 131388 (hasta ahora) excede MaxRequestLen (131072)" y provoca un error servidor interno 550. Esto ocurre porque el valor predeterminado de la directiva MaxRequestLen está establecido en 131072 bytes (128 KB). Una forma de solucionar este problema (si el servidor usa Plesk) es editar /etc/httpd/conf.d/fcgid.conf y configurar MaxRequestLen en más alto valor, por ejemplo 15 MB (MaxRequestLen 15728640). Si el servidor usa cPanel, este cambio se puede realizar a través del WHM del servidor.

Entonces, si puedes cargar imágenes de hasta 128 KB, esta es la solución a tu problema.

Para futuros lectores, logré encontrar una solución a esto después de un arduo día de búsqueda.

Hay un parámetro en el archivo fcgid.conf (para mí en /etc/apache 2/mods-enabled): FcgidMaxRequestLen. Consulte https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxrequestlen

Configuré la longitud adecuada en bytes y todo funciona. Parece que Apache ha cambiado su forma de pensar al valor predeterminado (que ahora es 131072 bytes):

Antes de la versión 2.3.6, este valor predeterminado es 1 GB. La mayoría de los usuarios son más de versiones anteriores deberíamos utilizar esta directiva para fijar un límite más razonable.

Tuve el mismo problema al intentar cargar medios, excepto que recibí un "error HTTP" en archivos de más de 124 KB. WP 3.3.1, PHP 5.2.

Llamé a mi host y aumentaron la memoria a 64 M (también cambiaron esto en wp-config) y upload_limit a 8 MB (el valor predeterminado era 2 MB). Esto no funcionó, así que recurrí a casi todo lo demás, desde alterar .htaccess hasta reinstalar WP e instalar un nuevo WP en un servidor diferente, pero todo apuntaba a un problema en el servidor. Llamé nuevamente al dueño y hablé con otro especialista que aumentó configuración válida Longitud de la solicitud HTTP.

Probé todos los cambios de php.ini comúnmente sugeridos, así como los cambios de wp-config, sin suerte. Finalmente descubrí que alguien sugiere ver la información XHR de async-upload.php en mi navegador y descubrí que por alguna razón nuestro firewall está marcando la carga como un troyano (MalAgent.H_9218). Así que asegúrese de verificar allí, también puede identificar a otros. posibles problemas con carga.

La aparición del error "Error HTTP" al trabajar en WordPress puede deberse a varias razones. Enumeraré sólo aquellos con los que me he topado yo mismo y aquellos soluciones efectivas que han sido probados por mí. No masticaré todo en la forma. manual detallado para webmasters completamente nuevos. Cuento con un lector más preparado y conmigo mismo, para quienes estoy publicando esta serie de posts sobre la administración de WordPress como un bloc de notas en caso de que la esclerosis me visite de repente). La red está llena de recursos especializados donde te explicarán todo en detalle. y descrito en detalle. No me propuse tal tarea. Entonces…

En mi práctica, estoy acostumbrado a usar Linux en forma de Centos como plataforma del sistema su servidor web, así que rutas especificadas y los directorios para la ubicación de los archivos de configuración se aplican específicamente a este sistema. No dudo en cambiar la configuración a través del panel de control del servidor del administrador de ISP que uso activamente.

En primer lugar, cuando se produce un error de este tipo, lo más razonable sería consultar el registro de errores del servidor web. Buscamos líneas nuevas que mencionen PUT, GET y solicitudes POST y léelos atentamente. Por regla general, esto indica la dirección en la que buscar una solución.

Mayoría razones comunes Errores HTTP (también es posible una combinación de ellos)…

La resolución de la foto cargada es superior a la permitida.

En propia experiencia Noté que puede ocurrir un error si el ancho de la foto cargada excede el valor especificado como ancho para el formato de imagen "Tamaño grande" en "Configuración - Archivos multimedia". Cámbialo por uno más pequeño y pruébalo. Yo personalmente elegí el tamaño máximo suficiente para las fotografías publicadas: 1280x720px. Si utiliza su WordPress para crear un portafolio de fotografías, debe partir de sus propios requisitos en cuanto a la calidad del material fotográfico publicado.

Recuerde que crear copias de imágenes en diferentes resoluciones ocurre durante la etapa de descarga del archivo. Por lo tanto, cuando cambie los tamaños preestablecidos, utilice complementos para regenerar miniaturas (recrear miniaturas).

Quizás en mi práctica esta razón aparición error http No fue el único, pero acompañó a otros más famosos y familiares.

El tamaño del archivo cargado es mayor que el permitido en la configuración de PHP

Historia estándar. Hay muchas soluciones aquí...

Si el alojamiento le permite realizar cambios en php.ini, busque dos directivas en él y cambie su valor por uno adecuado, por ejemplo 32 MB:

Upload_max_filesize = 32M post_max_size = 32M

El segundo parámetro define tamaño máximo Solicitudes POST, que deben ser iguales o mayores que el tamaño máximo de archivo.

No olvides reiniciar el servidor web Apache a través del panel o SSH con el comando:

reinicio del servicio httpd

Si no hay acceso a php.ini, intentamos registrar lo mismo a través de .htaccess en la raíz de tu WordPress:

Php_value upload_max_filesize 32M php_value post_max_size 32M

Si usa Apache como servidor web y Nginx, hasta donde recuerdo, nginx no entiende .htaccess, pero cambia configuración PHP posible a través del archivo de configuración nginx.conf. Si PHP está configurado como cliente FastCGI, esto se hace mediante la directiva fastcgi_param:

Fastcgi_param PHP_VALUE upload_max_filesize=32M; fastcgi_param PHP_VALUE post_max_size=32M;

También sería una buena idea verificar el valor de la directiva nginx client_max_body_size, que es responsable del tamaño máximo de datos transferidos a Solicitudes HTTP. También afecta el tamaño máximo de los archivos cargados. No debe ser inferior a los parámetros anteriores.

No lo olvides después de realizar cambios en la configuración. archivos nginx o Apache reinicia el servicio a través del panel de control o vía SSH con comandos como:

servicio nginx reiniciar servicio httpd reiniciar

Bien última opción— intenta expandir las capacidades de PHP directamente desde tu archivo de configuración de WordPress usando la función ini_set():

Ini_set("upload_max_size", "32M"); ini_set("post_max_size", "32M");

WordPress tiene un filtro especial upload_size_limit utilizado en la función wp_max_upload_size().

Este filtro es responsable del tamaño máximo de los archivos descargados. El valor predeterminado es el más pequeño de upload_max_filesize y post_max_size del archivo php.ini, y este filtro solo se puede usar dentro de este valor.

Si ha aumentado el tamaño de los archivos cargados utilizando los métodos descritos anteriormente y WordPress todavía le muestra un valor menor que el valor establecido, verifique si tiene un complemento instalado que use este filtro. El código de este complemento se puede corregir, encontrar un reemplazo o desactivar.

Puedes reducir el tamaño máximo de los archivos cargados usando un filtro en el archivo funciones.php de tu tema:

Add_filter("upload_size_limit", "16M");

El cliente de error intentó enviar un cuerpo demasiado grande

Si en los registros de nginx (/var/log/nginx/error.log) vemos un error como:

XXXX#0: *XXXXXXXXXX el cliente pretende enviar un cuerpo demasiado grande: XXXXXXX bytes, cliente: XX.XXX.XXX.XX, servidor: XXXXX, solicitud: "POST /engine/ajax/upload.php HTTP/1.1", host: "XXX.com"

entonces esto señal segura que necesita aumentar el valor de la directiva client_max_body_size mediante archivo de configuración nginx.conf en el bloque http().

Esto lo hacemos a través del panel de control o vía SSH y el editor VI por ejemplo:

# vi /etc/nginx/nginx.conf client_max_body_size 100M; # recarga del servicio nginx

La salida del editor VI se realiza con los comandos: wq guardando el contenido o: q (:q!) sin guardar.

La directiva client_max_body_size especifica el máximo tamaño permitido cuerpo de la solicitud del cliente, especificado en el campo "Longitud del contenido" del encabezado de la solicitud. Si el tamaño es mayor que el especificado, se devuelve al cliente el error 413 (Entidad de solicitud demasiado grande). Tenga en cuenta que los navegadores no muestran este error correctamente. Establecer el parámetro de tamaño en 0 deshabilita la verificación del tamaño del cuerpo de la solicitud del cliente.

Más opciones para lidiar con errores http a través de .htaccess

Pegue el siguiente código al final del archivo .htaccess:

SecFilterEngine desactivado SecFilterScanPOST desactivado

Es difícil para mí explicar el significado sagrado de este código, pero a veces ayuda.

Personalmente, también me convencí por mi propia experiencia de la efectividad de otra directiva mágica, que debe insertarse al principio de .htaccess:

EstablecerEnv MAGICK_THREAD_LIMIT 1

En mi práctica, esto una vez resolvió un problema cuando ocurría un error http al intentar descargar un archivo de más de 1 MB, a pesar de todos los volúmenes máximos permitidos mucho mayores de archivos descargados y comandos prescritos en las formas descritas.

Conflicto de complementos

Si este error apareció inesperadamente, es decir. Si no ha realizado una actualización importante del núcleo o del tema, recuerde qué complemento instaló o actualizó recientemente. Quizás esta sea la razón. La única opción en este caso es deshabilitar secuencialmente y cuidadosamente los instalados recientemente y verificar la presencia de este mismo error.

Probablemente esto sea todo lo que me vino a la mente de mi práctica. Probablemente haya algo más, si mal no recuerdo, lo agregaré a esta publicación, pero en la mayoría de los casos, los bailes con pandereta descritos anteriormente alrededor de su WordPress en la lucha contra los errores http al descargar archivos suelen ser suficientes.

Hoy analizaré varias situaciones en las que puede recibir un error HTTP al cargar fotos en WordPress y, al mismo tiempo, le diré qué hacer en este caso. este problema aparece inmediatamente después de hacer clic en el botón "Agregar archivo multimedia" en la página de edición posterior o en la sección "Archivos multimedia", tan pronto como seleccione el archivo en su computadora que desea usar. En este caso, la frase "Error HTTP" se mostrará en la ventana del gestor de arranque.

Desafortunadamente, WordPress no puede determinar de forma independiente cuál es el problema real, por lo que muestra una respuesta general. Por otro lado, este mensaje tampoco le dice al usuario nada específico: tendrá que probar varios enfoques para encontrar la decisión correcta tareas.

Métodos comunes para errores HTTP en WordPress

Antes de plantearte opciones un poco más originales, te daré un par de consejos triviales que deberías aplicar primero.

1. Problema con el alojamiento

Primero, intenta cargar la imagen nuevamente después de unos minutos. Es posible que se hayan producido algunos fallos temporales en el servidor en el momento del primer intento.

Si el problema no ha desaparecido, debe seleccionar algún otro archivo para agregar: con más nombre sencillo(sin caracteres especiales ni letras rusas) o en un formato incorrecto (por ejemplo, PNG en lugar de JPG).

A veces, los proveedores de alojamiento establecen un límite en el peso de los objetos importados al sitio: 2 MB, 4 MB, 8 MB, etc. Utilice una imagen más clara para realizar la prueba nuevamente.

Al cargar una imagen en error de WordPress HTTP puede ocurrir cuando un determinado directorio de alojamiento no tiene permiso de escritura. Ir al directorio FTP wp-content/subidas/ y luego mire los derechos de acceso de la carpeta que necesita.

Si su proyecto de WP contiene gráficos por año y mes, entonces debe verificar la dirección correspondiente, por ejemplo, wp-content/uploads/2018/10. Se permite agregar archivos al servidor con el valor "775" / "777", mientras que "666" o "664" este procedimiento prohibido. En las dos últimas situaciones, simplemente cambie los derechos de acceso a la carpeta correspondiente.

2. Problema de software

Sucede que en cierto navegador específico Por alguna razón mítica, ciertos scripts no quieren ejecutarse. Ya sea por sus versiones antiguas, o porque complementos instalados, pero eso sucede a veces. Pruebe con un navegador diferente. Otro truco relacionado con esto. software— borrar el caché local (es recomendable comprobarlo también).

Segundo matiz importante en esta “subsección” - antiguo versión PHP en el servidor. WordPress, a partir de la rama 3.2, requiere un mínimo de PHP 5.2.4. Verifique/actualice este software usted mismo o comuníquese con su proveedor de alojamiento para obtener ayuda.

3. Técnicas clásicas de WordPress

Estas “maquinaciones” deben realizarse en casi cualquier problema con el sistema. Cuando ocurre un error durante la carga en WordPress, lo primero que debe hacer es desactivar todos los complementos de terceros.

Si este enfoque no funciona, entonces el siguiente paso es reemplazar su plantilla con una de temas basicos. Pure WP con el diseño predeterminado y sin módulos adicionales debería funcionar correctamente.

4. Aumentar el límite de memoria

Destaqué este elemento como un elemento separado porque aparece con bastante frecuencia: nuestro CMS consume muchos recursos.

EN caso general debe editar el archivo wp-config.php ubicado en el directorio raíz del hosting. Escribe la línea en él:

definir("WP_MEMORY_LIMIT", "256M");

definir("WP_MEMORY_LIMIT", "256M");

5. Biblioteca GD predeterminada

El paquete WP CMS contiene 2 bibliotecas gráficas para procesamiento - Imagick y GD Library. Para el primero de ellos, los desarrolladores notaron de vez en cuando errores HTTP al cargando WordPress imágenes, por lo que se recomienda especificar la segunda como herramienta predeterminada.

Para implementar el método en funciones.php escribimos:

función wp_default_image_editor( $editores) ($gd_editor = "WP_Image_Editor_GD"; $editores = array_diff ($editores, matriz ($gd_editor)); array_unshift ($editores, $gd_editor); devuelve $editores; ) add_filter( "wp_image_editors", " wp_default_image_editor");

función wp_default_image_editor($editores) ( $gd_editor = "WP_Image_Editor_GD"; $editores = array_diff($editores, array($gd_editor)); array_unshift($editores, $gd_editor); return $editores; ) add_filter("wp_image_editors", " wp_default_image_editor");

6. Editar.htaccess

Al agregar un pequeño .htaccess, puede controlar el uso de los recursos del servidor por parte de la biblioteca Imagick. Busque el archivo en el directorio raíz y edítelo mediante FTP, agregando la línea:

SecFilterEngine desactivado SecFilterScanPOST desactivado

O opción:

# Excluir la carga de archivos y los scripts WP CRON de la autenticación Satisfacer cualquier pedido permitir, denegar Permitir de todos Denegar de ninguno

Eso es básicamente todo. Comience con los enfoques más simples dados al principio y luego tendrá que pasar a otros más complejos. Por supuesto que es desagradable recibir error HTTP al cargar fotos o imágenes de WordPress, pero, como puede ver, esto no es crítico. ¿Alguien conoce otros métodos? - compártelos a continuación.




Arriba