Imaginez un couple de sites-enabled
Disponible à partir de /etc/Apache2/sites-available
. (Seules les distributions basées dans Debian fonctionnent comme ceci.)
Est-il possible de muet warning
messages à partir de scripts PHP de un site spécifique , sans toucher la réelle htdocs
?
Normalement, il y a quelques solutions pour atteindre quelque chose de connexe:
error_reporting()
Directive E.G. error_reporting(E_ERROR);
aux scripts exécutés..htaccess
Fichiers comme: php_flag display_errors off
Utilisez ini_set
Scripts à l'intérieur:
ini_set('display_errors', 'Off');
ini_set('display_startup_errors', 'Off');
error_reporting(0);
Prepend @
Pour des fonctions qui lancent des avertissements ou des erreurs.
php.ini
Pour dire réellementerror_reporting = E_ALL ^ E_WARNING
display_errors = 1
Toutefois, ces personnes méchantes touchant les HTDOC ou avoir le changement appliquée à l'échelle mondiale. Imaginez que le htdocs
sont montés en lecture seule. Comment puis-je supprimer des avertissements (ou des avis) uniquement pour certains sites?
Je suppose que Debian/Ubuntu a a2ensite
Configurations spécifiques pour une raison et j'espère que je peux modifier ceux-ci. Il y a une directive log_level
Dans l'exemple de configuration de "site disponible", mais cela gère la quantité de messages enregistrée. Pas les messages émis par les scripts PHP.
Ajout manuellement des sections dans php.ini
Ou Apache2.conf
Ou httpd.conf
Fonctionnera également. Si c'est possible.
Voir également:
Si vous avez accès aux configurations Apache Vhost, vous pouvez également utiliser PHP_FLAG Directives dans un hôte virtuel dans le répertoire disponible sur les sites. De cette façon, ils ne sont appliqués que sur ce Vhost.
Ajoutez quelque chose comme ça dans votre hôte virtuel:
<IfModule mod_php5.c>
php_admin_flag display_errors off
</IfModule>
Edit:
Si vous ne voulez que des erreurs réelles affichées, vous pouvez utiliser la directive PHP error_reporting
Avec une valeur entière décrivant les types de niveaux d'erreur que vous souhaitez afficher:
<IfModule mod_php5.c>
php_admin_flag display_errors on
php_admin_value error_reporting 22517
</IfModule>
Cela équivaut à un cadre de
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED;
en php.ini. Plus de valeurs possibles par exemple ici:
Calculateur de valeur de rapport d'erreur:
http://www.bx.com.au/Tools/ultimate-php-error-reporting-wizard
J'ai ajouté :
<IfModule mod_php5.c>
php_admin_flag display_errors on
php_admin_value error_reporting 30711
</IfModule>
to/etc/apache2/sites compatible/travail et cela fonctionne simplement bien.
Oui, je sais que je devrais résoudre ces avis, mais je travaille sur un ancien script et je devrai revenir à cela, pour le moment, cela a résolu mon problème et était ce que l'OP cherchait. J'espère que cela aide quelqu'un.
Il n'y a aucun moyen de le faire sans .htaccess ou d'appliquer la configuration globale. Apache ne peut pas "voir" des fichiers en dehors de son dossier racine (HTDOCS) et de fichiers .htaccess ne fonctionnent que lorsque dans le dossier du site. php_flag ne fonctionne pas en dehors de .htaccess, non plus.
Donc, fondamentalement, il n'est pas possible de faire sur un site par site sans certaines modification ou un fichier .htaccess.