Instalação do PAP (PostgreSL, Apache2 e PHP7) no Debian Jessie

Instalação manual (em sua maioria) do PostgreSQL, Apache2 e PHP7 no Debian Jessie 64 bits.

[ Hits: 12.932 ]

Por: Buckminster em 24/03/2016


PHP



A instalação deste PHP foi configurada com algumas opções interessantes, como suporte à Dtrace, Pthreads etc. Ao final estão algumas explicações sobre algumas opções da configuração. Caso queira se aprofundar em cada uma delas, pesquise.

Pare o Apache:

# apache2 stop

Às vezes é preciso dar um refresh na página para verificar se o Apache parou mesmo, principalmente quando se está acessando em rede de uma máquina remota.

Instalando o PEAR:

# aptitude install php-pear

Instalando os pacotes necessários para a configuração de alguns módulos do PHP 7.

# aptitude install systemtap-sdt-dev
# aptitude install libicu-dev libmcrypt-dev
# aptitude install libpcre3 libpcre3-dev
# aptitude install libxml2 libxml2-dev libxslt1.1 libxslt1-dev
# aptitude install libjpeg62-turbo-dev libpng12-dev


Criando o diretório de instalação do PHP:

# mkdir /opt/php7

Estando dentro de /usr/src, faça o download do PHP 7:

# cd /usr/src
# wget -O php-7.0.4.tar.gz http://php.net/get/php-7.0.4.tar.gz/from/this/mirror
# tar -xzvf php-7.0.4.tar.gz
# cd php-7.0.4


Para ver as opções de configurações, se quiser:

# ./configure --help

# ./configure --prefix=/opt/php7 --exec-prefix=/opt/php7 --enable-maintainer-zts --enable-mbstring --enable-ftp --enable-zip --enable-exif --enable-pcntl --enable-intl --enable-opcache --enable-pdo --enable-debug --enable-dtrace --enable-xml --enable-libxml -enable-cgi --enable-cli --with-apxs2=/opt/apache2/bin/apxs --with-pgsql=/usr --with-pdo-pgsql=/usr --with-xsl=/usr --with-libxml-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-pcre-dir --with-pcre-regex --with-pear=/usr --with-tsrm-pthreads --with-mcrypt=static

Deverá terminar:

Thank you for using PHP.

config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands


Em caso de erro, execute make clean, analise a mensagem, corrija e repita o ./configure.

Caso seja necessário, exclua a pasta php-7.0.4 e descompacte o arquivo php-7.0.4.tar.gz de novo e repita a partir do ./configure.

Construindo:

# make

Terminará:

Build complete.
Don't forget to run 'make test'.


Testando:

# make test

Isso demora um pouco.

Caso der a mensagem de FAILED TEST SUMMARY ao final, ignore e siga em frente.

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, ajudará os próximos.

Instalando:

# make install

Isso é rápido.

Habilitando Phar (PHP Archives):

# /usr/src/php-7.0.4/build/shtool install -c ext/phar/phar.phar /opt/php7/bin
# ln -s -f phar.phar /opt/php7/bin/phar


Em caso de erro evidente em alguma etapa, execute make clean estando dentro do diretório php-7.0.4, apague e recrie a pasta /opt/php7 e refaça a operação desde o ./configure.

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-development /opt/php7/php.ini

Qualquer alteração a partir de agora, faça no arquivo /opt/php7/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.

