Назад | Перейти на главную страницу

libphp5.so отсутствует, проблемы с зависимостями

после некоторых обновлений мой сервер 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. Проверьте, действительно ли эта sharedlib отсутствует (в некоторых случаях загрузка не удается с этой ошибкой, даже если файл находится в вашей системе), с помощью ls -ldL /usr/lib/apache2/modules/libphp5.so. Наверное да, его нет, поэтому идем дальше по этой ветке.
  2. Ваши пакеты кажутся немного проблематичными. С dpkg -C вы можете проверить, есть ли в вашей системе поврежденные пакеты. Если да, то сначала нужно решить эту проблему.
  3. Попробуйте apt-get --reinstall install libapache2-mod-php5. Ключ - это --reinstall флаг, без него ничего не произошло, даже если ваша система не повреждена.
  4. Вот вы можете найти мой другой ответ, который может предоставить вам полезные команды, хотя исходный вопрос был другим: он хотел исправить неудачное обновление, вы хотите исправить свой модуль 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) до этого!

P.s. Не исключено, что ваше настоящее зеркало debian действительно не в порядке. Что в твоем /etc/apt/sources.list?