Деплойер PHP не использует версию php по умолчанию

Я попытался развернуть laravel 5.6 с помощью PHP-деплойера. Сайт был успешно развернут. Но я вижу следующую ошибку при попытке доступа к веб-сайту,

Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /mnt/data/sites/laravel_deployer/releases/5/vendor/symfony/http-foundation/Request.php on line 1587

Информационная страница PHP показывает, что сайт работает с PHP 7.0.27 Сайт работает с неправильной версией PHP

тогда как версия PHP по умолчанию на сервере развертывания — 7.1.

[surendar.m@testmachine current]$ php -v
PHP 7.1.17 (cli) (built: May 10 2018 17:38:04) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

У меня есть следующие сомнения,

  1. Почему развернутый сайт не использует системную версию PHP по умолчанию?
  2. Это из-за несоответствия версии PHP я получаю ошибку синтаксического анализа при попытке доступа к веб-сайту?

Моя версия композитора 1.9.1

Файл Composer.json выглядит следующим образом:

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": "^7.1.3",
    "fideloper/proxy": "^4.0",
    "laravel/framework": "5.6.*",
    "laravel/tinker": "^1.0"
},
"require-dev": {
    "filp/whoops": "^2.0",
    "fzaninotto/faker": "^1.4",
    "mockery/mockery": "^1.0",
    "nunomaduro/collision": "^2.0",
    "phpunit/phpunit": "^7.0"
},
"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/"
    }
},
"extra": {
    "laravel": {
        "dont-discover": [
        ]
    }
},
"scripts": {
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},
"config": {
    "preferred-install": "dist",
    "sort-packages": true,
    "optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}

person surendar    schedule 10.12.2019    source источник
comment
в ваших зависимостях композитора указано, что вам нужен как минимум 7.1.3 php. так что да, ожидается, что он сломается на сервере с 7.0   -  person Norman M    schedule 11.12.2019


Ответы (1)


Cli-версия PHP и версия, которую использует Apache, не обязательно должны совпадать. Вам нужно перенастроить Apache для использования PHP 7.1.

person instance    schedule 17.08.2020