经过一些更新后,我的 Debian 服务器(运行 Apache 2.2)似乎缺少了libphp5.so
。启动 Apache 导致出现错误消息
sudo service apache2 restart
apache2: Syntax error on line 244 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/php5.load:
Cannot load /usr/lib/apache2/modules/libphp5.so into server: /usr/lib/apache2/modules/libphp5.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
failed!
尝试重新安装 libapache5 然而导致
sudo apt-get install libapache2-mod-php5
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
libapache2-mod-php5 : Depends: apache2-api-20120211
Depends: apache2 (>= 2.4)
udev : Depends: libudev1 (= 215-5+b1) but 215-6 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
无法解决apt-get -f install
问题。它想安装包,udev
但最终出现错误
insserv: script apache: service apache2 already provided!
Errors were encountered while processing:
/var/cache/apt/archives/udev_215-6_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
我不知道该怎么办。如何才能让我的 Apache 再次运行?
编辑
dpkg -C
The following packages are only half configured, probably due to problems
configuring them the first time. The configuration should be retried using
dpkg --configure <package> or the configure menu option in dselect:
dictionaries-common Common utilities for spelling dictionary tools
dovecot-core secure POP3/IMAP server - core files
答案1
- 检查此共享库是否确实缺失(即使文件在您的系统上,某些情况下其加载也会失败并出现此错误),使用
ls -ldL /usr/lib/apache2/modules/libphp5.so
。 很可能是的,它缺失了,因此我们在此分支上继续进行。 - 你的软件包似乎有点问题。
dpkg -C
你可以用 检查一下你的系统上是否有一些损坏的软件包。如果是,你必须先解决这个问题。 - 尝试一下
apt-get --reinstall install libapache2-mod-php5
。关键是--reinstall
标志,如果没有它,即使您的系统处于未损坏状态,也不会发生任何事情。 - 这里你可以找到我的另一个答案,它可以为你提供有用的命令,尽管最初的问题不同:他想修复失败的升级,你想修复你的 apache php5 模块。但问题本质上是一样的:你们都想修复 debian/ubuntu 系统的不一致状态。
扩展响应注释:然后您应该有一个清晰的dpkg -C
输出(没有损坏的包)。接下来我可以看到您的软件包版本和实际的 debian(ubuntu)存储库之间可能存在某种不一致。首先检查您是否安装了所有最新更新:apt-get update
,apt-get dist-upgrade
。
如果有效,说明您已经准备好了。如果无效,则可能需要一些棘手的解决方案。我代替您删除了一些有问题的软件包(dpkg --purge
对于单个软件包,或apt-get --purge remove
删除带有所有依赖项的软件包),然后尝试重新安装它们。如果没有任何效果,我删除了整个 apache2 和 php。
但请注意:通过清除删除软件包也会删除其配置。在此之前,/etc
请先备份您的全部/etc
(或至少备份)!/etc/apache2
附言:您的实际 Debian 镜像可能不太好。您的里面有什么/etc/apt/sources.list
?