【Amazon Linux 2】Assignment outside of section. Ignoring. というエラー

PHP8.2 がリリースされたので、さっそくビルドして自前のAWS EC2インスタンスに入れた。

その過程で、php-fpm をサービスに登録して systemctl status php-fpm.service を実行したところ、以下のログが永遠と並んでいる、とう事象が発生していた。

Dec 11 21:34:18 xxxxxx systemd[1]: [/etc/systemd/system/php-fpm.service:1] Assignment outside of section. Ignoring.
Dec 11 21:34:18 xxxxxx systemd[1]: [/etc/systemd/system/php-fpm.service:2] Assignment outside of section. Ignoring.

原因

php-fpm のユニットファイルの記述を、本来以下のようにすべきだったところ

/etc/systemd/system/php-fpm.service
[Unit]
Description=php-fpm (8.2)
After=network.target

[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

以下のように先頭行の記述( [Unit] )が抜けてしまっていたことだった。

/etc/systemd/system/php-fpm.service
Description=php-fpm (8.2)
After=network.target

[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

つまり「セクションを定義してその中にパラメータを記述する」というお作法に従わず定義されたパラメータは無視しますよ、というログだった。

解決策

上記の正しい例のように Unit セクションを追加したところ、このログは表示されなくなった。

執筆日: