Instalar o PHP 7.4 no CentOS 8

O CentOS 8, trás nos seus repositórios o PHP 7.2. No entanto já existe versões do PHP mais recentes, como a versão 7.3 e 7.4.

Apesar de a versão 7.2 do PHP ser compatível com os CMS mais recentes, esta versão do repositório do CentOS 8, não trás muitos módulos que em certos projetos são necessários.

Por exemplo não podemos instalar o module php-imagick, que é muito utilizado para a manipulação de imagens. O que torna obrigatório compilar o PHP e outros softwares. O que não é um problema muito grande para quem está acostumado a fazê-lo, mas para os menos acostumados é complicado.

No entanto existe o repositório Remi, que tem como uma das principais funções, disponibilizar todas as versões mais recentes do PHP, para distribuições como o RedHat, CentOS, Fedora, etc.

Para testes, vou usar o Apache instalado em um artigo anterior .

Neste artigo vou descrever como instalar versões mais recentes do PHP.

Instalar o repositório necessários

As versões do PHP está no repositório Remi no entanto este repositório tem como dependência o repositório EPEL que devemos instalar também.

Para instalar o repositório EPEL corremos o seguinte comando:

# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
CentOS-8 - AppStream                                                                                                                                                                                          1.8 kB/s | 4.3 kB     00:02    
CentOS-8 - AppStream                                                                                                                                                                                          1.4 MB/s | 5.2 MB     00:03    
CentOS-8 - Base                                                                                                                                                                                               2.8 kB/s | 3.9 kB     00:01    
CentOS-8 - Base                                                                                                                                                                                               877 kB/s | 2.2 MB     00:02    
CentOS-8 - Extras                                                                                                                                                                                             1.3 kB/s | 1.5 kB     00:01    
epel-release-latest-8.noarch.rpm                                                                                                                                                                              8.0 kB/s |  21 kB     00:02    
Dependências resolvidas.
==============================================================================================================================================================================================================================================
 Pacote                                                      Arq.                                                  Versão                                                   Repositório                                                 Tamanho
==============================================================================================================================================================================================================================================
Installing:
 epel-release                                                noarch                                                8-7.el8                                                  @commandline                                                 21 k

Resumo da Transação
==============================================================================================================================================================================================================================================
Instalar  1 Pacote

Tamanho total: 21 k
Tamanho instalado: 30 k
Isto está ok [s/N]: s
A transferir pacotes:
A executar verificação de transação
A verificação da transação foi bem sucedida.
A executar o teste de transação
O teste de transação foi bem sucedido.
A executar a transação
  Preparing        :                                                                                                                                                                                                                      1/1 
  Installing       : epel-release-8-7.el8.noarch                                                                                                                                                                                          1/1 
  Running scriptlet: epel-release-8-7.el8.noarch                                                                                                                                                                                          1/1 
  A verificar      : epel-release-8-7.el8.noarch                                                                                                                                                                                          1/1 

Instalado:
  epel-release-8-7.el8.noarch                                                                                                                                                                                                                 

Completo!

Para instalar o repositório Remi corremos o seguinte comando:

# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Waiting for process with pid 1943 to finish.
Última verificação de expiração de metadados: 0:00:03 em seg 28 out 2019 09:59:16 EDT.
remi-release-8.rpm                                                                                                                                                                                             16 kB/s |  20 kB     00:01    
Dependências resolvidas.
==============================================================================================================================================================================================================================================
 Pacote                                                    Arq.                                                Versão                                                         Repositório                                               Tamanho
==============================================================================================================================================================================================================================================
Installing:
 remi-release                                              noarch                                              8.0-4.el8.remi                                                 @commandline                                               20 k

Resumo da Transação
==============================================================================================================================================================================================================================================
Instalar  1 Pacote

Tamanho total: 20 k
Tamanho instalado: 14 k
Isto está ok [s/N]: s
A transferir pacotes:
A executar verificação de transação
A verificação da transação foi bem sucedida.
A executar o teste de transação
O teste de transação foi bem sucedido.
A executar a transação
  Preparing        :                                                                                                                                                                                                                      1/1 
  Installing       : remi-release-8.0-4.el8.remi.noarch                                                                                                                                                                                   1/1 
  A verificar      : remi-release-8.0-4.el8.remi.noarch                                                                                                                                                                                   1/1 

Instalado:
  remi-release-8.0-4.el8.remi.noarch                                                                                                                                                                                                          

Completo!

Neste momento já temos os repositórios necessários instalados, podemos instalar agora a versão do PHP 7.2, 7.3, 7.4 que se encontra no repositório Remi.

Instalar o PHP do repositório Remi

Neste artigo vou instalar o PHP mais recente até à data deste artigo a 7.4. No entanto se precisarmos de outra versão mais antigo podemos instalar só temos de modificar o comando de acordo.

Para listarmos as versões PHP disponíveis para instalação, corremos o seguinte comando:

# dnf module list | grep php
php                  7.2 [d]      common [d], devel, minimal               PHP scripting language                                             
php                  remi-7.2     common [d], devel, minimal               PHP scripting language                                             
php                  remi-7.3     common [d], devel, minimal               PHP scripting language                                             
php                  remi-7.4     common [d], devel, minimal               PHP scripting language 

Quando instalarmos algum pacote do repositório Remi, será necessário importar uma chave GPG. Esta chave permite verificar que os pacotes sejam mesmo transferidos do repositório Remi. Por questões de segurança.

Para instalarmos o PHP 7.2, corremos o seguinte comando:

# dnf module install php:remi-7.2

Para instalarmos o PHP 7.3, corremos o seguinte comando:

# dnf module install php:remi-7.3

Para instalarmos o PHP 7.4, corremos o seguinte comando:

# dnf module install php:remi-7.4
Última verificação de expiração de metadados: 0:18:11 em seg 28 out 2019 10:00:55 EDT.
Dependências resolvidas.
==============================================================================================================================================================================================================================================
 Pacote                                                 Arq.                                         Versão                                                                          Repositório                                        Tamanho
==============================================================================================================================================================================================================================================
Installing group/module packages:
 php-cli                                                x86_64                                       7.4.0~RC4-11.el8.remi                                                           remi-modular                                       4.6 M
 php-common                                             x86_64                                       7.4.0~RC4-11.el8.remi                                                           remi-modular                                       1.2 M
 php-fpm                                                x86_64                                       7.4.0~RC4-11.el8.remi                                                           remi-modular                                       1.6 M
 php-json                                               x86_64                                       7.4.0~RC4-11.el8.remi                                                           remi-modular                                        72 k
 php-mbstring                                           x86_64                                       7.4.0~RC4-11.el8.remi                                                           remi-modular                                       523 k
 php-xml                                                x86_64                                       7.4.0~RC4-11.el8.remi                                                           remi-modular                                       212 k
A instalar dependências:
 oniguruma                                              x86_64                                       6.8.2-1.el8                                                                     AppStream                                          188 k
 libxslt                                                x86_64                                       1.1.32-3.el8                                                                    BaseOS                                             249 k
Installing weak dependencies:
 nginx-filesystem                                       noarch                                       1:1.14.1-9.module_el8.0.0+184+e34fea82                                          AppStream                                           24 k
Installing module profiles:
 php/common                                                                                                                                                                                                                                  
Enabling module streams:
 nginx                                                                                               1.14                                                                                                                                    
 php                                                                                                 remi-7.4                                                                                                                                

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

