Como chamar php ou apache para renderizar uma página a partir da linha de comando?

0

Estou executando o apache2 como um servidor da web. Eu tenho um arquivo local, example.php, que eu preciso ver como processado pelo apache. A maneira mais fácil de fazer isso seria mover ou vincular o arquivo à pasta que o apache expõe como parte do meu site, e então eu poderia obter a página com curl ou wget.

No entanto, isso não é possível na minha situação - não consigo escrever no diretório que o apache está procurando, o que significa que não consigo acessá-lo pelo método usual da porta 80. Existe uma maneira que eu possa chamar o apache diretamente, dando-lhe um arquivo php para gerar o resultado de?

Estou procurando um comando como $ apache ./example.php > output.html , isso é possível?

Estou perguntando sobre o apache, porque embora eu realmente precise dele para rodar o php, o php-cli não é utilizável nestes casos - apache php e cli php tem acesso a diferentes áreas da memória, e eu preciso do resultados para coincidir com os retornados pelo apache.

    
por Benubird 18.04.2013 / 18:01

1 resposta

0

Você pode simplesmente adicioná-lo ao Apache como um novo host virtual?

A maneira mais simples de fazer com que algo se comporte como um site é tratá-lo como um site. Se você pudesse apenas hospedar isso como um site local (por exemplo, apenas na interface 127.0.0.1) e wget, provavelmente seria a forma mais barata e mais limpa de lidar com isso.

Execute-o como um script com o comando php

Você pode executar php example.php > output.html e isso deve funcionar para a maioria dos scripts simples.

Observe que isso usará a configuração do php-cli em vez das configurações mod_php , php-fpm , php-cgi , etc. Isso pode ser importante se você tiver uma configuração engraçada.

Editar: vi esta pergunta ontem que pode ser útil. É destinado a wordpress, mas a mesma lógica deve ser aplicada para a maioria das coisas onde você precisa falsificar uma solicitação real. Você configura uma carga de variáveis $_SERVER do PHP para que o seu script (seja o que for) possa ser executado corretamente… E então incluir seu script.

Use o servidor interno do PHP (requer PHP 5.4 +)

Se você cd em seu diretório e executar php -S localhost:9000 , inicie um servidor local na porta 9000 que hospedará seu site. Isto é apenas para testar coisas como esta e nunca deve ser exposto à internet .

Isso permite que você faça uma pesquisa tradicional em wget :

wget -O output.html http://localhost:9000/example.php

Da minha resposta anterior (agora excluída), se você precisar falsificar o nome do domínio, wget permitirá que você passe o host para dentro. Isso será útil se o PHP estiver fazendo pesquisas nas variáveis do servidor.

wget -O output.html --header "Host: example.com" http://localhost:9000/example.php
    
por Oli 18.04.2013 / 18:20