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
更改它,但是如果您执行作曲者更新或安装,则必须重新执行。
上一篇: Php artisan serve require fatal error after upgrading php7
下一篇: action.php could not fetch the data from the database table