Serveur Apache — plusieurs répertoires, les différents journaux d'erreur
J'ai deux répertoires dans /var/www (par exemple, /var/www/app1 et /var/www/app2) dont les journaux d'erreurs, je veux envoyé à différents fichiers. Les deux sont sous le même domaine, j'ai donc pense que je ne peux pas les mettre sous les différents serveurs virtuels. Ainsi, par exemple, je voudrais avoir accès comme:
Je suis tombé sur cette page:
Générer des journaux d'accès pour les différents sous-répertoires dans Apache
dont la solution fonctionne parfaitement pour les journaux d'accès. Cependant, le "env" argument ne semble pas fonctionner avec la directive ErrorLog.
Avant cette "découverte", je travaillais sur ce qui semble erroné:
<VirtualHost *:80>
ServerAdmin ray@localhost
DocumentRoot /var/www/app1
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/app1/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/app1/access.log combined
</VirtualHost>
Je suis un peu perdu sur ce que je devrais faire. C'est, si il ya un moyen d'obtenir ErrorLog de travail ou si je dois continuer à essayer avec la configuration d'un hôte virtuel pour chaque répertoire. Toute aide serait appréciée! Merci!!!!
- J'ai la même question, je suis à la recherche de solution et je pense que la création d'un virtualhost par chaque dossier et de l'utilisation de proxy interne peut-être que ça fonctionne, c'est qu'une théorie 😀 par exemple: PublicDomain.com/folder affiche le contenu de dossier.localhost
Vous devez vous connecter pour publier un commentaire.
Pourquoi avez-vous mis
Directory
options pour/
dans leVirtualHost
contexte? Utilisation<Directory /var/www/app1>
au lieu de<Directory />
En raison de la Apache directive ErrorLog docs son contexte est
server config, virtual host
- ce qui signifie qu'il n'est possible de définir Journal des erreurs pour l'ensemble du serveur ou pour unVirtalHost
, pas pour unDirectory
. Donc, si vous voulez envoyer des différents logs dans des fichiers différents, essayez d'utiliserSetEnvIf
pour définir une variable Env. Selon le répertoire où vous êtes, il doit être quelque chose commeSetEnvIf Request_URI ^\/a1\/a1
etSetEnvIf Request_URI ^\/a2\/!a1
. Puis écrire des journaux en fonction de laa1
variable d'environnement.Enfin, je l'ai fait, d'abord créer des sous-domaines par dossier et avec les directives proxypass passer le sous-domaine de contenu.
Activer apache mods:
/etc/hosts
/etc/apache2/sites-available/default.conf
/etc/apache2/sites-available/un.conf
/etc/apache2/sites-available/b.conf
Permettre à des sites de:
Redémarrer apache: