Un utilisateur a demandé 👇
Salut,
WP Mail SMTP comporte l’avertissement PHP suivant. Il semble y avoir un problème avec votre code. La seule façon de désactiver cette erreur est de définir open_basedir sur none (désactiver) ou d’installer un plug-in SMTP différent, qui ne provoque pas cette erreur. WP envoie du courrier SMTP sans problème même avec un avertissement PHP
IIS 10 / Windows Server 2016 / WP 4.9.1 / PHP 7.1.13 / WP Mail SMTP 1.2.2
Avertissement PHP : is_readable() : restriction open_basedir appliquée. Fichier (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) n’est pas dans les chemins autorisés : (C: /Inetpub/vhosts/domain.com ; C: Windows Temp ) dans C: Inetpub vhosts domain.com staging.domain.com wp includes l10n.php online 584
Bonne chance, malheureusement, je ne peux pas utiliser WP Mail SMTP ou le recommander à mes clients car définir open_basedir sur none (désactiver) est un problème de sécurité.
(@slaffik)
il y a 2 ans, 10 mois
Salut @ramseyb
Cela est dû à l’utilisation de la fonction PHP par défaut. is_readable()
pour vérifier que le fichier Y est lisible avant d’essayer de le lire. file_exists()
son utilisation peut résoudre ce problème, mais cela ne garantit pas que le fichier sera lisible.
Pour votre configuration particulière, cela signifie que vous avez des valeurs erronées open_basedir
valeur.
Je ne dis pas de le désactiver, je dis de lui donner les bonnes valeurs.
De plus, je vois que l’erreur est en fait dans WordPress et non dans un plugin. Regarde ça:
en C : Inetpub vhosts domaine.com staging.domain.com wp inclut l10n.php en ligne 584
C’est donc définitivement un problème de configuration du serveur, pas le plugin lui-même.
Aussi votre fichier de traduction personnalisé (wp-mail-smtp-en_US.mo
) y est mieux situé /wp-content/languages/plugins/
ainsi la prochaine mise à jour du plugin WP Mail SMTP ne supprimera pas vos fichiers.
(@ramseyb)
il y a 2 ans, 10 mois
Merci pour la réponse Slav,
J’ai testé WP Mail SMTP sur quelques autres sites Web et il exécute les mêmes alertes PHP dès qu’il est activé. Cela ne se produit pas avec d’autres plugins ou plugins SMTP alternatifs.
Il peut y avoir eu une corrélation entre le problème et Plesk Onyx WordPress Toolkit car tous les sites Web ont été installés avec cet outil. Le problème semble être une restriction d’extension de fichier .mo.
Chemin… wp inclut l10n.php à la ligne 584
Indicatif en ligne 584if ( !is_readable( $mofile ) ) return false;
===
De plus, wp-mail-smtp-en_US.mo n’existe pas dans le chemin spécifique ou lorsque je télécharge le package SMTP WTP Mail directement à partir de https://wordpress.org/plugins/wp-mail-smtp/
Chemin… plugins wp-content wp-mail-smtp/language/wp-mail-smtp-en_US.mo
===
J’espère que vous pourrez résoudre cette solution, le plugin fonctionne très bien en dehors de ce problème.
Cette réponse a été modifiée il y a 2 ans et 10 mois par.
(@slaffik)
il y a 2 ans, 10 mois
Il n’y a rien à corriger dans un plugin. Le problème est dans la configuration du serveur. L’erreur n’apparaît PAS dans un fichier de plugin, mais je wp-includesl10n.php
porter is_readable()
une fonction. Tu ferais mieux de faire les règles open_basedir
configurer entrer php.ini
.
Cela ne se produit pas avec d’autres plugins ou plugins SMTP alternatifs.
C’est simplement parce qu’ils téléchargent les fichiers de traduction manuellement, en utilisant les techniques de chargement automatique intégrées de WordPress pour la traduction.
Vous pouvez également supprimer en_US
localité de votre wp-config.php
fichier (ou domaine administratif). WordPress lui-même utilise déjà la version américaine de l’anglais, il n’y a donc aucune valeur réelle dans la langue de ces sites.
(@ramseyb)
il y a 2 ans, 10 mois
Merci pour le casse-tête, je vais devoir rechercher la question dans Plesk car il me dit qu’il s’agit d’une configuration manquante à l’échelle du serveur.
(@ramseyb)
il y a 2 ans, 9 mois
Salut Esclave,
Vous trouverez ci-dessous la réponse de Plesk, que voudriez-vous ajouter au guide open_basedir pour atténuer l’avertissement PHP et résoudre ce problème ? Comme indiqué, la désactivation de open_basedir (défini sur aucun) n’est pas une option.
=== Répondre Plesk ===
Oui, si l’option open_basedir est définie sur “none”, les scripts PHP ont accès à tous les répertoires du serveur.
De plus, comme mon collègue l’a mentionné, si le code est compromis et que open_basedir a une valeur de “none”, cela entraînera plus de dégâts.
J’ai reproduit le problème dans mon environnement de test avec “WPTP SMTP plugin” et j’obtiens l’erreur suivante après l’envoi du mail :
Avertissement PHP : is_readable() : restriction open_basedir appliquée. Le fichier (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) n’est pas à l’intérieur des chemins autorisés: (C:) à C: Inetpub vhosts plesk888.com httpdocs wp-include l10n.php à la ligne 584 De l’erreur ci-dessus, je peux conclure que le chemin est dupliqué, ce qui n’est pas correct.
Pour une enquête plus approfondie, je vous suggère de contacter les développeurs du plugin “WP Mail SMTP” et d’obtenir des éclaircissements sur la route supposée être ajoutée au guide PHP. Ils sont experts dans ce produit et vous aideront à résoudre le problème efficacement et en peu de temps.
Cordialement, Ingénieur du support technique Ivan Kamnev Plesk
===
merci ramsey
(@ramseyb)
il y a 2 ans, 9 mois
Salut Esclave,
Vous trouverez ci-dessous les étapes supplémentaires nécessaires pour atténuer l’avertissement PHP causé par WP Mail SMTP, sans désactiver (sans en configurer aucun) open_basedir, qui est un problème de sécurité. Si vous pouviez me fournir un guide pour open_basedir, ce serait formidable.
En raison d’incohérences, le chemin d’accès complet au fichier de localisation .mo est intégré au chemin d’accès au répertoire du plug-in et, par conséquent, est limité au paramètre PHP open_basedir.
Pour résoudre le problème, installez le plugin Loco Translate et créez un fichier wp-mail-smtp-en_US.po via le plugin. Placez le fichier wp-mail-smtp-en_US.mo dans le répertoire /languages/plugins/.
Bonne chance pour résoudre le problème, Ramsey.
Cette réponse a été modifiée il y a 2 ans et 9 mois par.
(@slaffik)
il y a 2 ans, 9 mois
Je ne peux pas faire cela, car je ne connais pas les détails de la configuration de votre serveur et je n’ai jamais travaillé avec des serveurs Windows. Je ne peux que google (comme vous):
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
Enregistrement open_basedir
modèles corrects, guillemets, barres obliques (qui ne doivent pas être ?) srl.
Cela a-t-il résolu votre problème ?
Was this helpful?
0 / 0