I have two directories in /var/www (say, /var/www/app1 and /var/www/app2) whose error logs I want sent to different files. Both are under the same domain, so I think that I can't put them under different virtual hosts. So, for example, I would access them as:
I came across this page:
Generate access logs for different subdirectories in Apache
whose solution works perfectly for the access logs. However, the "env" argument doesn't seem to work with the ErrorLog directive.
Before this "discovery", I was working on this, which seems wrong:
<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>
I'm somewhat lost about what I should be doing. That is, if there is some way to get ErrorLog to work or if I should keep trying with configuring a virtual host for each directory. Any help would be appreciated! Thank you!
Why do you set
Directory
options for/
in theVirtualHost
context? Use<Directory /var/www/app1>
instead of<Directory />
Due to the Apache ErrorLog directive docs its context is
server config, virtual host
- which means that it's only possible to define ErrorLog for the whole server or for aVirtalHost
, not for aDirectory
. So if you want to send different logs to different files, try to useSetEnvIf
to set an Env variable. Depeding on the directory where you are, it should be something likeSetEnvIf Request_URI ^\/a1\/ a1
andSetEnvIf Request_URI ^\/a2\/ !a1
. Then write logs depending on thea1
environment variable.Finally I did it, first create internal subdomains per folder and with proxypass pass the subdomain content.
Enable apache mods:
/etc/hosts
/etc/apache2/sites-available/default.conf
/etc/apache2/sites-available/a.conf
/etc/apache2/sites-available/b.conf
Enable sites:
Restart apache:
Set custom ID for every Directory and you can separate logs by directories like this: