
我在 Ubuntu 伺服器 20.04 上,使用 php7.4-fpm 運行 LAMP。
我剛剛執行了最新的更新/升級並確認一切正常:
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-08-26 00:50:45 CST; 7min ago
Docs: man:php-fpm7.4(8)
Main PID: 120871 (php-fpm7.4)
Status: "Processes active: 0, idle: 2, Requests: 24, slow: 0, Traffic: 0.1req/sec"
Tasks: 3 (limit: 4380)
Memory: 80.8M
CGroup: /system.slice/php7.4-fpm.service
├─120871 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
├─120892 php-fpm: pool www
└─120893 php-fpm: pool www
然後幾分鐘後......我的 Nextcloud 安裝突然停止同步,所以我重新檢查 php-fpm 的狀態,我得到:
● php7.4-fpm.service
Loaded: masked (Reason: Unit php7.4-fpm.service is masked.)
Active: inactive (dead) since Fri 2022-08-26 01:07:14 CST; 5min ago
Main PID: 120871 (code=exited, status=0/SUCCESS)
Status: "Processes active: 0, idle: 2, Requests: 44, slow: 0, Traffic: 0req/sec"
Aug 26 01:07:14 admin.example.com systemd[1]: Stopping The PHP 7.4 FastCGI Process Manager...
Aug 26 01:07:14 admin.example.com systemd[1]: php7.4-fpm.service: Succeeded.
Aug 26 01:07:14 admin.example.com systemd[1]: Stopped The PHP 7.4 FastCGI Process Manager.
Warning: journal has been rotated since unit was started, output may be incomplete.`
而且,相當平淡地說,/lib/systemd/system/php7.4-fpm.service
不再存在
# stat /lib/systemd/system/php7.4-fpm.service
stat: cannot stat '/lib/systemd/system/php7.4-fpm.service': No such file or directory
我檢查了syslog
根據時間戳屏蔽服務時發生的情況...日誌中根本沒有任何內容可以解釋發生的情況:
Aug 26 01:07:14 admin systemd[1]: Stopped The PHP 7.4 FastCGI Process Manager.
Aug 26 01:07:14 admin systemd[1]: php7.4-fpm.service: Succeeded.
Aug 26 01:07:14 admin systemd[1]: Stopping The PHP 7.4 FastCGI Process Manager...
Aug 26 01:07:14 admin systemd[1]: Configuration file /etc/systemd/system/gitea.service is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway.
Aug 26 01:07:14 admin systemd[1]: Reloading.
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module readline for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module pspell for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module ctype for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module redis for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module dom for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module soap for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module iconv for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module apcu_bc for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module phar for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module mysqlnd for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module imap for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module xsl for PHP 7.4 fpm sapi
Aug 26 01:07:14 admin php7.4-fpm: php_invoke prerm: Disabled module sysvshm for PHP 7.4 fpm sapi
更新:
當我嘗試使用 解密 php7.4-fpm 時systemctl unmask php7.4-fpm
,會發生兩件事:
/etc/systemd/system/php7.4-fpm.service
已移除。/etc/systemd/system/php7.4-fpm.service
是 /dev/null 的符號鏈接php7.4-fpm.service 啟動使用
init.d
● php7.4-fpm.service - LSB: starts php7.4-fpm
Loaded: loaded (/etc/init.d/php7.4-fpm; generated)
Active: active (exited) since Fri 2022-08-26 09:09:10 CST; 6min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 4380)
Memory: 0B
CGroup: /system.slice/php7.4-fpm.service
如果我嘗試使用重新安裝 php7.4fpmapt-get install --reinstall php7.4-fpm
我得到:
root@admin:~# apt-get install --reinstall php7.4-fpm
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
php7.4-fpm : Depends: php7.4-common (= 7.4.3-4ubuntu2.12) but 7.4.3-4ubuntu2.13 is to be installed
E: Unable to correct problems, you have held broken packages.
以上所有步驟皆基於這篇文章: https://askubuntu.com/questions/804946/systemctl-how-to-unmask
我目前被破損的包裹困住了
是的,我已經嘗試過:
apt install -f
dpkg --configure -a
沒什麼幫助..
答案1
這個問題從根本上來說似乎是上游 ubuntu 儲存庫的打包問題,維護者可能需要一些時間來解決。
The following packages have unmet dependencies:
php7.4-fpm : Depends: php7.4-common (= 7.4.3-4ubuntu2.12) but 7.4.3-4ubuntu2.13 is to be installed
E: Unable to correct problems, you have held broken packages.
同時,解決這個問題的唯一方法似乎是-前-您執行最新的 php 更新...請確保您的電腦上安裝了此儲存庫:
sudo add-apt-repository ppa:ondrej/php
如果在更新之前安裝此存儲庫,您可以避免上面的噩夢。