今天我遇到了一个非常奇怪的情况,我从来没有遇到过,找不到真正的解决办法。
当我在控制台中输入php artisan
时,它没有返回任何内容。我试过多次克隆repo(它在其他机器上运行良好),并为laravel项目做了一个新的composer update
, composer install
和设置。
在SO上发现了多个这样的情况,并且在运行find -L ./ -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l | grep "Errors parsing".
后
我得到了这个日志:
PHP致命错误:无法在。/vendor/paragonie/random_compat/lib/random_bytes_openssl.php中重新声明random_bytes(/vendor/paragonie/random_compat/lib/random_bytes_openssl.phpPHP致命错误:无法在。/vendor/paragonie/random_compat/lib/random_bytes_dev_random . PHP中重新声明random_bytes()/vendor/paragonie/random_compat/lib/random_bytes_dev_random .phpXargs: php:退出状态255;流产Xargs: php:退出状态255;流产PHP致命错误:无法重新声明。/vendor/paragonie/random_compat/lib/random_int. PHP中的191行random_int()/vendor/paragonie/random_compat/lib/random_int.phpPHP致命错误:无法在。/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php的第76行重新声明random_bytes()/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
希望你们能帮助我。
谢谢!
我认为你的问题是相同的人谁有在PHP 7在这个链接:https://github.com/paragonie/random_compat/issues/115 .
这很奇怪,因为对我来说它工作得很好,所以我必须假设你不是最新的Laravel版本或你的composer.json
文件不正确,因为所有需要paragonie/random_compat
的包依赖关系都必须指向最新的paragonie/random_compat
包,即2.0.4
。
检查composer.json
上所有的Laravel默认包版本号,确保它需要正确的所需版本,像这样:
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~5.0",
"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*"
}
注意:对于未来的读者,我相信如果你不想升级,你不必更改Laravel版本1,但我相信你必须更改所有其余的包版本才能使其工作。
random_bytes()
和random_int()
是在PHP 7中定义的,所以当它们在Paragonie库中重新声明时出现错误。如果你在这个Laravel项目中使用PHP 7,你应该把Paragonie从依赖项中移除。