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-flagephp_valuedevem 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-fpmNeste 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-jsonCriar 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.phpConclusã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.