3

I want to set an env variable that has the DOC_ROOT info but nothing

SetEnv PROJECT_BASE %{ENV:DOC_ROOT}
SetEnv LAYOUT_HOME  %{ENV:PROJECT_BASE}"/html/app/wordpress/"

and then be able to access LAYOUT_HOME in php

How can I do this? The above is not working for me...

The problem is the base path is different on diff environments =/

qodeninja
  • 2,723
  • 10
  • 31
  • 33

2 Answers2

4

SetEnv is a directive for mod_env, and mod_env doesn't support %{ENV:var} -- only mod_rewrite does this. Don't forget that apache is modular, and modules define their own directives. You can do this with mod_rewrite like this:

 RewriteRule .* -  [E=PROJECT_BASE:%{ENV:DOC_ROOT}]
  ... etc

I must ask, what are you really trying to do? There must be a better way. I can't think of any reason to define your LAYOUT_HOME variable in apache instead of php.

beans
  • 1,550
  • 13
  • 16
  • Thanks. You're right PHP is a good place to do this. Just bending things to see what can and cant be done.. should or should not be done is the next step =] – qodeninja Feb 18 '11 at 00:40
  • +1 for the suggestion to set environment variables in a RewriteRule. I was having module execution order with SetEnv and RewriteCond and this was just the thing to get the results I wanted. – lambacck Mar 04 '11 at 14:51
0

Use getenv, doc here.

It will get any Environment Variable, just use it to get the one you set on Apache.

coredump
  • 12,573
  • 2
  • 34
  • 53