我的服务器宕机了,因为我不知道如何修复这个问题。我在 Ubuntu 12.04 上使用这个 PHP5 存储库:http://ppa.launchpad.net/ondrej/php5/ubuntu精准主
直到今天我都没有遇到过问题。几个小时前,我进行了 apt-get 升级,一切都很顺利,直到到达 PHP5-FPM 部分:
The following packages have unmet dependencies:
php5-fpm : Depends: libsystemd-daemon0 (>= 31) but it is not installable
E: Unable to correct problems, you have held broken packages.
我尝试安装libsystemd-daemon0
,但收到一条通知,提示没有安装候选项。有人能告诉我如何解决这个问题,而不会让我抓狂吗?
答案1
对于遇到此问题并使用存储库的任何人(像我一样)ppa:ondrej/php5
,您也需要他们的systemd
存储库才能获取它apt-get
。
sudo add-apt-repository -y ppa:ondrej/systemd
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install -y php5-fpm
答案2
从此刻起,解决方案应该非常简单,只需执行以下操作:
apt-get update
apt-get upgrade
由于添加另一个 PPA 似乎太复杂,我已将所有必要的包合并到主存储库中,因此这种情况不会再发生。
编辑:JFTR php5-fpm 不再依赖于任何 systemd 组件,因此可以安装它而无需拉动 libsystemd-daemon0 的麻烦。
答案3
Tedders 解决方案非常有效。
然而,对于那些拥有有效的 Geo IP PHPFPM 支持并且它在更新时中断的人来说,有一个细节。
要恢复 GeoIP 功能:
pecl install geoip
然后 cd 到 /etc/php5/fpm/conf.d 并添加一个 20-geoip.ini 文件,内容如下:
; configuration for php geoip module
extension=geoip.so
升级还会将一些对 PHPFPM 高可用性有用的设置(重新)设置为零:
emergency_restart_threshold = 5
emergency_restart_interval = 2
process_control_timeout = 2