Total transferido: 8.6 M
Tamanho instalado: 43 M
Isto está ok [s/N]: s
A transferir pacotes:
(1/9): nginx-filesystem-1.14.1-9.module_el8.0.0+184+e34fea82.noarch.rpm                                                                                                                                       366 kB/s |  24 kB     00:00    
(2/9): libxslt-1.1.32-3.el8.x86_64.rpm                                                                                                                                                                        3.6 MB/s | 249 kB     00:00    
(3/9): oniguruma-6.8.2-1.el8.x86_64.rpm                                                                                                                                                                       1.6 MB/s | 188 kB     00:00    
(4/9): php-common-7.4.0~RC4-11.el8.remi.x86_64.rpm                                                                                                                                                            1.4 MB/s | 1.2 MB     00:00    
(5/9): php-fpm-7.4.0~RC4-11.el8.remi.x86_64.rpm                                                                                                                                                               1.6 MB/s | 1.6 MB     00:00    
(6/9): php-json-7.4.0~RC4-11.el8.remi.x86_64.rpm                                                                                                                                                              417 kB/s |  72 kB     00:00    
(7/9): php-cli-7.4.0~RC4-11.el8.remi.x86_64.rpm                                                                                                                                                               4.0 MB/s | 4.6 MB     00:01    
(8/9): php-xml-7.4.0~RC4-11.el8.remi.x86_64.rpm                                                                                                                                                               754 kB/s | 212 kB     00:00    
(9/9): php-mbstring-7.4.0~RC4-11.el8.remi.x86_64.rpm                                                                                                                                                          751 kB/s | 523 kB     00:00    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                         1.9 MB/s | 8.6 MB     00:04     
aviso: /var/cache/dnf/remi-modular-6408ecca79e22107/packages/php-cli-7.4.0~RC4-11.el8.remi.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 5f11735a: NOKEY
Remi's Modular repository for Enterprise Linux 8 - x86_64                                                                                                                                                     3.0 MB/s | 3.1 kB     00:00    
Importing GPG key 0x5F11735A:
 Userid     : "Remi's RPM repository <remi@remirepo.net>"
 Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
Isto está ok [s/N]: s
Chave importada com sucesso
A executar verificação de transação
A verificação da transação foi bem sucedida.
A executar o teste de transação
O teste de transação foi bem sucedido.
A executar a transação
  Preparing        :                                                                                                                                                                                                                      1/1 
  Installing       : php-json-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                1/9 
  Running scriptlet: php-common-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                              2/9 
  Installing       : php-common-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                              2/9 
  Installing       : libxslt-1.1.32-3.el8.x86_64                                                                                                                                                                                          3/9 
  Installing       : oniguruma-6.8.2-1.el8.x86_64                                                                                                                                                                                         4/9 
  Running scriptlet: oniguruma-6.8.2-1.el8.x86_64                                                                                                                                                                                         4/9 
  Running scriptlet: nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch                                                                                                                                                       5/9 
  Installing       : nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch                                                                                                                                                       5/9 
  Installing       : php-fpm-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 6/9 
  Running scriptlet: php-fpm-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 6/9 
  Installing       : php-mbstring-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                            7/9 
  Installing       : php-xml-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 8/9 
  Installing       : php-cli-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 9/9 
  Running scriptlet: php-cli-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 9/9 
  Running scriptlet: php-fpm-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 9/9 
  A verificar      : nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch                                                                                                                                                       1/9 
  A verificar      : oniguruma-6.8.2-1.el8.x86_64                                                                                                                                                                                         2/9 
  A verificar      : libxslt-1.1.32-3.el8.x86_64                                                                                                                                                                                          3/9 
  A verificar      : php-cli-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 4/9 
  A verificar      : php-common-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                              5/9 
  A verificar      : php-fpm-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 6/9 
  A verificar      : php-json-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                7/9 
  A verificar      : php-mbstring-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                            8/9 
  A verificar      : php-xml-7.4.0~RC4-11.el8.remi.x86_64                                                                                                                                                                                 9/9 

Instalado:
  php-cli-7.4.0~RC4-11.el8.remi.x86_64     php-common-7.4.0~RC4-11.el8.remi.x86_64                            php-fpm-7.4.0~RC4-11.el8.remi.x86_64     php-json-7.4.0~RC4-11.el8.remi.x86_64     php-mbstring-7.4.0~RC4-11.el8.remi.x86_64    
  php-xml-7.4.0~RC4-11.el8.remi.x86_64     nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch     oniguruma-6.8.2-1.el8.x86_64             libxslt-1.1.32-3.el8.x86_64              

Completo!

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.

Para que o Apache reconheça o PHP devemos de reiniciar o Apache, para isso corremos o seguinte comando:

# systemctl restart httpd

Neste momento o Apache já é capaz de interpretar scripts PHP.

Instalando extensões no PHP

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-cli.x86_64                        7.4.0~RC4-11.el8.remi                                  @remi-modular
php-common.x86_64                     7.4.0~RC4-11.el8.remi                                  @remi-modular
php-fpm.x86_64                        7.4.0~RC4-11.el8.remi                                  @remi-modular
php-json.x86_64                       7.4.0~RC4-11.el8.remi                                  @remi-modular
php-mbstring.x86_64                   7.4.0~RC4-11.el8.remi                                  @remi-modular
php-xml.x86_64                        7.4.0~RC4-11.el8.remi 

Como podemos ver acima já existe extensões instaladas(php-json, php-xml, etc).

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

# yum search php74-
Última verificação de expiração de metadados: 0:31:45 em seg 28 out 2019 10:00:55 EDT.
======================================================================================================= Nome & Resumo Matched: php74- ========================================================================================================
php74-php-pecl-psr-devel.x86_64 : php74-php-pecl-psr developer files (header)
php74-php-pecl-raphf-devel.x86_64 : php74-php-pecl-raphf developer files (header)
php74-php-pecl-propro-devel.x86_64 : php74-php-pecl-propro developer files (header)
php74-php-pecl-yaconf-devel.x86_64 : php74-php-pecl-yaconf developer files (header)
php74-php-pecl-xmldiff-devel.x86_64 : php74-php-pecl-xmldiff developer files (header)
php74-php-zephir-parser-devel.x86_64 : php74-php-zephir-parser developer files (headers)
php74-php-pecl-http-message-devel.x86_64 : php74-php-pecl-http-message developer files (headers)
============================================================================================================ Nome Matched: php74- ============================================================================================================
php74-php.x86_64 : PHP scripting language for creating dynamic web sites
php74-build.x86_64 : Package shipping basic build configuration
php74-php-gd.x86_64 : A module for PHP applications for using the gd graphics library
php74-zephir.noarch : Zephir language for creation of extensions for PHP.
php74-php-ast.x86_64 : Abstract Syntax Tree
php74-php-cli.x86_64 : Command-line interface for PHP
php74-php-dba.x86_64 : A database abstraction layer module for PHP applications
php74-php-dbg.x86_64 : The interactive PHP debugger
php74-php-ffi.x86_64 : Foreign Function Interface
php74-php-fpm.x86_64 : PHP FastCGI Process Manager
php74-php-gmp.x86_64 : A module for PHP applications for using the GNU MP library
php74-php-lz4.x86_64 : LZ4 Extension for PHP
php74-php-pdo.x86_64 : A database access abstraction module for PHP applications
php74-php-xml.x86_64 : A module for PHP applications which use XML
php74-runtime.x86_64 : Package that handles php74 Software Collection.
php74-php-imap.x86_64 : A module for PHP applications that use IMAP
php74-php-intl.x86_64 : Internationalization extension for PHP applications
php74-php-json.x86_64 : JavaScript Object Notation extension for PHP
php74-php-ldap.x86_64 : A module for PHP applications that use LDAP
php74-php-oci8.x86_64 : A module for PHP applications that use OCI8 databases
php74-php-odbc.x86_64 : A module for PHP applications that use ODBC databases
php74-php-pear.noarch : PHP Extension and Application Repository framework
php74-php-pggi.x86_64 : GTK bindings
php74-php-snmp.x86_64 : A module for PHP applications that query SNMP-managed devices
php74-php-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php74-php-tidy.x86_64 : Standard PHP module provides tidy library support
php74-php-zstd.x86_64 : Zstd Extension for PHP
php74-scldevel.x86_64 : Package shipping development files for php74
php74-unit-php.x86_64 : PHP module for NGINX Unit
php74-php-devel.x86_64 : Files needed for building PHP extensions
php74-php-pgsql.x86_64 : A PostgreSQL database module for PHP
php74-php-pinba.x86_64 : Client extension for Pinba statistics server
php74-php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php74-php-brotli.x86_64 : Brotli Extension for PHP
php74-php-common.x86_64 : Common files for PHP
php74-php-pspell.x86_64 : A module for PHP applications for using pspell interfaces
php74-php-recode.x86_64 : A module for PHP applications for using the recode library
php74-php-snappy.x86_64 : Snappy Extension for PHP
php74-php-sodium.x86_64 : Wrapper for the Sodium cryptographic library
php74-php-sqlsrv.x86_64 : Microsoft Drivers for PHP for SQL Server
php74-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php74-php-enchant.x86_64 : Enchant spelling extension for PHP applications
php74-php-libvirt.x86_64 : PHP language binding for Libvirt
php74-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php74-php-opcache.x86_64 : The Zend OPcache
php74-php-pecl-ds.x86_64 : Data Structures for PHP
php74-php-pecl-ev.x86_64 : Provides interface to libev library
php74-php-pecl-pq.x86_64 : PostgreSQL client library (libpq) binding
php74-php-pecl-uv.x86_64 : Libuv wrapper
php74-php-process.x86_64 : Modules for PHP script using system process interfaces
php74-php-embedded.x86_64 : PHP library for embedding in applications
php74-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php74-php-pecl-dio.x86_64 : Direct I/O functions
php74-php-pecl-eio.x86_64 : Provides interface to the libeio library
php74-php-pecl-env.x86_64 : Load environment variables
php74-php-pecl-lua.x86_64 : Embedded lua interpreter
php74-php-pecl-lzf.x86_64 : Extension to handle LZF de/compression
php74-php-pecl-nsq.x86_64 : PHP extension for NSQ client
php74-php-pecl-psr.x86_64 : PSR interfaces
php74-php-pecl-rar.x86_64 : PHP extension for reading RAR archives
php74-php-pecl-rrd.x86_64 : PHP Bindings for rrdtool
php74-php-pecl-sdl.x86_64 : Simple DirectMedia Layer for PHP
php74-php-pecl-vld.x86_64 : Dump the internal representation of PHP scripts
php74-php-pecl-yac.x86_64 : Lockless user data cache
php74-php-pecl-yaz.x86_64 : Z39.50/SRU client
php74-php-pecl-zip.x86_64 : Une extension de gestion des ZIP
php74-php-pecl-zmq.x86_64 : ZeroMQ messaging
php74-php-phalcon4.x86_64 : Phalcon Framework
php74-php-componere.x86_64 : Composing PHP classes at runtime
php74-php-litespeed.x86_64 : LiteSpeed Web Server PHP support
php74-php-maxminddb.x86_64 : MaxMind DB Reader extension
php74-php-pdo-dblib.x86_64 : PDO driver for Microsoft SQL Server and Sybase databases
php74-php-pecl-amqp.x86_64 : Communicate with any AMQP compliant server
php74-php-pecl-apcu.x86_64 : APC User Cache
php74-php-pecl-apfd.x86_64 : Always Populate Form Data
php74-php-pecl-fann.x86_64 : Wrapper for FANN Library
php74-php-pecl-grpc.x86_64 : General RPC framework
php74-php-pecl-http.x86_64 : Extended HTTP support
php74-php-pecl-krb5.x86_64 : Kerberos authentification extension
php74-php-pecl-pcov.x86_64 : Code coverage driver
php74-php-pecl-ssh2.x86_64 : Bindings for the libssh2 library
php74-php-pecl-sync.x86_64 : Named and unnamed synchronization objects
php74-php-pecl-uopz.x86_64 : User Operations for Zend
php74-php-pecl-uuid.x86_64 : Universally Unique Identifier extension for PHP
php74-php-pecl-vips.x86_64 : PHP extension for interfacing with libvips
php74-php-pecl-wddx.x86_64 : Web Distributed Data Exchange
php74-php-pecl-yaml.x86_64 : PHP Bindings for yaml
php74-php-phpiredis.x86_64 : Client extension for Redis
php74-php-smbclient.x86_64 : PHP wrapper for libsmbclient
php74-php-wkhtmltox.x86_64 : HTML Converter
php74-php-pecl-cmark.x86_64 : CommonMark extension
php74-php-pecl-dbase.x86_64 : dBase database file access functions
php74-php-pecl-druid.x86_64 : A Druid driver for PHP
php74-php-pecl-event.x86_64 : Provides interface to libevent library
php74-php-pecl-geoip.x86_64 : Extension to map IP addresses to geographic places
php74-php-pecl-gnupg.x86_64 : Wrapper around the gpgme library
php74-php-pecl-mysql.x86_64 : MySQL database access functions
php74-php-pecl-oauth.x86_64 : PHP OAuth consumer extension
php74-php-pecl-parle.x86_64 : Parsing and lexing
php74-php-pecl-raphf.x86_64 : Resource and persistent handles factory
php74-php-pecl-solr2.x86_64 : API orientée objet pour Apache Solr
php74-php-pecl-stats.x86_64 : Routines for statistical computation
php74-php-pecl-stomp.x86_64 : Stomp client extension
php74-php-pecl-taint.x86_64 : XSS code sniffer
php74-php-pecl-xattr.x86_64 : Extended attributes
php74-php-pecl-xdiff.x86_64 : File differences/patches
php74-php-pecl-xxtea.x86_64 : XXTEA encryption algorithm extension for PHP
php74-php-libvirt-doc.noarch : Document of php-libvirt
php74-php-pecl-base58.x86_64 : Encode and decode data with base58
php74-php-pecl-bitset.x86_64 : BITSET library
php74-php-pecl-crypto.x86_64 : Wrapper for OpenSSL Crypto Library
php74-php-pecl-gender.x86_64 : Gender Extension
php74-php-pecl-hprose.x86_64 : Hprose for PHP
php74-php-pecl-hrtime.x86_64 : High resolution timing
php74-php-pecl-mcrypt.x86_64 : Bindings for the libmcrypt library
php74-php-pecl-pdflib.x86_64 : Package for generating PDF files
php74-php-pecl-propro.x86_64 : Property proxy
php74-php-pecl-radius.x86_64 : yum 
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 PHPRadius client library
php74-php-pecl-redis4.x86_64 : Extension for communicating with the Redis key-value store
php74-php-pecl-redis5.x86_64 : Extension for communicating with the Redis key-value store
php74-php-pecl-scrypt.x86_64 : Scrypt hashing function
php74-php-pecl-sphinx.x86_64 : PECL extension for Sphinx SQL full-text search engine
php74-php-pecl-ssdeep.x86_64 : Wrapper for libfuzzy library
php74-php-pecl-trader.x86_64 : Technical Analysis for traders
php74-php-pecl-xdebug.x86_64 : PECL package for debugging PHP scripts
php74-php-pecl-yaconf.x86_64 : Yet Another Configurations Container
php74-php-pecl-apcu-bc.x86_64 : APCu Backwards Compatibility Module
php74-php-pecl-decimal.x86_64 : Arbitrary-precision floating-point decimal
php74-php-pecl-gearman.x86_64 : PHP wrapper to libgearman
php74-php-pecl-gmagick.x86_64 : Provides a wrapper to the GraphicsMagick library
php74-php-pecl-imagick.x86_64 : Extension to create and modify images using ImageMagick
php74-php-pecl-inotify.x86_64 : Inotify
php74-php-pecl-leveldb.x86_64 : LevelDB PHP bindings
php74-php-pecl-memprof.x86_64 : Memory usage profiler
php74-php-pecl-mongodb.x86_64 : MongoDB driver for PHP
php74-php-pecl-msgpack.x86_64 : API for communicating with MessagePack serialization
php74-php-pecl-rdkafka.x86_64 : Kafka client based on librdkafka
php74-php-pecl-rpminfo.x86_64 : RPM information
php74-php-pecl-seaslog.x86_64 : An effective, fast, stable log extension for PHP
php74-php-pecl-selinux.x86_64 : SELinux binding for PHP scripting language
php74-php-pecl-swoole4.x86_64 : PHP's asynchronous concurrent distributed networking framework
php74-php-pecl-varnish.x86_64 : Varnish Cache bindings
php74-php-pecl-xmldiff.x86_64 : XML diff and merge
php74-php-pecl-igbinary.x86_64 : Replacement for the standard PHP serializer
php74-php-pecl-memcache.x86_64 : Extension to work with the Memcached caching daemon
php74-php-pecl-mogilefs.x86_64 : PHP client library to communicate with the MogileFS storage
php74-php-pecl-mustache.x86_64 : Mustache templating language
php74-php-pecl-rdkafka4.x86_64 : Kafka client based on librdkafka
php74-php-pecl-scoutapm.x86_64 : Native Extension Component for ScoutAPM's PHP Agent
php74-php-pecl-translit.x86_64 : Transliterates non-latin character sets to latin
php74-php-snuffleupagus.x86_64 : Security module for PHP
php74-php-zephir-parser.x86_64 : Zephir parser extension
php74-php-pecl-cassandra.x86_64 : DataStax PHP Driver for Apache Cassandra
php74-php-pecl-json-post.x86_64 : JSON POST handler
php74-php-pecl-mailparse.x86_64 : PHP PECL package for parsing and working with email messages
php74-php-pecl-memcached.x86_64 : Extension to work with the Memcached caching daemon
php74-php-pecl-mosquitto.x86_64 : Extension for libmosquitto
php74-php-pecl-seasclick.x86_64 : An Yandex ClickHouse client driven extension for PHP
php74-php-pecl-xlswriter.x86_64 : An efficient and fast xlsx file export extension
php74-php-horde-horde-lz4.x86_64 : Horde LZ4 Compression Extension
php74-php-pecl-apcu-devel.x86_64 : APCu developer files (header)
php74-php-pecl-couchbase2.x86_64 : Couchbase Server PHP extension
php74-php-pecl-geospatial.x86_64 : PHP Extension to handle common geospatial functions
php74-php-pecl-handlebars.x86_64 : Handlebars templating language
php74-php-pecl-http-devel.x86_64 : Extended HTTP support developer files (header)
php74-php-pecl-krb5-devel.x86_64 : Kerberos extension developer files (header)
php74-php-pecl-luasandbox.x86_64 : Lua interpreter with limits and safe environment
php74-php-pecl-opencensus.x86_64 : A stats collection and distributed tracing framework
php74-php-pecl-ahocorasick.x86_64 : Effective Aho-Corasick string pattern matching algorithmyum 
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
php74-php-pecl-ip2location.x86_64 : Get geo location information of an IP address
php74-php-pecl-http-message.x86_64 : PSR-7 HTTP Message implementation
php74-php-pecl-datadog-trace.x86_64 : APM and distributed tracing for PHP
php74-php-pecl-hdr-histogram.x86_64 : PHP extension wrapper for the C hdrhistogram API
php74-php-pecl-imagick-devel.x86_64 : imagick extension developer files (header)
php74-php-pecl-msgpack-devel.x86_64 : MessagePack developer files (header)
php74-php-pecl-mysql-xdevapi.x86_64 : MySQL database access functions
php74-php-pecl-mysqlnd-azure.x86_64 : Redirection plugin for mysqlnd
php74-php-pecl-igbinary-devel.x86_64 : Igbinary developer files (header)
php74-php-pecl-uploadprogress.x86_64 : An extension to track progress of a file upload

Como podemos ver existe algumas extensões que podemos instalar. Quais devemos instalar depende do projeto em questão, 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.

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-imagick 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

Se usarmos um browser para consultar a pagina info.php que criamos podemos ver todas as informações de forma organizada e simples.

No meu caso o servidor encontra se no IP 192.168.16.232, modifique de acordo com as configurações do seu servidor.

Para aceder a pagina criada, eu uso a seguinte URL:

https://192.168.16.232/info.php

Conclusão

Instalar as versões mais recentes do PHP é fácil e seguro no CentOS 8, utilizando o repositório Remi. Evitando desta forma compilar muitos softwares que dependerá de cada projeto.

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 *