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