E adicione/mude no httpd.conf (vim /opt/apache2/conf/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, mas sempre coloque um IP nesta opção.

Aqui:

<IfModule dir_module>
    DirectoryIndex index index.html index.php default.php main.php
</IfModule>

E coloque no final do arquivo:

# Nesta linha abaixo tu acrescenta as extensões que quiser para que o Apache as reconheça.
AddType application/x-httpd-php .php .html .phtml .asp
AddType application/x-httpd-php-source .phps
PHPIniDir "/opt/php7"
#
# 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/php7 .php

Ou coloque somente nos vhost que você quer habilitar o fcgid no Apache2 em substituição às 3 últimas linhas acima:

Options Indexes ExecCGI
AddHandler fcgid-script .php
FCGIWrapper /opt/apache2/cgi-bin .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:

# apache2 start

Abra o navegador e digite na URL: localhost/index.php

Deverá aparecer a página com as configurações do PHP: PHP Version 7.0.4

Verifique as duas primeiras opções das informações de System (Sistema) e Build Date (Data da Construção). Aqui ficou assim:

System    Linux Seibei 4.2.0 #1 SMP Tue Sep 15 13:08:24 BRT 2015 x86_64
Build Date    Fev 27 2016 16:55:11


Mais abaixo procure por pdo_pgsql, pgsql e verifique se o POstgreSQL 9.5.1 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.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. PostgreSQL
   3. Apache
   4. PHP
   5. Conclusão
Outros artigos deste autor

Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg

IPv6, DNSv6 e DHCPv6

Compilação de Kernel

Configuração do sistema, DHCP, compartilhamento e DNS no Debian Squeeze

VMD no Debian - Instalação e configuração

Leitura recomendada

Super Desktop com Ubuntu Linux 9.10

Iniciando seu Linux através do NTLoader do Windows 2000/XP

Ubuntu customizado como MacOS X

Instalando Apache 2.2 com múltiplos sites no OpenSuSE 10.2

Servidor de ICQ free no SuSE

  
Comentários
[1] Comentário enviado por danniel-lara em 24/03/2016 - 16:46h

Parabéns pelo artigo , muito bom mesmo

[2] Comentário enviado por Buckminster em 24/03/2016 - 17:33h


[1] Comentário enviado por danniel-lara em 24/03/2016 - 16:46h

Parabéns pelo artigo , muito bom mesmo


Obrigado Daniel.

[3] Comentário enviado por robsonpatrick em 27/03/2016 - 23:30h

Este tutorial foi de uma valia inenarrável, para eu que estou migrando do Windows para Debian isto ai encurtou muito essa minha transição. Muito muito obrigado
Funcionou tudo,
única coisa que faltou, que pode fazer diferença para um mais cabaço que eu, é liberar a extensão do pgsql no php.ini
para mim falhou mas não fez diferença na instalação do postgres wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add
não sei pq, e também não sei para que serve.

como eu tinha tentado outras coisas antes, na primeira vez não deu certo, ai desinstalei o debian, instalei novamente, configurei o putty, mandei ver no ctrl+c e click direto

configurei um usuário para postgres
depois instalei samba, configurei acesso htdocs, joguei minhas loucuras lá e rodou
show de bola

[4] Comentário enviado por robsonpatrick em 27/03/2016 - 23:35h

um adendo para clarear a comunicação
o postgresql funcionou, o que não funcionou foi uma instalação de uma Key

[5] Comentário enviado por Buckminster em 28/03/2016 - 12:57h


[4] Comentário enviado por robsonpatrick em 27/03/2016 - 23:35h

um adendo para clarear a comunicação
o postgresql funcionou, o que não funcionou foi uma instalação de uma Key


Obrigado. Realmente faltou a parte das extensões, mas era para ter junto com o artigo 4 arquivos para download (hpptd.conf, php.ini, pg_hba.conf e postgresql.conf).

Em relação à instalação da key, houve uma falha, o comando certo é:

# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - <<< aqui no final tem um sinal "-", de menos, um tracinho, um hífen.

A instalação dessa key é importante para as atualizações do PostgreSQL através do apt-get ou do aptitude.

Execute o comando de novo.

As minhas extensões estão assim aqui (cloquei em 'quote' porque o negrito não funcionou, ou eu que não soube fazer):

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll

;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll ; Must be after mbstring as it depends on it

;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
extension=php_shmop.dll

[6] Comentário enviado por robsonpatrick em 29/03/2016 - 18:25h

Valeu mais uma vez!
Sou fã de caras como você!
As extensões estão um pouco diferente das que eu configurei para mim, vou dar uma estudada na diferenças...

Vi no seu perfil pelos posts e artigos, que você é o bichão mesmo do linux...

Eu sei que aqui não é o local certo, mas você me parece a pessoa certa,
para me esclarecer um pensamento que acompanha os "janeleiros"
Pessoal do Windows salva seus instaladores...
Já no Linux dependemos de repositórios que ficam em servidores mundo a fora, a qual outras pessoas podem decidir não compartilhar mais o software,
gostaria de saber se há como eu salvar meus instaladores,
caso sim,
se você tiver um artigo para indicar eu agradeço (se não tiver não tem problema eu procuro, você já ajudou muito)

Valeu!

[7] Comentário enviado por Buckminster em 30/03/2016 - 17:05h

robsonpatrick;
bom, como tu usa Debian tu podes baixar os pacotes desejados e salvá-los na máquina para instalação posterior ou guardar os instaladores como tu quer, isso pode ser feito em qualquer distribuição.

https://www.debian.org/distrib/packages.pt.html

https://packages.debian.org/stable/

São pacotes .deb que depois tu instala com o dpkg.

E tu podes usar o parâmetro -d que ele somente baixa o pacote para instalação posterior. Com isso tu podes fazer uma pasta de backups.

# apt-get -d install pacote <<< -d de Download-only, apenas download.

Veja aqui a página do man do apt-get ou digite no terminal man apt-get:

http://linux.die.net/man/8/apt-get

Mas é difícil os repósitórios do Debian sairem do ar, somente se o Debian deixar de existir, daí não fará diferença.

[8] Comentário enviado por robsonpatrick em 31/03/2016 - 07:29h

Maneiro!
Muito obrigado mais uma vez Buckminster!



[9] Comentário enviado por Buckminster em 31/03/2016 - 16:57h


[8] Comentário enviado por robsonpatrick em 31/03/2016 - 07:29h

Maneiro!
Muito obrigado mais uma vez Buckminster!

De nada.


[10] Comentário enviado por robsonpatrick em 08/04/2016 - 12:39h

Pra fazer uns cortes automáticos em imagens no php é preciso instalar o php7.0-gd
que consegui fazendo estes passos:

Acrescente as seguintes linhas ao final do arquivo /etc/apt/sources.list:
# dotdeb PHP7 repositórios
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

Vamos à configuração da chave gpg…
wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg

sudo apt-get update
sudo aptitude install php7.0-gd

instalou, e mesmo descomentando extension=php_gd2.dll
não funcionou :-P
os passo peguei desta fonte:
http://elias.praciano.com/2015/11/como-instalar-o-php-7-0-no-ubuntu-14-04-e-no-debian-8/

se vc quiser mais este desafio posso passar os codigos por email
o erro que vai aparecer é call to undefined function imagecreatefromjpeg()



[11] Comentário enviado por Buckminster em 08/04/2016 - 22:36h

Faça um teste, use imagecreatetruecolor em vez de imagecreatefromjpeg e poste aqui se acontecer algum erro.
Não esqueça de reiniciar o Apache.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts