Un usuario preguntó 👇
Hola,
WP Mail SMTP lleva la siguiente advertencia de PHP. Parece haber un problema con su código. La única forma de deshabilitar este error es establecer open_basedir en none (deshabilitar) o instalar un plugin SMTP diferente, que no causa este error. WP envía correo SMTP sin problemas incluso con advertencia de PHP
IIS 10 / Windows Server 2016 / WP 4.9.1 / PHP 7.1.13 / WP Mail SMTP 1.2.2
Advertencia de PHP: is_readable (): se aplicó la restricción open_basedir. Archivo (C: Inetpub vhosts domain.com staging.domain.com/wp-content/plugins/C: Inetpub vhosts domain.com staging.domain.com wp-content plugins wp- mail-smtp / languages / wp-mail-smtp-en_US.mo) no está dentro de las rutas permitidas: (C: /Inetpub/vhosts/domain.com ; C: Windows Temp ) en C: Inetpub vhosts domain.com staging.domain.com wp incluye l10n.php en línea 584
Buena suerte, desafortunadamente no puedo usar WP Mail SMTP ni recomendarlo a mis clientes, ya que es un problema de seguridad establecer open_basedir en none (deshabilitar).
(@slaffik)
Hace 2 años, 10 meses
Hola @ramseyb
Se debe al uso de la función predeterminada de PHP. is_readable()
que compruebe que el archivo Y sea legible antes de intentar leerlo. file_exists()
el uso puede solucionar este problema, pero no garantiza que el archivo sea legible.
Para su configuración particular, significa que tiene valores incorrectos open_basedir
valor.
No digo deshabilitarlo, digo, déle los valores adecuados.
Además, veo que el error en realidad está en WordPress y no en un plugin. Mira esto:
en C: Inetpub vhosts domain.com staging.domain.com wp includes l10n.php online 584
Así que definitivamente es un problema en la configuración del servidor, no en el plugin en sí.
También su archivo de traducción personalizado (wp-mail-smtp-en_US.mo
) está mejor ubicado allí /wp-content/languages/plugins/
, por lo que la próxima actualización del plugin WP Mail SMTP no eliminará sus archivos.
(@ramseyb)
Hace 2 años, 10 meses
Gracias por la respuesta Slava,
He probado WP Mail SMTP en algunos otros sitios web y ejecuta las mismas alertas de PHP en el momento en que está habilitado. Esto no sucede con otros plugins o plugins SMTP alternativos.
Es posible que haya habido una correlación entre el problema y el kit de herramientas de WordPress de Plesk Onyx porque todos los sitios web se instalaron con esta herramienta. El problema parece ser una restricción de extensión de archivo .mo.
Ruta… wp incluye l10n.php en línea 584
Código en línea 584
if ( !is_readable( $mofile ) ) return false;
===
Además, wp-mail-smtp-en_US.mo no existe en la ruta específica o cuando descargo el paquete WTP Mail SMTP directamente desde https://wordpress.org/plugins/wp-mail-smtp/
Ruta… wp-content plugins wp-mail-smtp / language / wp-mail-smtp-en_US.mo
===
Espero que pueda resolver esta solución, el plugin funciona muy bien aparte de este problema.
Esta respuesta fue modificada hace 2 años, 10 meses por.
(@slaffik)
Hace 2 años, 10 meses
No hay nada que arreglar en un plugin. El problema está en la configuración del servidor. El error NO aparece en un archivo de plugin, pero yo wp-includesl10n.php
usar is_readable()
función. Será mejor que establezcas las reglas open_basedir
configurar entrar php.ini
.
Esto no sucede con otros plugins o plugins SMTP alternativos.
Eso es solo porque están cargando los archivos de traducción manualmente, utilizando técnicas de carga automática integradas de WordPress para la traducción.
También puedes eliminar en_US
localidad de su wp-config.php
archivo (o área administrativa). El propio WordPress ya usa la versión estadounidense del inglés, por lo que no hay valor real en el idioma del sitio de estos sitios.
(@ramseyb)
Hace 2 años, 10 meses
Gracias por el acertijo, tendré que buscar en Plesk la pregunta porque me está diciendo que se trata de una configuración perdida en todo el servidor.
(@ramseyb)
Hace 2 años, 9 meses
Hola Slava,
A continuación se muestra la respuesta de Plesk, ¿qué agregaría a la guía open_basedir para mitigar la advertencia de PHP y resolver este problema? Como se señaló, deshabilitar open_basedir (establecido en none) no es una opción.
=== Responder Plesk ===
Sí, si la opción open_basedir está configurada como «none», los scripts PHP tienen acceso a todos los directorios del servidor.
Además, como mencionó mi colega, si el código está comprometido y open_basedir tiene un valor «none», esto resultará en más daño.
Reproduje el problema en mi entorno de prueba con «WPTP SMTP plugin» y aparece el siguiente error después de enviar el correo electrónico:
Advertencia de PHP: is_readable (): se aplicó la restricción open_basedir. Archivo (C: Inetpub vhosts plesk888.com httpdocs / wp-content / plugins / C: Inetpub vhosts plesk888.com httpdocs wp-content plugins wp-mail-smtp / language / wp- mail-smtp-en_US.mo) no está dentro de las rutas permitidas: (C: ) en C: Inetpub vhosts plesk888.com httpdocs wp-include l10n.php en línea 584 Del error anterior es Puedo concluir que el camino se duplica, lo cual no es correcto.
Para una investigación más profunda, le sugiero que se comunique con los desarrolladores del plugin «WP Mail SMTP» y obtenga una aclaración sobre la supuesta ruta que se agregará a la guía de PHP. Son expertos en este producto y lo ayudarán a resolver el problema de manera eficiente y en poco tiempo.
Mis mejores deseos, Ingeniero de soporte técnico Ivan Kamnev Plesk
===
Gracias Ramsey
(@ramseyb)
Hace 2 años, 9 meses
Hola Slava,
A continuación se muestran los pasos adicionales necesarios para mitigar la Advertencia de PHP causada por WP Mail SMTP, sin deshabilitarlo (sin configurar ninguno) open_basedir, que es un problema de seguridad. Si puede proporcionarme una guía de open_basedir, sería genial.
Debido a la inconsistencia, la ruta completa al archivo de localización .mo se integra con la ruta al directorio del plugin y, como resultado, se restringe al parámetro PHP open_basedir.
Para resolver el problema, instale el plugin Loco Translate y cree un archivo wp-mail-smtp-en_US.po a través del plugin. Coloque el archivo wp-mail-smtp-en_US.mo en el directorio / languages / plugins /.
Buena suerte resolviendo el problema, Ramsey
Esta respuesta fue modificada hace 2 años, 9 meses por.
(@slaffik)
Hace 2 años, 9 meses
No puedo hacer eso, porque no conozco los detalles de la configuración de su servidor y nunca he trabajado con servidores basados en Windows. Yo solo puedo google (mismo que usted):
https://stackoverflow.com/questions/12546012/open-basedir-restriction-in-effect-but-file-is-in-the-correct-dir
https://stackoverflow.com/questions/12546012/open-basedir-restriction-in-effect-but-file-is-in-the-correct-dir
Registrarse open_basedir
plantillas correctas, comillas, barras (que no deben ser ?) srl.
¿Solucionó tu problema??
0 / 0