Eu estava instalando o redis e me deparei com o erro de instalação php8.3-fpm. Estas são as mensagens de instalação relevantes:
apt install redis-server
...
...
Setting up php8.3-fpm (8.3.6-0ubuntu0.24.04.2) ...
NOTICE: Not enabling PHP 8.3 FPM by default.
NOTICE: To enable PHP 8.3 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.3-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
Job for php8.3-fpm.service failed because a timeout was exceeded.
See "systemctl status php8.3-fpm.service" and "journalctl -xeu php8.3-fpm.service" for details.
invoke-rc.d: initscript php8.3-fpm, action "restart" failed.
× php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php8.3-fpm.service; enabled; preset: enabled)
Active: failed (Result: timeout) since Sun 2024-10-06 13:52:03 CEST; 16ms ago
Docs: man:php-fpm8.3(8)
Process: 285882 ExecStart=/usr/sbin/php-fpm8.3 --nodaemonize --fpm-config /etc/php/8.3/fpm/php-fpm.conf (code=exited, status=0/SUCCESS)
Process: 285889 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/8.3/fpm/pool.d/www.conf 83 (code=exited, status=0/SUCCESS)
Main PID: 285882 (code=exited, status=0/SUCCESS)
CPU: 90ms
Oct 06 13:50:33 Ubuntu-2404-noble-amd64-base systemd[1]: Starting php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager...
Oct 06 13:52:03 Ubuntu-2404-noble-amd64-base systemd[1]: php8.3-fpm.service: start operation timed out. Terminating.
Oct 06 13:52:03 Ubuntu-2404-noble-amd64-base systemd[1]: php8.3-fpm.service: Failed with result 'timeout'.
Oct 06 13:52:03 Ubuntu-2404-noble-amd64-base systemd[1]: Failed to start php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager.
dpkg: error processing package php8.3-fpm (--configure):
installed php8.3-fpm package post-installation script subprocess returned error exit status 1
Setting up libjemalloc2:amd64 (5.3.0-2build1) ...
Setting up liblzf1:amd64 (3.6-4) ...
Setting up redis-tools (5:7.0.15-1build2) ...
Setting up redis-server (5:7.0.15-1build2) ...
Created symlink /etc/systemd/system/redis.service → /usr/lib/systemd/system/redis-server.service.
Created symlink /etc/systemd/system/multi-user.target.wants/redis-server.service → /usr/lib/systemd/system/redis-server.service.
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
Errors were encountered while processing:
php8.3-fpm
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)
As mensagens systemctl e yournalctl não são particularmente descritivas - apenas dizem que o php8.3-fpm falhou ao iniciar com o resultado 'timeout'.
O erro parece estar no dpkg
processamento php8.3-fpm
:installed php8.3-fpm package post-installation script subprocess returned error exit status 1
Conteúdo de /var/lib/dpkg/info/php8.3-fpm.postinst
:
#!/bin/sh
set -e
if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then
. /usr/share/apache2/apache2-maintscript-helper
php_enable() {
# Don't enable PHP FPM by default when Apache 2 is installed
apache2_msg notice "NOTICE: Not enabling PHP 8.3 FPM by default."
apache2_msg notice "NOTICE: To enable PHP 8.3 FPM in Apache2 do:"
apache2_msg notice "NOTICE: a2enmod proxy_fcgi setenvif"
apache2_msg notice "NOTICE: a2enconf php8.3-fpm"
apache2_msg notice "NOTICE: You are seeing this message because you have apache2 package installed."
return 1
}
else
php_enable() {
# Don't enable PHP FPM by default when Apache 2 is not installed
return 1
}
fi
if [ "$1" = "triggered" ] && [ "$2" = "/etc/php/8.3/fpm/conf.d" ]; then
invoke-rc.d php8.3-fpm restart
fi
CONFDIR=/etc/php/8.3/fpm/conf.d
if [ "$1" = "configure" ]; then
phpini="/etc/php/8.3/fpm/php.ini"
if [ "fpm" = "cli" ]; then
ucf /usr/lib/php/8.3/php.ini-production.fpm $phpini
else
ucf /usr/lib/php/8.3/php.ini-production $phpini
fi
ucfr php8.3-fpm $phpini
if [ -e /usr/lib/php/php-maintscript-helper ]; then
. /usr/lib/php/php-maintscript-helper
mods=$(phpquery -M -v 8.3)
for mod in $mods; do
php_invoke enmod 8.3 fpm $mod
done
fi
if [ -n "$2" ] && dpkg --compare-versions "$2" lt "7.0.3-2~"; then
rm -f /etc/php/8.3/fpm/conf.d/20-opcache.ini;
fi
fi
# Automatically added by dh_apache2/UNDECLARED
if php_enable; then
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
. /usr/share/apache2/apache2-maintscript-helper
for conf in php8.3-fpm ; do
apache2_invoke enconf $conf || exit 1
done
fi
fi
# End automatically added section
# Automatically added by dh_systemd_enable/13.14.1ubuntu5
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
# The following line should be removed in trixie or trixie+1
deb-systemd-helper unmask 'php8.3-fpm.service' >/dev/null || true
# was-enabled defaults to true, so new installations run enable.
if deb-systemd-helper --quiet was-enabled 'php8.3-fpm.service'; then
# Enables the unit on first installation, creates new
# symlinks on upgrades if the unit file has changed.
deb-systemd-helper enable 'php8.3-fpm.service' >/dev/null || true
else
# Update the statefile to add new symlinks (if any), which need to be
# cleaned up on purge. Also remove old symlinks.
deb-systemd-helper update-state 'php8.3-fpm.service' >/dev/null || true
fi
fi
# End automatically added section
# Automatically added by dh_installinit/13.14.1ubuntu5
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
if [ -x "$(command -v systemd-tmpfiles)" ]; then
systemd-tmpfiles ${DPKG_ROOT:+--root="$DPKG_ROOT"} --create php8.3-fpm.conf || true
fi
fi
# End automatically added section
# Automatically added by dh_installdeb/13.14.1ubuntu5
dpkg-maintscript-helper rm_conffile /etc/init/php8.3-fpm.conf 7.4.3-4\~ php8.3-fpm -- "$@"
# End automatically added section
# Automatically added by dh_installinit/13.14.1ubuntu5
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
if [ -z "${DPKG_ROOT:-}" ] && [ -x "/etc/init.d/php8.3-fpm" ]; then
update-rc.d php8.3-fpm defaults >/dev/null
if [ -n "$2" ]; then
_dh_action=restart
else
_dh_action=start
fi
invoke-rc.d php8.3-fpm $_dh_action || exit 1
fi
fi
# End automatically added section
exit 0
Não estou familiarizado com o funcionamento do dpkg, mas exit 1
ele ocorre em 2 locais. O primeiro ocorre ao ler arquivos conf do apache. Eu removi o apache2, então este não pode mais disparar. O segundo apenas sinaliza que a inicialização/reinicialização falhou.
Alguma dica sobre o que pode ser o problema? Isso parece estar acima do meu nível de habilidade.
Informações adicionais:systemctl status php8.3-fpm.service
retornos correntes
× php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php8.3-fpm.service; enabled; preset: enabled)
Active: failed (Result: timeout) since Mon 2024-10-07 11:34:21 CEST; 1min 33s ago
Docs: man:php-fpm8.3(8)
Process: 334032 ExecStart=/usr/sbin/php-fpm8.3 --nodaemonize --fpm-config /etc/php/8.3/fpm/php-fpm.conf (code=exited, status=0/SUCCESS)
Process: 334035 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/8.3/fpm/pool.d/www.conf 83 (code=exited, status=0/SUCCESS)
Main PID: 334032 (code=exited, status=0/SUCCESS)
CPU: 98ms
Oct 07 11:32:51 Ubuntu-2404-noble-amd64-base systemd[1]: Starting php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager...
Oct 07 11:34:21 Ubuntu-2404-noble-amd64-base systemd[1]: php8.3-fpm.service: start operation timed out. Terminating.
Oct 07 11:34:21 Ubuntu-2404-noble-amd64-base systemd[1]: php8.3-fpm.service: Failed with result 'timeout'.
Oct 07 11:34:21 Ubuntu-2404-noble-amd64-base systemd[1]: Failed to start php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager.
Além disso, iniciar manualmente o serviço com /usr/sbin/php-fpm8.3 --nodaemonize --fpm-config /etc/php/8.3/fpm/php-fpm.conf
devoluções
NOTICE: fpm is running, pid 334206
NOTICE: ready to handle connections
NOTICE: systemd monitor interval set to 10000ms
... no more messages
indicando que o fpm foi iniciado com sucesso, mas talvez o systemd tenha um problema? Estou lidando com números PID incompatíveis?
O PHP-FPM é instalado como um
notify
serviço de tipo; isto significa que, citando systemd.service — Configuração da unidade de serviço :Conforme esta linha no seu arquivo de log:
algo está errado com isso; esta notificação nunca é enviada ou nunca é entregue.
Uma solução alternativa para fazer o serviço iniciar corretamente seria alterar o tipo de serviço para
exec
, substituindo/lib/systemd/system/php8.3-fpm.service
.Para fazer isso, execute:
Você verá uma versão comentada do serviço em um editor (o editor dependerá do ambiente; por padrão, no Ubuntu 24.04, ele deve ser
nano
).Altere o arquivo para que fique assim:
Em seguida, salve o arquivo (em
nano
: Ctrl+ O/ Enter/ Ctrl+ X).Por fim, execute:
Observe que a substituição
/lib/systemd/system/php8.3-fpm.service
(em vez de edição manual) é necessária porque uma atualização do PHP-FPM pode muito bem alterar o/lib/systemd/system/php8.3-fpm.service
, revertendo efetivamente a alteração feita.