Versão resumida:
Supondo que o URL solicitado era link , com a configuração do seu apache, um executável do php-cgi deve ser colocado em / usr / bin pasta e deve ser executável pelo usuário do Apache. Além disso, o script test.php deve estar presente em / var / www / html
Versão longa / completa:
Com base na configuração que você relatou, ao solicitar o URL link , entre muitas outras coisas, seu Apache:
-
veja que é um pedido que termina em ".php" e, portanto, devido à diretiva AddHandler e à Ação relacionada, decida que precisa iniciar um aplicativo CGI "/ cgi-bin / php-cgi"; / p>
-
como para a diretiva ScriptAlias, decida que o aplicativo CGI "/ cgi-bin / php-cgi" é mapeado, dentro do sistema de arquivos subjacente, para o "/ usr / bin / php-cgi" completo nome do caminho. Daí ...
-
O Apache lançará "/ usr / bin / php-cgi" (que deve existir e ser executável pelo Apache), tomando o cuidado de adicionar referência ao script real a ser executado (por PHP; no seu caso " test.php ") definindo várias variáveis de ambiente (PATH_INFO, PATH_TRANSLATED, QUERY_STRING, SCRIPT_NAME e outras).
Devido ao acima exposto, supondo que exista "/ usr / bin / php-cgi" em seu sistema de arquivos e é executável pelo seu Apache:
- seguintes variáveis de ambiente são definidas (pelo Apache):
SCRIPT_NAME: /cgi-bin/php-cgi
PATH_INFO: /test.php
PATH_TRANSLATED: /var/www/html/test.php
-
com o ambiente acima, / usr / bin / php-cgi é lançado;
-
uma vez iniciado, o php-cgi irá procurar o script para executar, conforme especificado pela variável de ambiente PATH_TRANSLATED;
-
O php-cgi tentará abrir e ler "/var/www/html/test.php" e ...
-
execute-o.
Como seu Apache está pesquisando /cgi-bin/php-cgi/test.php, eu suspeito que ele não esteja reconhecendo o executável do php-cgi dentro da pasta / usr / bin.
Sugiro verificar novamente toda a configuração, garantindo que:
- php-cgi é um executável em / usr / bin. Por favor, note que o Ubuntu comum usa um binário / usr / bin / php5-cgi (com um "5" adicionado);
- seus scripts PHP são armazenados em / var / www / html
- seu URL está no formato: link
- em caso de mais problemas, verifique seu arquivo de log, comumente localizado em /var/log/apache/error.log
Uma nota final
Eu strongmente discordo em ter todo o / usr / bin acessível para aplicativos CGI: por favor, considere armazenar seus CGIs em outro lugar (/ var / www / cgi-bin ou / usr / lib / cgi bin ou qualquer outro), especialmente se o seu for um servidor web "público".