Php Ratchet服务器实例化:";不支持的声明';严格的u型'&引用;

Php Ratchet服务器实例化:";不支持的声明';严格的u型'&引用;,php,composer-php,zeromq,ratchet,Php,Composer Php,Zeromq,Ratchet,我有一个Ratchet应用程序在我的windows本地机器上运行顺利,PHP版本为7.1.8 我尝试在linux部署服务器上安装zmq和php绑定,安装版本为PHPVersion5.5.9和zmq安装版本:4.0.4 以下是我尝试在服务器上实例化服务器脚本时遇到的错误: org@ktm /var/www/html/project_dir (pusher)$ php index.php "/report-test" PHP Warning: Unsupported declare 'stric

我有一个Ratchet应用程序在我的windows本地机器上运行顺利,PHP版本为7.1.8

我尝试在linux部署服务器上安装zmq和php绑定,安装版本为
PHPVersion5.5.9
zmq安装版本:4.0.4

以下是我尝试在服务器上实例化服务器脚本时遇到的错误:

org@ktm /var/www/html/project_dir (pusher)$ php index.php "/report-test"

PHP Warning:  Unsupported declare 'strict_types' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitter.php on line 1
PHP Warning:  Unsupported declare 'strict_types' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitterInterface.php on line 1
PHP Warning:  Unsupported declare 'strict_types' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php on line 1
PHP Parse error:  syntax error, unexpected ':', expecting ';' or '{' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php on line 93
HTTP Fatal error: syntax error, unexpected ':', expecting ';' or '{' (GET /report-test)
<!DOCTYPE html>
“最小稳定性”:“dev”

composer.lock

"name": "react/zmq",
        "version": "dev-master",
        "source": {
            "type": "git",
            "url": "https://github.com/friends-of-reactphp/zmq.git",
            "reference": "13dec0bd2397adcc5d6aa54c8d7f0982fba66f39"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/friends-of-reactphp/zmq/zipball/13dec0bd2397adcc5d6aa54c8d7f0982fba66f39",
            "reference": "13dec0bd2397adcc5d6aa54c8d7f0982fba66f39",
            "shasum": ""
        },
        "require": {
            "evenement/evenement": "^3.0 || ^2.0",
            "ext-zmq": "*",
            "php": ">=5.4.0",
            "react/event-loop": "^1.0 || ^0.5 || ^0.4"
        },
        "require-dev": {
            "ext-pcntl": "*",
            "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4"
        },
        "type": "library",
        "autoload": {
            "psr-4": {
                "React\\ZMQ\\": "src"
            }
        },
在这些文件中,问题似乎是:

vendor/.../src/Evenement\:
<?php declare(strict_types=1);

namespace Evenement;

class EventEmitter implements EventEmitterInterface
{
    use EventEmitterTrait;
}
它应该在
php>=5.4.0
上工作,我们在服务器上有
php5.5.9


我想不出是什么问题

看起来您已经安装了
evenement/evenement:3.0
,它需要PHP
=7.0
。我猜您正在使用与运行应用程序不同的PHP版本更新依赖项。如果使用PHP7.1运行
composer update
,它将安装适用于PHP7.1的依赖项。我建议在
composer.json
中进行配置,以强制安装PHP5.5的依赖项,而不考虑本地PHP版本

"config": {
    "platform": {
        "php": "5.5.9"
    }
},

您还可以在应用程序的
composer.json
约束中禁止
evenement/evenement:3.0
——如果您希望应用程序在PHP5上运行,安装3.0行没有多大意义:

"evenement/evenement": "^2.0"
但是使用
平台
更可靠-这个问题也可能会在其他软件包中出现,手动管理这个问题可能是真正的痛苦



顺便说一句:你知道PHP5.5.9真的很旧,不再支持5.5行吗?您至少应该升级到PHP5.6。

rob006,我尝试在
composer.json
文件中配置
platform
,但我得到了以下错误:`[composer\Repository\RepositorySecurityException]` 406b882bf9206d.json的内容与其签名不匹配。这应该表明有人在中间攻击。再次尝试运行composer,如果您认为这是一个错误,请报告`
"config": {
    "platform": {
        "php": "5.5.9"
    }
},
"evenement/evenement": "^2.0"