首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php7在升级php7后需要致命错误

php7在升级php7后需要致命错误
EN

Stack Overflow用户
提问于 2017-12-06 08:54:21
回答 2查看 7.4K关注 0票数 1

将php从7.0.14升级到7.0.26后,php artisan serve抛出此错误

警告:未知:未能打开流:在第0行未知中没有这样的文件或目录,致命错误:未知:打开失败需要'/Applications/XAMPP/xamppfiles/htdocs/school-dashboard/public/server.php‘(包含_path=.:’)在第0行中未知

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-06 17:51:57

好吧,几个小时后我终于发现问题出在哪里了。

在laravel 4中,php artisan serve在引擎盖下做这件事。

代码语言:javascript
复制
<?php 

namespace Illuminate\Foundation\Console;

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;

class ServeCommand extends Command {

   public function fire()
   {
       $this->checkPhpVersion();

       chdir($this->laravel['path.base']);

       $host = $this->input->getOption('host');

       $port = $this->input->getOption('port');

       $public = $this->laravel['path.public'];

       $this->info("Laravel development server started on http://{$host}:{$port}");

       passthru('"'.PHP_BINARY.'"'." -S {$host}:{$port} -t \"{$public}\" server.php");
    }
}

这本质上就是简单的php:php -S 127.0.0.1:8000 -t public serve.php - 有关更多信息,请参见php内置服务器的docs。

这在php 7.0.26之前运行得很好,其中内置服务器的php -S的最后一个参数也被更改为一个标志,所以您必须像这样调用php -S 127.0.0.1:8000 -t public -f serve.php

如果要使用php artisan serve提供服务,则必须重写ServeCommand并将fire()方法的最后一行更改为:

passthru('"'.PHP_BINARY.'"'." -S {$host}:{$port} -t \"{$public}\" -f server.php");

或者您可以在ServeCommand中直接更改它,但是如果您执行编写器更新或安装,则必须再次进行。

票数 10
EN

Stack Overflow用户

发布于 2019-08-21 15:12:15

这就是我今天经营一个Laravel项目时发生的事。在我尝试了所有可能的解决方案之后,我终于找到了一个适合我的解决方案。因此,首先,检查您的反病毒阻止您的server.php和它也删除它。然后检查您的项目中是否缺少server.php,我认为这可能是肯定的。只需复制它(server.php)从其他项目(也建立从拉拉),但在此之前,只需关闭您的反病毒,直到您下次重新启动,并确保您将停止每次运行之前。我希望它能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47670251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档