There was a problem loading the comments.

Qual a diferença entre PHP em modo CGI e PHP como um módulo do Apache?

Support Portal  »  Knowledgebase  »  Viewing Article

  Print

Diferença entre PHP em modo CGI e PHP como um módulo do Apache

Existem dois tipos diferentes de se executar scripts PHP na IndicaHost:

 

  • Com o PHP sendo um módulo do Apache;
  • Com o PHP em modo CGI;


A diferença entre o PHP como modo CGI ou como módulo do Apache é que no módulo Apache algumas funções são desabilitadas por questões de segurança na IndicaHost, porém, as mesmas podem ser utilizadas caso o script esteja sendo executado em modo CGI, desde que não dependam diretamente de uma diretiva. Este é o caso da função dl(), que depende da diretiva enable_dl com o valor ON (o padrão da IndicaHost é OFF para módulo do Apache e modo CGI ), fazendo com que as funções apenas tenham efeito em tempo de execução.

Planos compartilhados

Os planos de hospedagem compartilhados (Expressa, Profissional I, Profissional II, Profissional III e Profissional Premium) possuem instalados o PHP em modo CGI apenas.

Quando um arquivo PHP é executado em modo CGI, o owner em tempo de execução é o seu login, logo, caso o script crie um arquivo, ele possuirá o ID do seu site. Considere resultado um arquivo enviado por upload ou criado com fopen(), por exemplo. Caso o script rode como módulo do Apache e crie um arquivo, este terá o ID ’webserver’ que é o usuário com que o servidor Apache está rodando. Verifique se as permissões do diretório onde este arquivo é criado estão corretas (devem ser 777).

Não indicamos a execução específica de nenhuma modalidade: tudo dependerá de sua estrutura e de seus aplicativos, porém, como já mencionado, ambas são suportadas nos servidores da IndicaHost.

Alteração de diretivas

Em modo CGI, a alteração de diretivas é possível via função ini_set(), porém as alterações que forem realizadas apenas terão efeito durante o tempo de execução do arquivo PHP, sem modificação no padrão do servidor.
Obs: A alteração das diretivas do PHP em servidores compartilhados é feita seguindo os passos contidos em Como alterar as diretivas do PHP.

Cloud e servidores dedicados

O PHP em modo Apache, que pode ser disponibilizado somente em planos Cloud Server, VPS e Servidores Dedicados, também aceitam a execução de scripts PHP em modo CGI, e somente nestes planos o PHP pode ser instalado no contexto global tanto como um módulo do Apache como em modo CGI, dependendo de sua necessidade.

Alteração de diretivas

Caso precise alterar algo em suas diretivas em modo Apache utilize está pagina de ajuda: PHP - Diretivas, como alterar ou entre em contato com o nosso Atendimento informando a diretiva e o valor que deve ser alterado para que seja feita uma avaliação.

PHP como módulo Apache executando scripts em modo CGI

Caso esteja usando o PHP como módulo do Apache e necessite executar seus scripts em modo CGI, basta seguir os passos abaixo:
Obs: Lembrando que o procedimento a seguir não é necessário ser efetuado nas hospedagens compartilhadas da IndicaHost.


->Para um melhor controle, o arquivo pode possuir a extensão ’.cgi’.

-> A primeira linha do script (antes de <?php) deve ser o caminho do executável PHP: #!/usr/local/bin/php

-> Envie o arquivo ao diretório ~/public_html/cgi-local

-> Configure permissão 755 via SSH no diretório e no arquivo

chmod 755 ~/public_html/cgi-local
chmod 755 ~/public_html/cgi-local/ARQUIVO.cgi

-> O arquivo ARQUIVO.cgi não pode possuir formato DOS (tipo de formato quando se editam arquivos no Windows). Para alterá-la, você deve abrir o arquivo com o editor "vi" de seu SSH usando os comandos abaixo:

 

vim ARQUIVO.php
:set fileformat=unix
:wq!


Observação: Todos os comandos devem ser digitados em minúsculo (se o nome do arquivo possui caracteres em maiúsculo, a sua digitação deve ser igual ao nome do arquivo levando em consideração letras maiúsculas e minúsculas), caso contrário, o comando não será executado com êxito.


Share via
Did you find this article useful?  

Related Articles


Comments

Add Comment

Replying to  

© Dataloft