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

Laravel项目部署至cpanel遇PHP语法错误求助(PHP8.1.10/Composer2.4.4)

Laravel部署至cPanel时的语法错误排查与解决

问题详情

  • 运行环境:PHP 8.1.10、Composer 2.4.4
  • 错误日志:

[1:33 UTC] PHP Parse error: syntax error, unexpected '=' in /vendor/symfony/string/Resources/functions.php on line 34

项目composer.json配置内容:

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^8.0.2",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^9.19",
        "laravel/sanctum": "^3.0",
        "laravel/tinker": "^2.7"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/pint": "^1.0",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^6.1",
        "phpunit/phpunit": "^9.5.10",
        "spatie/laravel-ignition": "^1.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "platform-check": false,
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

排查与解决步骤

  1. 确认网站实际运行的PHP版本
    cPanel中常出现CLI版本与WEB运行版本不一致的情况,即便你CLI用的是8.1.10,网站可能仍在使用更低版本的PHP。进入cPanel的「选择PHP版本」功能,确认网站当前启用的PHP版本为8.0.2或更高,与composer.json要求匹配。

  2. 重新安装依赖包
    旧依赖可能是用不兼容的PHP版本安装的,导致生成了低版本兼容代码。执行以下命令:

    # 删除旧依赖和锁文件
    rm -rf vendor composer.lock
    # 确认当前CLI的PHP版本
    php -v
    # 重新安装生产环境依赖
    composer install --no-dev
    
  3. 启用Composer平台版本检查
    修改composer.json中的config.platform-check为true,让Composer在安装时验证PHP版本是否符合依赖要求,避免安装不兼容的包:

    "config": {
        "platform-check": true,
        // 其他配置保持不变
    }
    
  4. 验证symfony/string版本兼容性
    Laravel 9.x要求的symfony/string版本完全兼容PHP 8.0+,重新安装后查看composer.lock中该包的版本,确保没有安装针对PHP 7.x的旧版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:01:26