Executando o arquivo PHP fora do documentroot (pasta cgi-bin)
Eu estou trabalhando com um colega para configurar seu ambiente local em um MAC no XAMPP, no windows meu vhost se parece com o abaixo.
Quando eu acesso uma URL comohttp: //domain.local/cgi-bin/handler.php o servidor web processa o PHP corretamente, mas no seu nós recebemos um erro do servidor 500 e esta mensagem ...
<code>The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: </code>
Nós tentamos mudar o nome da pasta cgi-bin para outra coisa, como eu notei que havia outro alias no httpd.conf, mas isso não teve efeito ... então parece-me que o problema está relacionado às permissões.
Acreditamos que o alias é configurado ok como acessarhttp: //domain.local/cgi-bin/filenothere.php que não existe gera um 404 como esperado, nenhum arquivo .html / .pl falha na execução.
As permissões que existem na pasta cgi-bin são ...
rwxrwxrwx dave staff
e é de propriedade do usuário e do grupo ....
dave staff
Vhost
<code><VirtualHost *:80> ServerAdmin [email protected] ServerName www.domain.local ServerAlias domain.local ServerAlias api.domain.local # Indexes + Directory Root. DirectoryIndex index.php DocumentRoot E:/home/www/www.domain.co.uk/htdocs/ # CGI Directory ScriptAlias /cgi-bin/ E:/home/www/www.domain.co.uk/cgi-bin/ <Location /cgi-bin> Options +ExecCGI </Location> # Logfiles ErrorLog E:/home/www/www.domain.co.uk/logs/error.log CustomLog E:/home/www/www.domain.co.uk/logs/access.log combined </VirtualHost> </code>
Alguma idéia do que está causando esse arquivo PHP para não ser executado?
ATUALIZAR Tentei adicionar um cabeçalho para dizer que o conteúdo é PHP para o início do arquivo PHP e isso agora simplesmente gera o código PHP.
É como se qualquer caminho especificado como Alias estivesse acessível, mas o servidor não soubesse como executar o conteúdo, isso é para HTML e PHP