Estando ainda como chroot. Pare o Apache:
# /opt/apache2/bin/apachectl stop
Se não der mensagem de retorno, insista e execute o comando de novo até aparecer, mas não é necessário:
httpd (no pid file) not running
Instalando o PEAR:
# aptitude install php-pear
Criando o diretório de instalação do PHP:
# mkdir /opt/php
Entrando no diretório de instalação padrão do Debian:
# cd /usr/src
Faça o download do PHP 5:
# wget -O php-5.6.2.tar.gz http://php.net/get/php-5.6.2.tar.gz/from/this/mirror
Descompacte:
# tar -xzvf php-5.6.2.tar.gz
Instalando os pacotes necessários para a configuração de alguns módulos do PHP 5.
Abra o terminal como root:
# aptitude install libicu-dev
# aptitude install libjpeg8-dev libpng12-dev libxslt1-dev
# cd /usr/src/php-5.6.2
# ./configure --help #Para ver as opções de configurações.
Configurando o PHP 5
Caso tu optou em não instalar o systemd, retire a opção
--with-fpm-systemd, abaixo:
# ./configure --prefix=/opt/php --with-apxs2=/opt/apache2/bin/apxs --with-pgsql=/usr --with-pdo-pgsql=/usr --with-xsl=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --enable-mbstring --with-pcre-dir --with-pear --with-tsrm-pthreads --with-fpm-systemd --enable-ftp --enable-exif --enable-intl --enable-opcache --enable-pdo
Deverá terminar:
Thank you for using PHP.
E os config.status.
# make
# make test # Isso demora uns 20 minutos.
Terminará:
You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: Y
E digite seu e-mail.
# make install #Isso é rápido.
Em caso de erro em alguma etapa, execute:
make clean, estando dentro de
php-5.6.2, apague e recrie a pasta
/opt/php e refaça a operação.
Se futuramente decidir mudar as opções de seu
./configure depois da instalação, somente repita os últimos 4 passos (
./configure,
make,
make test e
make install) e depois reinicie o Apache.
Copiando o php.ini:
# cp php.ini-production /opt/php/php.ini
Qualquer alteração a partir de agora, faça no arquivo
/opt/php/php.ini e depois reinicie o Apache. Atente se for PHP para desenvolvimento ou produção, e copie o arquivo certo para teu caso (
development ou
production).
Vejamos o que diz o próprio PHP:
O PHP vem com dois arquivos INI. Um é recomendado para ser usado em ambientes de produção e outro é recomendado para ser utilizado em ambientes de desenvolvimento.
php.ini-production - contém configurações que possuem segurança, desempenho e melhores práticas em seu núcleo. Mas lembre-se, estas definições podem quebrar algumas compatibilidades com aplicativos de segurança mais antigos. Nós recomendamos usar o arquivo
production.ini em ambientes de produção e teste.
php.ini-development - é muito semelhante ao arquivo de produção, exceto que ele é muito mais detalhado quando se trata de erros. Recomendamos o uso da versão de desenvolvimento apenas em ambientes de desenvolvimento. Erros mostrados para os usuários podem, inadvertidamente, vazar informações vitais.
Não irei colocar aqui as configurações do arquivo
php.ini. Talvez faça isso em outro artigo.
E adicione no
httpd.conf do Apache 2 nas seguintes posições:
#Listen 12.34.56.78:80
Listen 127.0.0.1:80 #Ou coloque o IP do teu servidor.
...
DirectoryIndex index.html index.php default.php main.php
...
E no final do arquivo:
#
AddType application/x-httpd-php5 .php .html .phtml
AddType application/x-httpd-php .php .html .phtml .leproso #Nesta linha tu acrescenta as extensões que quiser para que o Apache as reconheça.
AddType application/x-httpd-php-source .phps
PHPIniDir "/opt/php"
#
# Parâmetros do fcgid
FcgidMaxProcesses 50
FcgidFixPathinfo 1
FcgidProcessLifeTime 0
FcgidTimeScore 3
FcgidZombieScanInterval 20
FcgidMaxRequestsPerProcess 0
FcgidMaxRequestLen 33554432
FcgidIOTimeout 120
#
#AddHandler fcgid-script .php #Essa opção se descomentada provoca o aviso "Forbidden You don't have permission to access /index.php on this server.", mas permite o acesso ao localhost através do index.html. Com essa opção descomentada tu podes configurar depois no httpd.conf o acesso para somente as pastas as quais que tu quer que sejam acessadas.
#Options +ExecCGI
#FCGIWrapper /opt/apache2/cgi-bin/php5 .php
Ou, coloque em cada
vhost no Apache 2 em substituição às 3 últimas linhas acima:
Options Indexes ExecCGI
AddHandler fcgid-script .php
FCGIWrapper /opt/apache2/cgi-bin/php5 .php
Testando a instalação:
# cd /opt/apache2/htdocs
# vim index.php
Coloque dentro o seguinte conteúdo:
<?php
phpinfo();
?>
Salve e saia do arquivo.
Inicie o Apache:
# /opt/apache2/bin/apachectl start
Abra o navegador e digite na URL:
localhost/index.php
Deverá aparecer a página com as configurações do PHP:
PHP Version 5.6.2
Verifique as duas primeiras opções das informações de System (Sistema) e Build Date (Data da Construção). Aqui ficou assim:
System Linux leproso 3.17.2 #1 SMP Tue Nov 4 10:41:03 BRST 2014 x86_64
Build Date Nov 7 2014 11:35:05
Mais abaixo procure por
pdo_pgsql,
pgsql e verifique se o POstgreSQL 9.3.5 foi devidamente reconhecido. Nesta página, tu podes também verificar se todos os módulos e funções utilizadas no
./configure estão corretamente identificados.