Configuração PHP · 3 min read · Dec 16, 2025
Como Configurar suPHP Com PHP4 E PHP5 - Página 2
4 Instalar PHP4-CGI
Primeiro, descreverei como usar suPHP com PHP4, depois mais adiante neste tutorial como usá-lo com PHP5, e no final como usá-lo com ambos instalados ao mesmo tempo.
Como mencionei anteriormente, o suPHP precisa do PHP como CGI em vez do módulo Apache. Portanto, instalamos o pacote php4-cgi assim:
apt-get install php4-cgi5 Instalar suPHP
Em seguida, baixamos e descompactamos as fontes do suPHP. No momento da escrita deste documento, a versão atual era 0.6.1:
cd /tmp
wget http://www.suphp.org/download/suphp-0.6.1.tar.gz
tar xvfz suphp-0.6.1.tar.gz
cd suphp-0.6.1Agora devemos editar src/apache2/mod_suphp.c porque, caso contrário, você receberá um erro como este:
| Forçando recarregamento do servidor web: Apache2Erro de sintaxe na linha 49 de /etc/apache2/sites-enabled/000-default: suPHP_AddHandler não permitido aqui |
quando você colocar algumas diretivas suPHP em seus vhosts Apache. Abra o arquivo e nas linhas 316 e 317 (os números das linhas podem diferir se você usar uma versão do suPHP diferente de 0.6.1) você encontrará a string ACCESS_CONF. Substitua-a por RSRC_CONF | ACCESS_CONF para que as duas linhas fiquem assim:
vi src/apache2/mod_suphp.c| AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Informa ao mod_suphp para lidar com esses tipos MIME"), AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Informa ao mod_suphp para não lidar com esses tipos MIME"), |
(Se você preferir editar o arquivo em seu sistema Windows, certifique-se de salvá-lo com quebras de linha Unix em vez de quebras de linha do Windows antes de transferir o arquivo de volta para seu sistema Linux!)
Em seguida, compilamos e instalamos o suPHP:
./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2
make
make installAgora precisamos criar o arquivo de configuração /etc/suphp.conf. Podemos fazer isso simplesmente copiando o modelo que vem com as fontes:
cp /tmp/suphp-0.6.1/doc/suphp.conf-example /etc/suphp.confDevemos fazer algumas alterações em /etc/suphp.conf. Defina o valor de webserver_user como www-data (este é o nome de usuário do usuário Apache no pacote padrão do Apache do Debian), e para x-httpd-php devemos especificar nosso binário php4-cgi que é /usr/bin/php4-cgi, então o arquivo final fica assim:
vi /etc/suphp.conf| [global] ;Caminho para o arquivo de log logfile=/var/log/suphp.log ;Nível de log loglevel=info ;Usuário que o Apache está executando webserver_user=www-data ;Caminho onde todos os scripts devem estar docroot=/ ;Caminho para chroot() antes de executar o script ;chroot=/mychroot ; Opções de segurança allow_file_group_writeable=false allow_file_others_writeable=false allow_directory_group_writeable=false allow_directory_others_writeable=false ;Verifique se o script está dentro do DOCUMENT_ROOT check_vhost_docroot=true ;Enviar mensagens de erro menores para o navegador errors_to_browser=false ;Variável de ambiente PATH env_path=/bin:/usr/bin ;Umask a ser definida, especifique em notação octal umask=0077 ; UID mínimo min_uid=100 ; GID mínimo min_gid=100 [handlers] ;Manipulador para scripts php x-httpd-php=php:/usr/bin/php4-cgi ;Manipulador para scripts CGI x-suphp-cgi=execute:!self |
Em seguida, temos que adicionar o módulo suPHP à configuração do Apache. Adicione a seguinte linha a /etc/apache2/httpd.conf:
vi /etc/apache2/httpd.conf| LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so |
Em seguida, reinicie o Apache:
/etc/init.d/apache2 restart6 Configuração do Apache
Neste capítulo, assumo que temos um site www.example.com no endereço IP 1.2.3.4 com o diretório raiz /var/www e a seguinte configuração de vhost:
| |
Para habilitar o suPHP para o vhost www.example.com e permitir que ele execute scripts PHP como o usuário testuser e o grupo test, modificamos o vhost da seguinte forma:
| |
AddHandler x-httpd-php refere-se a suPHP_AddHandler x-httpd-php que então se refere à linha x-httpd-php em /etc/suphp.conf, o que significa que scripts com as extensões .php, .php3, .php4 e .php5 são interpretados por /usr/bin/php4-cgi.
Reinicie o Apache:
/etc/init.d/apache2 restartAgora criamos um simples script phpinfo() e o acessamos em nosso navegador:
vi /var/www/info.php| |
Vá para http://www.example.com/info.php em seu navegador, e você deve ver que o PHP4 está funcionando:

Se você encontrar problemas, verifique /var/log/suphp.log e /var/log/apache2/error.log em busca de erros. Na maioria das vezes, você pode corrigi-los alterando a opção apropriada em /etc/suphp.conf ou alterando as permissões de arquivos/diretórios.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.