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-cgi

5 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.1

Agora 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 install

Agora 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.conf

Devemos 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 restart

6 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:

| ServerName www.example.com ServerAdmin [email protected] DocumentRoot /var/www |

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:

| ServerName www.example.com ServerAdmin [email protected] DocumentRoot /var/www suPHP_Engine on suPHP_UserGroup testuser test AddHandler x-httpd-php .php .php3 .php4 .php5 suPHP_AddHandler x-httpd-php |

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 restart

Agora 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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.