Pesquise...

Últimos Posts

Arquivo de Posts

2022 - 2021 - 2020 - 2019 - 2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo

     
  •    
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •    
Tecnologia do Blogger.

Total de Acessos


Saudações,

Eu estive pensando este dias sobre o post SURY PHP EOL, e fiquei com uma "pulga atrás da orelha".

Tive o seguinte pensamento: E se alguém ficou curioso sobre a instalação do PHP 7.4, no Debian 9, de forma compilada?

Pois bem, es aqui "um norte" para você. Mas, esteja avisado, eu não fiz um post no tradicional estilo Ctrl+C e Ctrl+V! 😉


DICA RÁPIDA: Compilar PHP 7.4 no Debian 9


No passado, quando eu precisava compilar, eu tentava replicar, na medida do possível, o sistema alvo em um hardware de teste. Por exemplo, se um servidor rodava um Red Hat Linux 7.2, eu baixava uma cópia do sistema e efetuava uma instalação padrão em um hardware de teste.

Hoje com o advento das maquinas virtuais o processo ficou ainda mais simples. Sim, eu recomendo você iniciar em um ambiente de teste e somente depois passar para o ambiente de produção! Aqui eu uso o virt-manager...


Para esta dica, eu baixei o Debian 9 (Stretch) em debian.org/releases/stretch/debian-installer, e com o sistema rodando na VM, eu instalei com o apt-get alguns pacotes que são essenciais para a compilação do PHP...

# apt-get install build-essential libbz2-dev libc-client2007e libc-client2007e-dev libcurl4-openssl-dev libfcgi0ldbl libfcgi-dev libfreetype6-dev libjpeg62-turbo-dev libjpeg-dev libkrb5-dev libmcrypt-dev libpng-dev libpq-dev libssl-dev libxml2-dev libxslt1-dev

Esta é uma compilação básica. Aplicativos com o WordPress irá "reclamar" de um ou dois itens obrigatórios. Mas, nada que um pouco de trabalho não resolva! 😉

Acessei o php.net/releases e baixei o arquivo php-7.4.33.tar.gz no diretório /usr/src, e, para extrair o arquivo, usei o comando tar -xzf php-7.4.33.tar.gz. Depois acessei o diretório extraído com o comando cd php-7.4.33...


Passo 1 - ./configure

Dentro do diretório do código fonte do PHP execute um ./configure seguido das opções que você deseja. Onde --prefix=/opt/php-7.4.x será o diretório de instalação do PHP....


Se você deseja ter suporte IMAP no PHP, um passo extra será necessário; ou você incorrerá em um erro. Mas isto eu vou deixar como lição de casa para você. Não tenha medo, você consegue!

O ./configure checa bibliotecas, dependências, ferramentas necessárias, etc; ele prepara o terreno. Com um ./configure --help você lista todas as opções possíveis.

Se ao executar o ./configure você se deparar com alguns avisos de pacotes, não se preocupe. Pesquise o pacote em questão com um apt-cache search; veja o exemplo I e II... 


Exemplo I

AVISO
...
configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
No package 'sqlite3' found
...

PESQUISE COM

# apt-cache search sqlite3 | egrep "dev"
...
libsqlite3-dev - SQLite 3 development files
...

INSTALE A DEPENDÊNCIA

# apt install libsqlite3-dev


Exemplo II

AVISO
...
configure: error: Package requirements (oniguruma) were not met:
No package 'oniguruma' found
...

PESQUISE COM

# apt-cache search oniguruma | egrep "dev"
...
libonig-dev - regular expressions library — development files
...

INSTALE A DEPENDÊNCIA

# apt install libonig-dev

Notou o padrão? Bem simples, não é mesmo? ^_^

Ok, agora eu acredito que você já resolveu todas as dependências, e executou com sucesso o ./configure.


Passo 2 - make

Aqui não há muito o que falar. Execute o make e aguarde! Dependendo dos recursos de processamento disponíveis, isto pode demorar um pouco.

Uma vez que o make foi executado com sucesso, vamos ao ultimo passo; a instalação.


Passo 3 - make install

Instale o PHP com o comando make install. Aqui tudo correu bem e, no final do processo, eu obtive a seguinte saída...


Agora com o PHP instalado você pode verificar a instalação executando /opt/php-7.4.x/bin/php --version...


Se você chegou até aqui, eu lhe dou os meus parabéns. Pois, como você deve ter percebido, eu "ocultei" algumas informações; e isto foi proposital. Eu quero que você leia, pesquise, entenda, erre se preciso, e no final aprenda.

Ficou curioso? Cliquei nos links abaixo e saiba mais!

thoughtbot.com/blog/the-magic-behind-configure-make-make-install

php.watch/articles/compile-php-ubuntu

linuxfromscratch.org/blfs/view/svn/general/php.html

php.net/manual/en/install.unix.debian.php#122244



Paz a todos!



Bonus: Debian 9 com ISPConfig e PHP 7.4.33

Se você usar o tutorial howtoforge.com/tutorial/how-to-install-php-7-on-debian como base, é possível ter o PHP 100% funcional com o ISPConfig.

Como eu uso este painel de controle de hospedagem a um bom tempo, eu efetuei uns testes e tudo saiu como o esperado.

Eu pessoalmente fiz algumas personalizações como...

LOCAL DO ARQUIVO PID

# vim /opt/php-7.4.x/etc/php-fpm.conf
...
pid = /run/php/php-7.4.x-fpm.pid
...

USAR SOCK NO LUGAR DE PORTA E DEFINIR O DONO/GRUPO EXPLICITAMENTE

# vim /opt/php-7.4.x/etc/php-fpm.d/www.conf
...
listen = /run/php/php-7.4.x-fpm.sock
...
listen.owner = www-data
listen.group = www-data
...

Dá uma olhada como ficou o ambiente de teste...


Sim sim, você não viu errado, também compilei o PHP 8.0.26 e o 8.2.0. Sendo que este ultimo, o PHP 8.2.0, foi compilado depois da compilação e instalação do OpenSSL 3.0.7; uma versão da série LTS.

Por isto que na página de informações você ver um --with-openssl=/opt/openssl-3.0.x e um PKG_CONFIG_PATH=/opt/openssl-3.0.x/lib64/pkgconfig no campo Configure Command...


Como a instalação do OpenSSL é um pouco diferente, eu envolvi no processo a criação do arquivo openssl-3.0.x.conf no diretório /etc/ld.so.conf.d...


Mas, esta conversa de PHP com OpenSSL "juntos e shallow now" fica para uma outra hora! 😅


Fica bem!

0 comentários:

Postar um comentário