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

无PHP-FPM时,如何在Apache配置中为项目指定PHP 7.4版本?

问题描述

我最近在Apache配置文件中添加了一个名为panel的新项目,对应的VirtualHost配置如下:

<VirtualHost *:80>
        ServerName panel.lamtakam.com
        ServerAlias panel.lamtakam.com

        ServerAdmin myemail@gmail.com
        DocumentRoot /var/www/panel/public

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

相关说明:

  • 使用Apache webserver
  • 未安装PHP的fpm组件
  • 服务器上已安装并启用PHP 7.2和7.4两个版本

当通过浏览器访问该项目时,出现如下错误:

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0".

当前项目默认使用PHP 7.2,需要强制Apache使用PHP 7.4来运行该项目,请问该如何操作?


解决方案

核心前提

Apache的mod_php模块同一时间只能加载一个PHP版本,无法直接实现单个虚拟主机的版本隔离,因此提供两种适配不同场景的方案:

方案一:全局切换Apache到PHP 7.4

如果服务器上所有项目都兼容PHP 7.4,可直接全局切换版本:

  1. 禁用PHP 7.2的Apache模块:
sudo a2dismod php7.2
  1. 启用PHP 7.4的Apache模块:
sudo a2enmod php7.4
  1. 重启Apache服务使配置生效:
sudo systemctl restart apache2

方案二:仅让panel项目使用PHP 7.4(推荐)

若需保留其他项目的PHP 7.2环境,需安装PHP-FPM实现版本隔离:

  1. 安装PHP 7.4 FPM(以Debian/Ubuntu为例,其他系统替换对应包名):
sudo apt install php7.4-fpm
  1. 启用Apache的proxy及proxy_fcgi模块:
sudo a2enmod proxy proxy_fcgi
  1. 修改panel项目的VirtualHost配置,添加PHP 7.4 FPM处理规则:
<VirtualHost *:80>
        ServerName panel.lamtakam.com
        ServerAlias panel.lamtakam.com

        ServerAdmin myemail@gmail.com
        DocumentRoot /var/www/panel/public

        # 指定PHP 7.4 FPM处理PHP文件
        <FilesMatch \.php$>
                SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"
        </FilesMatch>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. 重启Apache和PHP-FPM服务:
sudo systemctl restart apache2 php7.4-fpm

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:52:41