Php 升级后 artisan serve 需要致命错误 php7
Php artisan serve require fatal error after upgrading php7
将 php 从 7.0.14 升级到 7.0.26 后 php artisan serve
抛出此错误
Warning: Unknown: failed to open stream: No such file or directory in
Unknown on line 0
Fatal error: Unknown: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/school-dashboard/public/server.php'
(include_path='.:') in Unknown on line 0
好的,经过几个小时的努力,我终于发现了问题所在。
在 laravel 4 php artisan serve
中
<?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
- see the docs for php built in server for more info。
这在 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
中更改它,但是如果您进行了 composer 更新或安装,则必须重新进行。
这就是今天发生在我身上的事情 运行 一个 Laravel 项目。在我尝试了所有可能的解决方案之后,我终于得到了一个适合我的解决方案。因此,首先检查您的防病毒软件是否阻止了您的 server.php 并将其删除。然后检查您的项目中是否缺少 server.php,我认为可能是。只需从其他项目(也可以从 laravel 构建)复制它 (server.php),但在此之前,请关闭您的防病毒软件,直到您下次重新启动,并确保每次在 运行。希望对你有帮助。
将 php 从 7.0.14 升级到 7.0.26 后 php artisan serve
抛出此错误
Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0 Fatal error: Unknown: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/school-dashboard/public/server.php' (include_path='.:') in Unknown on line 0
好的,经过几个小时的努力,我终于发现了问题所在。
在 laravel 4 php artisan serve
中
<?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
- see the docs for php built in server for more info。
这在 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
中更改它,但是如果您进行了 composer 更新或安装,则必须重新进行。
这就是今天发生在我身上的事情 运行 一个 Laravel 项目。在我尝试了所有可能的解决方案之后,我终于得到了一个适合我的解决方案。因此,首先检查您的防病毒软件是否阻止了您的 server.php 并将其删除。然后检查您的项目中是否缺少 server.php,我认为可能是。只需从其他项目(也可以从 laravel 构建)复制它 (server.php),但在此之前,请关闭您的防病毒软件,直到您下次重新启动,并确保每次在 运行。希望对你有帮助。