linux - error_log par hôte virtuel?

Translate

Sur un serveur Linux exécutant Apache et PHP 5, nous avons plusieurs hôtes virtuels avec des fichiers journaux séparés. On n'arrive pas à séparer le phperror_logentre hôtes virtuels.

Remplacer ce paramètre dans le<Location>duhttpd.confne semble rien faire.

Y a-t-il un moyen d'avoir un PHP séparéerror_logspour chaque hôte virtuel?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Pour régler leApache (pas le PHP) log, le moyen le plus simple de le faire serait de faire:

<VirtualHost IP:Port>
   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log
</VirtualHost>

S'il n'y a pas de "/" de début, il est supposé être relatif.

Page du journal des erreurs Apache

La source
Translate

Si quelqu'un vient chercher, cela devrait ressembler à ceci:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>

Ceci est pour le développement uniquement puisquedisplay_errorest allumé. Vous remarquerez que le journal des erreurs Apache est distinct du journal des erreurs PHP. Les bonnes choses sont dansphp.error.log.

Jetez un oeil ici pour leerror_reportingcléhttp://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

La source
Translate

Je spécifie généralement cela dans un.htaccessfichierorlavhost.confsur le domaine sur lequel je travaille. Ajoutez ceci à l'un de ces fichiers:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
La source
Mat
Translate

Le comportement par défaut est que error_log () s'affiche dans le journal des erreurs Apache. Si cela ne se produit pas, vérifiez vos paramètres php.ini pour la directive error_log - laissez-la non définie pour utiliser le fichier journal Apache pour l'hôte virtuel actuel.

La source
Translate

Ne définissez paserror_logà où votresyslogles choses vont,eg /var/log/apache2, car leurs erreurs seront interceptées parErrorLog. Au lieu de cela, créez unsubdirdans tondossier de projetpour les journaux et fairephp_value error_log "/path/to/project/logs". Cela vaut pour les deux.htaccess fichiers et hôtes virtuels. Assurez-vous également de mettrephp_flag log_errorssur

La source
Translate

Avez-vous essayé d'ajouter lephp_value error_log '/path/to/php_error_logà votre configuration VirtualHost?

La source
Translate

Oui, tu peux essayer,

php_value error_log "/var/log/php_log" 

dans.htaccessou vous pouvez demander aux utilisateurs d'utiliserini_set()au début de leurs scripts s'ils veulent avoir une journalisation.

Une autre option serait d'activer les scripts par défautphp.inidans le dossier avec le script, puis accédez au dossier racine de l'utilisateur / hôte, puis à la racine du serveur, ou quelque chose de similaire. Cela permettrait aux hôtes d'ajouter leur proprephp.inivaleurs et leurs propreserror_logEmplacements.

La source
Venus Lee
Translate
php_value error_log "/var/log/httpd/vhost_php_error_log"

Cela fonctionne pour moi, mais je dois changer l'autorisation du fichier journal.

ou Apache écrira le journal dans sonerror_log.

La source
Translate

Mon Apache avait quelque chose comme ça dans httpd.conf. Modifiez simplement les paramètres ErrorLog et CustomLog

<VirtualHost myvhost:80>
    ServerAdmin [email protected]
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>
La source
David Lee
Translate

Tu pourrais essayer:

    <VirtualHost myvhost:80>
       php_value error_log "/var/log/httpd/vhost_php_error_log"
    </Virtual Host>

Mais je ne sais pas si cela fonctionnera. J'ai essayé sur mes sites sans succès.

La source
Translate

Créez un hôte virtuel simple:

exemple de nom d'hôte: -thecontrolist.localhost

  1. C: \ Windows \ System32 \ drivers \ etc

    127.0.0.1 thecontrolist.localhostdans le fichier hosts

  2. C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf

    <VirtualHost *>
      ServerName thecontrolist.localhost
      ServerAlias thecontrolist.localhost
      DocumentRoot "/xampp/htdocs/thecontrolist"
      <Directory "/xampp/htdocs/thecontrolist">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
      </Directory>
    </VirtualHost>
    
  3. N'oubliez pas de redémarrer votre apache. pour plusvérifierce lien

La source