Установить модуль php для apache2

Вопрос или проблема

Моя установка apache2 поломана. Я не могу установить php модуль для apache2. Как установить php модуль для Apache2?

Что я пробовал:

$ sudo apt reinstall libapache2-mod-php
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-5.11.0-44-generic linux-hwe-5.11-headers-5.11.0-44 linux-image-5.11.0-44-generic
  linux-modules-5.11.0-44-generic linux-modules-extra-5.11.0-44-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 3 not upgraded.
Need to get 2.836 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://aw.archive.ubuntu.com/ubuntu focal/main amd64 libapache2-mod-php all 2:7.4+75 [2.836 B]
Fetched 2.836 B in 1s (4.938 B/s)             
dpkg: warning: files list file for package 'firefox-mozilla-build' missing; assuming package has no files 
currently installed
(Reading database ... 333225 files and directories currently installed.)
Preparing to unpack .../libapache2-mod-php_2%3a7.4+75_all.deb ...
Unpacking libapache2-mod-php (2:7.4+75) over (2:7.4+75) ...
Setting up libapache2-mod-php (2:7.4+75) ...

и

$ sudo apt purge libapache2-mod-php
$ sudo apt install libapache2-mod-php

Модуль не установлен:

$ ls /etc/apache2/mods-available
access_compat.load    cgi.load                  log_debug.load       ratelimit.load
actions.conf          charset_lite.load         log_forensic.load    reflector.load
actions.load          data.load                 lua.load             remoteip.load
alias.conf            dav_fs.conf               macro.load           reqtimeout.conf
alias.load            dav_fs.load               md.load              reqtimeout.load
allowmethods.load     dav.load                  mime.conf            request.load
asis.load             dav_lock.load             mime.load            rewrite.load
auth_basic.load       dbd.load                  mime_magic.conf      sed.load
auth_digest.load      deflate.conf              mime_magic.load      session_cookie.load
auth_form.load        deflate.load              mpm_event.conf       session_crypto.load
authn_anon.load       dialup.load               mpm_event.load       session_dbd.load
authn_core.load       dir.conf                  mpm_prefork.conf     session.load
authn_dbd.load        dir.load                  mpm_prefork.load     setenvif.conf
authn_dbm.load        dump_io.load              mpm_worker.conf      setenvif.load
authn_file.load       echo.load                 mpm_worker.load      slotmem_plain.load
authn_socache.load    env.load                  negotiation.conf     slotmem_shm.load
authnz_fcgi.load      expires.load              negotiation.load     socache_dbm.load
authnz_ldap.load      ext_filter.load           proxy_ajp.load       socache_memcache.load
authz_core.load       file_cache.load           proxy_balancer.conf  socache_redis.load
authz_dbd.load        filter.load               proxy_balancer.load  socache_shmcb.load
authz_dbm.load        headers.load              proxy.conf           speling.load
authz_groupfile.load  heartbeat.load            proxy_connect.load   ssl.conf
authz_host.load       heartmonitor.load         proxy_express.load   ssl.load
authz_owner.load      http2.conf                proxy_fcgi.load      status.conf
authz_user.load       http2.load                proxy_fdpass.load    status.load
autoindex.conf        ident.load                proxy_ftp.conf       substitute.load
autoindex.load        imagemap.load             proxy_ftp.load       suexec.load
brotli.load           include.load              proxy_hcheck.load    unique_id.load
buffer.load           info.conf                 proxy_html.conf      userdir.conf
cache_disk.conf       info.load                 proxy_html.load      userdir.load
cache_disk.load       lbmethod_bybusyness.load  proxy_http2.load     usertrack.load
cache.load            lbmethod_byrequests.load  proxy_http.load      vhost_alias.load
cache_socache.load    lbmethod_bytraffic.load   proxy.load           xml2enc.load
cern_meta.load        lbmethod_heartbeat.load   proxy_scgi.load
cgid.conf             ldap.conf                 proxy_uwsgi.load
cgid.load             ldap.load                 proxy_wstunnel.load

Для меня libapache2-mod-php не включал установленную версию php, по какой-то причине.

Поэтому мне пришлось запустить a2enmod и посмотреть, что у меня доступно. В моем случае, у меня были такие версии:
php7.0 php7.2 php7.3 php7.4 php8.0 php8.1

Я перепроверил с установленной версией apt list php | grep installed. В моем случае, у меня установлено:
php/focal,focal,now 2:8.1+92+ubuntu20.04.1+deb.sury.org+2 all [installed]

Что означает, у меня версия 8.1 (с патчами от ubuntu, но это неважно для этого).

Поэтому мне просто нужно было запустить a2enmod php8.1, и проблема была решена!

Ответ или решение

Для решения проблемы с установкой модуля PHP для Apache2 следует понять несколько ключевых шагов, которые помогут вам успешно активировать нужный модуль. Ниже приведено руководство на русском языке в формате FOREST:

F – Факт: Вы столкнулись с проблемой установки PHP модуля для Apache2, несмотря на попытки переустановки и очистки пакета libapache2-mod-php.

O – Описание ситуации: Вы уже пытались выполнить переустановку через команды sudo apt reinstall libapache2-mod-php и sudo apt purge libapache2-mod-php, но при проверке содержимого каталога /etc/apache2/mods-available отсутствуют какие-либо php модули.

R – Решение:

  1. Проверка установленных пакетов PHP:
    Убедитесь в том, какая версия PHP установлена в вашей системе, выполнив команду:

    apt list php | grep installed

    Это покажет вам все установленные версии PHP.

  2. Активирование модуля PHP для Apache:

    • Используйте команду a2enmod для включения нужного модуля. Например, если у вас установлена версия PHP 8.1, выполните:
      sudo a2enmod php8.1
    • После активации перезагрузите Apache для применения изменений:
      sudo systemctl restart apache2
  3. Проверка состояния:

    • Убедитесь, что модуль PHP успешно активирован, используя:
      apache2ctl -M | grep php

      Это покажет загруженные модули Apache и подтвердит наличие PHP.

E – Эффект: Эта процедура гарантирует, что Apache начнет правильно обрабатывать PHP-скрипты, активировав нужную версию PHP модуля.

S – Специфика:

  • Ошибки и решения: Если после выполнения всех шагов PHP все еще не работает, проверьте логи Apache, чтобы выявить потенциальные ошибки:
    sudo tail -f /var/log/apache2/error.log
  • Дополнительные библиотеки: Убедитесь, что у вас установлены все необходимые библиотеки и расширения PHP, специфичные для вашего проекта или веб-приложения.

T – Итог: Установка и активация корректного модуля PHP в Apache2 обеспечивает соответствующую обработку PHP-скриптов на сервере. Подробно соблюдайте приведенные инструкции, и ваша конфигурация будет корректно работать.

Эти шаги помогут вам без проблем активировать нужный модуль и решить возникшие сложности. Удачи в настройке вашего веб-сервера!

Оцените материал
Добавить комментарий

Капча загружается...