Solving php-fpm-socket-helper: No such file or directory

I was running through a helpful DigitalOcean guide on getting multiple PHP-FPM versions configured on a Debian installation. Nothing too complex, but I’m usually doing this on RedHat derivatives so I appreciated the hand-holding. At the end of it the PHP-FPM service stubbornly refused to start correctly and I encountered an error that I hadn’t seen before:

1
Jun 01 19:45:07 XXXXXXX systemd[22426]: php7.2-fpm.service: Failed at step EXEC spawning /usr/lib/php/php-fpm-socket-helper: No such file or directory

Sure enough, no such file. Googling the error didn’t turn up much. More surprisingly I tried using apt-file to identify the provider of the file, and came up empty. I ran across a very old page that suggested php-common (a version-independent package) might provide the file. That package was already installed, but outdated, so I updated it…and the file was created and PHP-FPM was working again.

The sequence was odd. I went back to apt-file, which still didn’t recognize the file and, what’s more, doesn’t list it when you run apt-file list php-common:

1
2
3
4
5
6
7
8
9
10
11
12
php-common: /etc/cron.d/php
php-common: /lib/systemd/system/phpsessionclean.service
php-common: /lib/systemd/system/phpsessionclean.timer
php-common: /usr/lib/php/php-helper
php-common: /usr/lib/php/php-maintscript-helper
php-common: /usr/lib/php/sessionclean
php-common: /usr/sbin/phpdismod
php-common: /usr/sbin/phpenmod
php-common: /usr/sbin/phpquery
php-common: /usr/share/doc/php-common/changelog.gz
php-common: /usr/share/doc/php-common/copyright
php-common: /usr/share/lintian/overrides/php-common

That’s odd, because dpkg -L does:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/etc
/etc/apt
/etc/apt/preferences.d
/etc/apt/preferences.d/php-common.pref
/etc/cron.d
/etc/cron.d/php
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/phpsessionclean.service
/lib/systemd/system/phpsessionclean.timer
/usr
/usr/lib
/usr/lib/php
/usr/lib/php/packaging
/usr/lib/php/php-fpm-socket-helper
/usr/lib/php/php-helper
/usr/lib/php/php-maintscript-helper
/usr/lib/php/sessionclean
/usr/sbin
/usr/sbin/phpenmod
/usr/sbin/phpquery
/usr/share
/usr/share/doc
/usr/share/doc/php-common
/usr/share/doc/php-common/NEWS.Debian.gz
/usr/share/doc/php-common/changelog.gz
/usr/share/doc/php-common/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/php-common
/var
/var/lib
/var/lib/php
/var/lib/php/modules
/var/lib/php/sessions
/usr/sbin/phpdismod

Leaving aside that dpkg shows the directory hierarchy, there are noteworthy differences and I’m not sure what to make of them, or how php-common got into such a weird state.