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
- 访问phpInfo页面时返回原始PHP源码:
- 补充说明:知晓以root运行并非最佳实践;服务器为无头模式,通过Win10机器管理
解决步骤
重新确认PHP模块安装状态
执行命令检查模块是否正确安装:dpkg -l | grep libapache2-mod-php7.4若输出以
ii开头则安装正常;若未找到,重新安装:apt update && apt install --reinstall libapache2-mod-php7.4启用PHP模块并重启Apache
手动启用模块:a2enmod php7.4重启Apache服务:
systemctl restart apache2验证模块是否加载:
apache2ctl -M | grep php正常应显示
php7.4 (shared)。检查MPM模式兼容性
PHP模块仅兼容MPM prefork模式,若当前使用event/worker模式,切换到prefork:a2dismod mpm_event mpm_worker a2enmod mpm_prefork systemctl restart apache2验证PHP解析配置
检查虚拟主机或全局配置中是否包含PHP处理规则,确保/etc/apache2/mods-enabled/php7.4.conf存在,且包含类似内容:<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>测试PHP解析功能
创建测试文件/var/www/html/test.php:<?php phpinfo(); ?>访问该文件,确认是否正常显示PHP信息页面。
内容的提问来源于stack exchange,提问作者craftcoder
相关产品推荐
相关产品推荐

