Instalação do PostgreSQL, Apache2 e PHP8 no Debian Buster 10 e no Stretch 9

Instalação manual (em sua maioria) do PostgreSQL, Apache2 e PHP8 nos Debian Buster e Stretch.

[ Hits: 6.951 ]

Por: Buckminster em 23/09/2021


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

# aptitude install systemtap-sdt-dev
# aptitude install libicu-dev libmcrypt-dev
# aptitude install libpcre3 libpcre3-devpcre
# aptitude install libxml2 libxml2-dev libxslt1.1 libxslt1-dev
# aptitude install libjpeg62-turbo-dev libpng-dev
# aptitude install libonig-dev libzip-dev

A partir do PHP 7.4.0 a libsqlite precisa ser maior ou igual a versão 3.7.4. Anteriormente, a libsqlite empacotada poderia ser usada em seu lugar. Tanto o Stretch quanto o Buster com o apt-get ou o aptitude ou o apt baixam versões menores do que a 3.7.4 que, aliás, mudou de número segundo o site da SQlite.

A SQlite permite o uso do PHP PDO e vem habilitada por padrão no PHP8 e porque vamos habilitar o PHP PDO na instalação precisamos da SQlite ou então não se habilita o uso do PHP PDO e coloca-se nas configurações --without-sqlite3 (sem sqlite3).

# cd /usr/src/
# mkdir sqlite3 && cd sqlite3
# wget -c https://sqlite.org/2021/sqlite-autoconf-3360000.tar.gz -O sqlite.tar.gz
# tar xvfz sqlite.tar.gz
# cd sqlite-autoconf-*/
# ./configure
# make
# make install
# cd

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

# mkdir /opt/php8

Estando dentro de /usr/src, faça o download da última versão do PHP 8:

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

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

# ./configure --help

Configurando:

# ./configure --prefix=/opt/php8 --exec-prefix=/opt/php8 --enable-mbstring --enable-ftp --enable-exif --enable-pcntl --enable-intl --enable-opcache --enable-pdo --enable-debug --enable-dtrace --enable-xml --enable-cgi --enable-cli --enable-shared --with-apxs2=/opt/apache2/bin/apxs --with-pgsql=/usr --with-pdo-pgsql=/usr --with-xsl=/usr --with-zlib-dir=/usr --with-external-pcre --with-jpeg --with-zip --with-pear=/usr

Deverá terminar sem nenhuma mensagem de erro antes de:

Thank you for using PHP.

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

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

Construindo:

# make

Aguarde terminar, demora uns minutos.

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


Testando:

# make test

Isso demora um pouco.

Dará PASS (em verde) e SKIP (em amarelo).

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-8.0.9/build/shtool install -c ext/phar/phar.phar /opt/php8/bin
# ln -s -f phar.phar /opt/php8/bin/phar

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

Se futuramente decidir mudar as opções de seu ./configure depois da instalação do PHP, pare o Apache e 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/php8/php.ini

Qualquer alteração a partir de agora, faça no arquivo /opt/php8/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 /opt/apache2/conf/httpd.conf (vim /opt/apache2/conf/httpd.conf) do Apache 2 nas seguintes posições, linha ~53:

#Listen 12.34.56.78:80
# Listen 80  <<< comente esta linha se não estiver comentada.
Listen 127.0.0.1:80 #Ou coloque o IP do teu servidor, mas sempre coloque um IP nesta opção.

Aqui, linha ~281:

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

Verifique se as linhas ~522 (Include conf/extra/proxy-html.conf), ~518 (Include conf/extra/httpd-default.conf) estão descomentadas, se não estiverem, descomente. E coloque no final do arquivo, linha ~535:

Nesta linha abaixo acrescente as extensões que quiser para que o Apache as reconheça.

# Extensões do Apache
AddType application/x-httpd-php  .php .htm  .html  .phtml  .asp
AddType application/x-httpd-php-source .phps
AddType PHPIniDir "/opt/php8"
#
# 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 você quer que sejam acessadas.

#Options +ExecCGI
#FCGIWrapper /opt/apache2/cgi-bin/php8  .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();
?&gt

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

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

Vamos criar um link simbólico para cada vez que digitar php -v ou php --version apareça a versão:

# ln -s /opt/php8/bin/php /usr/bin/php

Teste:

# php -v

E então, deverá aparecer os dados do PHP 8.

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

Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET

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

Instalar e configurar o Nftables com exemplos básicos de configurações

Permissões do Linux

Instalar Minecraft, League of Legends e Fortnite no Linux

Leitura recomendada

Mudando a cara do Lilo

Configurando um servidor de backup Bacula

Distribuição híbrida

Configurando o CACIC (parte 5)

FreeRADIUS - Noções básicas - Parte III

  
Comentários
[1] Comentário enviado por danniel-lara em 24/09/2021 - 20:35h


Show , muito bom parabéns

[2] Comentário enviado por Buckminster em 24/09/2021 - 22:09h


[1] Comentário enviado por danniel-lara em 24/09/2021 - 20:35h


Show , muito bom parabéns



Obrigado, Daniel.

[3] Comentário enviado por maurixnovatrento em 02/10/2021 - 10:26h


Show, ótimo artigo.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[4] Comentário enviado por Louis526 em 11/11/2021 - 06:31h

Satisfied to consider your to be as I would hypothesize I have an equivalent issue, I am comparably befuddled and requiring light on this indistinguishable issue. Need assistance.

https://www.mybalancenow.ltd/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts