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

Mac环境下Laravel在XAMPP中报语法错误,php artisan serve运行正常

解决Laravel部署到XAMPP出现Parse Error的问题

这个报错我之前帮朋友排查过,核心原因很明确:你的XAMPP环境使用的PHP版本,低于当前Laravel项目要求的最低版本。

你看到的unexpected '?'是因为?是PHP 7.0才引入的「null合并运算符」,而XAMPP里的PHP版本大概率还停留在7.0以下;但php artisan serve用的是你Mac系统自带的(或者你手动配置的)符合版本要求的PHP,所以能正常运行。

下面是具体的解决步骤:

1. 先确认两个环境的PHP版本差异

  • 打开终端,输入 php -v,这就是php artisan serve使用的PHP版本,记下来。
  • 在XAMPP的htdocs目录下新建一个info.php文件,内容写:
    <?php phpinfo(); ?>
    
    启动XAMPP的Apache,在浏览器访问http://localhost/info.php,查看页面里的PHP版本,和终端里的版本对比,你会发现明显的版本差。

2. 升级XAMPP的PHP版本(推荐方案)

首先先确认你的Laravel项目需要的PHP版本:打开项目根目录的composer.json,找到require里的php项,比如Laravel 8.x要求>=7.3.0,Laravel 9.x要求>=8.0.2。

  • 去XAMPP官网下载适配Mac系统、且包含对应PHP版本的XAMPP安装包。
  • 安装新的XAMPP(安装前可以备份旧的项目文件),然后把你的Laravel项目重新放到新XAMPP的htdocs目录下,启动Apache再访问。

3. 手动替换XAMPP的PHP版本(进阶方案)

如果不想重新安装XAMPP,可以手动替换PHP目录:

  • 先停止XAMPP的Apache服务。
  • 找到你系统中符合版本要求的PHP目录(就是终端php -v对应的那个PHP的安装路径),把整个PHP目录复制到XAMPP的xamppfiles目录下,替换原来的php文件夹(替换前记得备份原文件夹)。
  • 打开XAMPP安装目录下的xamppfiles/etc/httpd.conf,找到加载PHP模块的行,比如原来的LoadModule php7_module modules/libphp7.so,修改成对应版本的模块,比如PHP8.1就是LoadModule php8_module modules/libphp8.so。
  • 再打开xamppfiles/etc/httpd-xampp.conf,检查里面的PHP配置路径,确保和新的PHP目录一致。
  • 重启Apache,再访问你的Laravel项目,问题应该就解决了。

注意:不建议修改Laravel框架自带的helpers.php文件,这会导致后续框架更新出现冲突,保证PHP版本符合项目要求才是根本解决办法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:30:25