apache obtém o valor da variável de ambiente

1

Eu gostaria de obter o valor de uma variável de ambiente e atribuí-la a outra variável no Apache.

Por exemplo, obtenha o valor de $_SERVER['REMOTE_ADDR'] atribuí-lo a $_SERVER['USER-IP'] e substituir $_SERVnER['REMOTE_ADDR'] a 127.0.0.1

Estou preso ao obter o valor de REMOTE_ADDR

<IfDefine !USER-IP>
  SetEnv USER-IP %{REMOTE_ADDR}
  SetEnv REMOTE_ADDR '127.0.0.1'
</IfDefine>
    
por MontrealDevOne 05.02.2018 / 23:05

1 resposta

2

Olhando para os docs, o $_SERVER['REMOTE_ADDR'] var não é estritamente uma variável de ambiente, mas uma variável meta de requisição cgi fornecida pelo servidor web para o contexto cgi; link

Meta-variables contain data about the request passed from the server to the script

  meta-variable-name = "AUTH_TYPE" | "CONTENT_LENGTH" |
                       "CONTENT_TYPE" | "GATEWAY_INTERFACE" |
                       "PATH_INFO" | "PATH_TRANSLATED" |
                       "QUERY_STRING" | "REMOTE_ADDR" |
                       "REMOTE_HOST" | "REMOTE_IDENT" |
                       "REMOTE_USER" | "REQUEST_METHOD" |
                       "SCRIPT_NAME" | "SERVER_NAME" |
                       "SERVER_PORT" | "SERVER_PROTOCOL" |
                       "SERVER_SOFTWARE" | scheme |

Os documentos do apache indicam que essas variáveis não podem ser sobrepostas usando as diretivas padrão SetEnv style

Some Caveats

It is not possible to override or change the standard CGI variables using the environment manipulation directives.
https://httpd.apache.org/docs/2.4/env.html#setting

Então, acho improvável que você possa definir facilmente esses valores no conf apache

Configurando variáveis de ambiente

(de variáveis de servidor existentes)

<Directory /var/www/server111>
    Order allow,deny
    Allow from all

    # This syntax works, as you can see from the image below...
    RewriteEngine On
    RewriteRule .* - [E=USER-IP:%{REMOTE_ADDR}]

    # none of these syntax seem to work
    SetEnv USERIP %{REMOTE_ADDR}
    SetEnv USERIP2 blah
    SetEnv USERIP3 ${REMOTE_ADDR}
    SetEnv USERIP6 %{ENV:REMOTE_ADDR}
</Directory> 

    
por 06.02.2018 / 02:52