Php artisan服务在升级php7后需要致命错误

将PHP从7.0.14升级到7.0.26后, php artisan serve会引发此错误

警告:未知:未能打开流:没有这样的文件或目录在未知的行0致命错误:未知:无法打开需要'/Applications/XAMPP/xamppfiles/htdocs/school-dashboard/public/server.php'(include_path = '。:')在第0行的Unknown中


好吧,几小时后,我终于发现问题是什么。

在laravel 4 php artisan serve做到了这一点

<?php 

namespace IlluminateFoundationConsole;

use IlluminateConsoleCommand;
use SymfonyComponentConsoleInputInputOption;

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的文档以了解更多信息。

而这种运作良好,花花公子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更改它,但是如果您执行作曲者更新或安装,则必须重新执行。

链接地址: http://www.djcxy.com/p/69427.html

上一篇: Php artisan serve require fatal error after upgrading php7

下一篇: action.php could not fetch the data from the database table