You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache2 2.4无法执行PHP7.4代码,模块未加载求助

Apache2无法解析PHP代码问题排查

问题详情

  • 环境:Debian 11 x64,通过Openmediavault ISO安装,系统预装Nginx+PHP7.4用于WebUI,当前运行Apache2
  • 操作:已成功安装Apache2的PHP连接器libapache2-mod-php7.4
  • 异常现象:
    • 访问phpInfo页面时返回原始PHP源码:
      <?php
      phpInfo();
      
    • Web服务器返回空白PHP代码
    • /etc/apache2/mods-available/目录中未找到PHP相关模块,目录内容如下:
      root@web1:/etc/apache2/mods-available# ls
      access_compat.load  authn_core.load       authz_host.load     cern_meta.load     deflate.conf     filter.load        lbmethod_bybusyness.load  mime.conf         negotiation.load     proxy_hcheck.load    remoteip.load        setenvif.load          status.load
      actions.conf        authn_dbd.load        authz_owner.load    cgid.conf          deflate.load     headers.load       lbmethod_byrequests.load  mime.load         proxy_ajp.load       proxy_html.conf      reqtimeout.conf      slotmem_plain.load     substitute.load
      actions.load        authn_dbm.load        authz_user.load     cgid.load          dialup.load      heartbeat.load     lbmethod_bytraffic.load   mime_magic.conf   proxy_balancer.conf  proxy_html.load      reqtimeout.load      slotmem_shm.load       suexec.load
      alias.conf          authn_file.load       autoindex.conf      cgi.load           dir.conf         heartmonitor.load  lbmethod_heartbeat.load   mime_magic.load   proxy_balancer.load  proxy_http2.load     request.load         socache_dbm.load       unique_id.load
      alias.load          authn_socache.load    autoindex.load      charset_lite.load  dir.load         http2.conf         ldap.conf                 mpm_event.conf    proxy.conf           proxy_http.load      rewrite.load         socache_memcache.load  userdir.conf
      allowmethods.load   authnz_fcgi.load      brotli.load         data.load          dump_io.load     http2.load         ldap.load                 mpm_event.load    proxy_connect.load   proxy.load           sed.load             socache_redis.load     userdir.load
      asis.load           authnz_ldap.load      buffer.load         dav_fs.conf        echo.load        ident.load         log_debug.load            mpm_prefork.conf  proxy_express.load   proxy_scgi.load      session_cookie.load  socache_shmcb.load     usertrack.load
      auth_basic.load     authz_core.load       cache_disk.conf     dav_fs.load        env.load         imagemap.load      log_forensic.load         mpm_prefork.load  proxy_fcgi.load      proxy_uwsgi.load     session_crypto.load  speling.load           vhost_alias.load
      auth_digest.load    authz_dbd.load        cache_disk.load     dav.load           expires.load     include.load       lua.load                  mpm_worker.conf   proxy_fdpass.load    proxy_wstunnel.load  session_dbd.load     ssl.conf               xml2enc.load
      auth_form.load      authz_dbm.load        cache.load          dav_lock.load      ext_filter.load  info.conf          macro.load                mpm_worker.load   proxy_ftp.conf       ratelimit.load       session.load         ssl.load
      authn_anon.load     authz_groupfile.load  cache_socache.load  dbd.load           file_cache.load  info.load          md.load                   negotiation.conf  proxy_ftp.load       reflector.load       setenvif.conf        status.conf
      
  • 补充说明:知晓以root运行并非最佳实践;服务器为无头模式,通过Win10机器管理

解决步骤

  1. 重新确认PHP模块安装状态
    执行命令检查模块是否正确安装:

    dpkg -l | grep libapache2-mod-php7.4
    

    若输出以ii开头则安装正常;若未找到,重新安装:

    apt update && apt install --reinstall libapache2-mod-php7.4
    
  2. 启用PHP模块并重启Apache
    手动启用模块:

    a2enmod php7.4
    

    重启Apache服务:

    systemctl restart apache2
    

    验证模块是否加载:

    apache2ctl -M | grep php
    

    正常应显示php7.4 (shared)。

  3. 检查MPM模式兼容性
    PHP模块仅兼容MPM prefork模式,若当前使用event/worker模式,切换到prefork:

    a2dismod mpm_event mpm_worker
    a2enmod mpm_prefork
    systemctl restart apache2
    
  4. 验证PHP解析配置
    检查虚拟主机或全局配置中是否包含PHP处理规则,确保/etc/apache2/mods-enabled/php7.4.conf存在,且包含类似内容:

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    
  5. 测试PHP解析功能
    创建测试文件/var/www/html/test.php:

    <?php phpinfo(); ?>
    

    访问该文件,确认是否正常显示PHP信息页面。


内容的提问来源于stack exchange,提问作者craftcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:31:22