Instalar o PHP-FPM 7.2 para o Apache no CentOS 8

O PHP, é uma linguagem muito utilizada para a criação de software para a web. São muitos CMS que são desenvolvidos com esta linguagem de programação, como é o caso do WordPress por exemplo.

Neste artigo vou descrever os passos necessários para instalar o php 7.2 no CentOS 8. Será feita uma instalação personalizada e apenas para permitir que o apache interprete scripts PHP.

O CentOS 8 já trás o PHP 7.2 por defeito neste caso só temos que instalar e testar.

Para testes, vou usar o Apache instalado no artigo anterior .

Algumas mudanças importantes PHP 7.2

O PHP 7.2 trouxe algumas novidades, em baixo listo algumas. Pode consultar aqui tudo.

  • FastCGI Process Manager (FPM) é agora usado por defeito.
  • Os erros e avisos agora são enviados para /var/log/php-fpm/www-error.log, já não são enviados para os logs do servidor HTTP.
  • As variáveis php-flag e php_value devem ser configuraras em ficheiros de configuração em /etc/php-fpm.d/*.conf. Elas já não são configuradas com o serviço HTTP.
  • O utilizador com que os scripts PHP correm agora são configurados no  /etc/php-fpm/d/www.conf. O utilizador por defeito é apache.
  • Sempre que modificar algum ficheiro de configuração ou instalar uma nova extensão tem de reiniciar o serviço php-fpm.

Em baixo está a lista de extensões removidas no PHP 7.2.

  • memcache
  • zip
  • mysql (no entanto as extensões mysqli e pdo_mysql estão disponíveis, através do pacote php-mysqlnd)
  • aspell

Instalar PHP-FPM 7.2 no CentOS 8

Para que possamos ter apenas uma instalação do PHP para ser usado apenas com o servidor web, corremos o seguinte comando, que instala o “php-fpm”:

# yum install php-fpm
CentOS-8 - AppStream                                                                                                                                                                                          1.8 kB/s | 4.3 kB     00:02    
CentOS-8 - Base                                                                                                                                                                                               947  B/s | 3.8 kB     00:04    
CentOS-8 - Extras                                                                                                                                                                                             649  B/s | 1.5 kB     00:02    
Dependências resolvidas.
==============================================================================================================================================================================================================================================
 Pacote                                                   Arq.                                           Versão                                                                       Repositório                                       Tamanho
==============================================================================================================================================================================================================================================
Installing:
 php-fpm                                                  x86_64                                         7.2.11-1.module_el8.0.0+56+d1ca79aa                                          AppStream                                         1.6 M
A instalar dependências:
 nginx-filesystem                                         noarch                                         1:1.14.1-8.module_el8.0.0+5+258f653c                                         AppStream                                          24 k
 php-common                                               x86_64                                         7.2.11-1.module_el8.0.0+56+d1ca79aa                                          AppStream                                         653 k
Enabling module streams:
 nginx                                                                                                   1.14                                                                                                                                
 php                                                                                                     7.2                                                                                                                                 

Resumo da Transação
==============================================================================================================================================================================================================================================
Instalar  3 Pacotes

Total transferido: 2.3 M
Tamanho instalado: 11 M
Isto está ok [s/N]: s

Ao aceitarmos que queremos instalar estes pacotes de software serão instalados também algumas dependências.

Iniciar e Configurar o serviço php-fpm

O php-fpm corre como um serviço, como tal, o serviço tem de estar a correr e configurado para iniciar a cada boot do sistema. Para configurar e iniciar imediatamente o serviço corrermos o seguinte comando:

# systemctl enable --now php-fpm

Neste momento o php-fpm já está a correr e configurado para iniciar a cada boot do sistema.

Instalando extensões no PHP 7.2

O PHP permite adicionar e remover extensões que podem ser úteis em determinados projetos. As extensões permite adicionar funcionalidades ao PHP.

Para sabermos as extensões que estão instaladas corremos o seguinte comando:

# yum list installed | grep -i php
php-common.x86_64                     7.2.11-1.module_el8.0.0+56+d1ca79aa                    @AppStream
php-fpm.x86_64                        7.2.11-1.module_el8.0.0+56+d1ca79aa                    @AppStream

Como podemos ver acima não existe qualquer extensão instalada. Visto que a ideia é instalar apenas o mínimo necessário.

Para sabermos as extensões que estão disponíveis para serem instaladas, corremos o seguinte comando:

# yum search php-
Última verificação de expiração de metadados: 0:09:14 em ter 08 out 2019 11:54:21 EDT.
============================================================================================================= Nome Matched: php- =============================================================================================================
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
php-fpm.x86_64 : PHP FastCGI Process Manager
php-cli.x86_64 : Command-line interface for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-dbg.x86_64 : The interactive PHP debugger
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gmp.x86_64 : A module for PHP applications for using the GNU MP library
php-pdo.x86_64 : A database access abstraction module for PHP applications
php-xml.x86_64 : A module for PHP applications which use XML
php-intl.x86_64 : Internationalization extension for PHP applications
php-json.x86_64 : JavaScript Object Notation extension for PHP
php-ldap.x86_64 : A module for PHP applications that use LDAP
php-odbc.x86_64 : A module for PHP applications that use ODBC databases
php-pear.noarch : PHP Extension and Application Repository framework
php-snmp.x86_64 : A module for PHP applications that query SNMP-managed devices
php-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php-devel.x86_64 : Files needed for building PHP extensions
php-pgsql.x86_64 : A PostgreSQL database module for PHP
php-common.x86_64 : Common files for PHP
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-common.x86_64 : Common files for PHP
php-recode.x86_64 : A module for PHP applications for using the recode library
php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php-opcache.x86_64 : The Zend OPcache
php-process.x86_64 : Modules for PHP script using system process interfaces
php-embedded.x86_64 : PHP library for embedding in applications
php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php-pecl-zip.x86_64 : A ZIP archive management extension
php-pecl-apcu.x86_64 : APC User Cache
php-pecl-apcu-devel.x86_64 : APCu developer files (header)

Como podemos ver existe algumas extensões que podemos instalar. Quais devemos instalar depende do projeto em questão.

Para instalarmos uma determinada extensão, corremos o seguinte comando:

# yum install php-<entension>

Para termos o mínimo necessário para poder correr o wordpress sem problemas de maior, instalamos as seguintes extensões:

# yum install php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json

Criar pagina de teste

Neste momento já temos tudo o que necessitamos para que o nosso apache possa interpretar scripts PHP.

Para testarmos podemos criar um ficheiro que permite ver as informações do nosso PHP através de um browser. Para criarmos a pagina de teste, corremos o seguinte comando:

# echo '<?php phpinfo();' >/var/www/html/info.php

Conclusão

Instalar o PHP de forma personalizada permite nos instalar apenas o software necessário para cada projeto. Evitando ocupar espaço em disco como também evitar carregar extensões PHP desnecessárias, desta forma permitindo que o PHP seja mais rápido e use menos memoria.

De momento temos o PHP instalado e funcionado e o nosso servidor apache já é capaz de interpretar os scripts PHP.

Artigos Relacionados:

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *