A história de amor entre o PHP e o Apache é tão grande, que quando você vai instalar o PHP isoladamente para utilizar com outro webserver, Nginx por exemplo, o instalador te obriga a instalar o Apache junto. Neste post irei demonstrar como instalar o PHP sem instalar o Apache simultaneamente via apt.
O processo é mais simples do que parece!
O que você não pode fazer é cair na tentação de instalar o PHP isoladamente:
sudo apt install php
Você precisa verificar quais pacotes seriam instalados executando o dry run:
sudo apt --dry-run install php
Esta opção “–dry-run” apenas mostra quais pacotes serão instalados e o que aconteceria se você instalasse os pacotes. Se você analisar vai ver que entre eles estão algumas dependências do Apache:
apache2-bin apache2-data apache2-utils apache2 libapache2-mod-php7.4
Você verá vários pacotes com a versão do PHP que será instalado, no meu caso, um deles seria:
php7.4-cli
Dependendo da versão do seu Ubuntu, talvez você veja outra versão do PHP, então substitua o comando abaixo pela versão do PHP disponível para seu Ubuntu:
sudo apt --dry-run install php7.4 php7.4-common php7.4-cli php7.4-fpm
Isso executará o instalador em modo estrito e você verá que as dependências do apache foram removidas. Então, se deseja prosseguir remova a opção dry run e instale-o:
sudo apt install php7.4 php7.4-common php7.4-cli php7.4-fpm
Obviamente, esta abordagem não instalará todas as extensões, somente as necessárias padrões para o PHP funcionar.
Se você precisa instalar mais extensões o procedimento é simples, basta procurar pelas extensões disponíveis para sua versão do PHP:
apt search php7.4
Eu geralmente instalo as mais comuns:
sudo apt install php7.4-zip php7.4-xml php7.4-sqlite3 php7.4-mysql php7.4-mbstring php7.4-intl php7.4-curl php7.4-gd
php7.4-bcmath
Você pode verificar as extensões instaladas executando o comando:
php -m
Que no meu caso listou isso:
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib
Bom, é isso!
Espero ter ajudado!
😀