Laravel:php artisan serve 无法启动

Posted

技术标签:

【中文标题】Laravel:php artisan serve 无法启动【英文标题】:Laravel: php artisan serve doesn't start 【发布时间】:2017-12-10 12:49:58 【问题描述】:

我在这里挖掘了其他一些答案,但似乎没有什么符合要求。我最初可能会遗漏一些信息,所以请告诉我您可能还需要什么,谢谢!

目前正在运行 ubuntu 7,使用 composer 和 laravel 似乎都安装正确:

当我在终端中输入 'php artisan serve' 和 'php artisan serve --port:8000' 时,我收到此错误:

PHP 警告: 要求(/home/user/Projects/thingy/bootstrap/../vendor/autoload.php): 无法打开流:中没有这样的文件或目录 /home/user/Projects/thingy/bootstrap/autoload.php 第 17 行 PHP 致命错误:require():需要打开失败 '/home/user/Projects/thingy/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/php') 在 /home/user/Projects/thingy/bootstrap/autoload.php 在第 17 行

当我尝试运行 'php -S localhost:8000 -t public/' 时,刷新时出现以下错误:

PHP 7.0.18-0ubuntu0.17.04.1 开发服务器于 7 月 6 日星期四启动 2017 年 09:15:36 在 http://localhost:8000 上收听文档根目录是 /home/user/Projects/thingy/public 按 Ctrl-C 退出。 [7月6日星期四 2017 年 9 点 15 分 40 秒] PHP 警告: 要求(/home/user/Projects/thingy/bootstrap/../vendor/autoload.php): 无法打开流:中没有这样的文件或目录 /home/user/Projects/thingy/bootstrap/autoload.php 在第 17 行 [星期四 2017 年 7 月 6 日 09:15:40] PHP 致命错误:require():打开失败 必需的 '/home/user/Projects/thingy/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/php') 在 /home/user/Projects/thingy/bootstrap/autoload.php 在第 17 行 [星期四 2017 年 7 月 6 日 09:15:40] 127.0.0.1:57214 [500]: / - require(): 失败 需要打开 '/home/user/Projects/thingy/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/php') 在 /home/user/Projects/thingy/bootstrap/autoload.php 在第 17 行

我使用 'ps -ef | 检查了是否有服务器已经在运行。 grep php' 命令在终端中,我根本看不到任何服务器在运行。

我已运行“composer install”,但出现以下错误:

无法创建缓存目录 /home/user/.composer/cache/repo/https---packagist.org/,或目录 不可写。没有缓存继续无法创建缓存 目录 /home/user/.composer/cache/files/,或者目录不是 可写。没有缓存继续无法创建缓存目录 /home/user/.composer/cache/repo/https---packagist.org/,或目录 不可写。继续没有缓存加载作曲家 包含包信息的存储库 安装依赖项 (包括require-dev)来自锁定文件您的要求不能 解析为一组可安装的软件包。

问题 1 - laravel/framework v5.4.28 的安装请求 -> laravel/framework[v5.4.28] 可以满足。 - laravel/framework v5.4.28 需要 ext-mbstring * -> 您的系统中缺少请求的 PHP 扩展 mbstring。 问题 2 - phpunit/php-code-coverage 4.0.8 的安装请求 -> 可由 phpunit/php-code-coverage[4.0.8] 满足。 - phpunit/php-code-coverage 4.0.8 需要 ext-dom * -> 您的系统中缺少请求的 PHP 扩展 dom。问题 3 - phpunit/phpunit 5.7.21 的安装请求 -> 可由 phpunit/phpunit[5.7.21] 满足。 - phpunit/phpunit 5.7.21 需要 ext-dom * -> 您的系统中缺少请求的 PHP 扩展 dom。问题 4 - laravel/framework v5.4.28 需要 ext-mbstring * -> 您的系统中缺少请求的 PHP 扩展 mbstring。 - laravel/tinker v1.0.1 需要Illumination/console ~5.1 -> laravel/framework[v5.4.28] 可以满足。 - laravel/tinker v1.0.1 的安装请求 -> laravel/tinker[v1.0.1] 可以满足。

要启用扩展,请确认它们已在您的 .ini 中启用 文件: - /etc/php/7.0/cli/php.ini - /etc/php/7.0/cli/conf.d/10-opcache.ini - /etc/php/7.0/cli/conf.d/10-pdo.ini - /etc/php/7.0/cli/conf.d/20-calendar.ini - /etc/php/7.0/cli/conf.d/20-ctype.ini - /etc/php/7.0/cli/conf.d/20-exif.ini - /etc/php/7.0/cli/conf.d/20-fileinfo.ini - /etc/php/7.0/cli/conf.d/20-ftp.ini - /etc/php/7.0/cli/conf.d/20-gettext.ini - /etc/php/7.0/cli/conf.d/20-iconv.ini - /etc/php/7.0/cli/conf.d/20-json.ini - /etc/php/7.0/cli/conf.d/20-pdo_pgsql.ini - /etc/php/7.0/cli/conf.d/20-pgsql.ini - /etc/php/7.0/cli/conf.d/20-phar.ini - /etc/php/7.0/cli/conf.d/20-posix.ini - /etc/php/7.0/cli/conf.d/20-readline.ini - /etc/php/7.0/cli/conf.d/20-shmop.ini - /etc/php/7.0/cli/conf.d/20-sockets.ini - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini - /etc/php/7.0/cli/conf.d/20-sysvsem.ini - /etc/php/7.0/cli/conf.d/20-sysvshm.ini - /etc/php/7.0/cli/conf.d/20-tokenizer.ini - /etc/php/7.0/cli/conf.d/20-zip.ini 你也可以在终端内运行php --ini查看CLI模式下PHP使用了哪些文件。

运行“composer dump-autoload”时,我得到以下信息:

无法创建缓存目录 /home/user/.composer/cache/repo/https---packagist.org/,或目录 不可写。没有缓存继续无法创建缓存 目录 /home/user/.composer/cache/files/,或者目录不是 可写。没有缓存继续无法创建缓存目录 /home/user/.composer/cache/repo/https---packagist.org/,或目录 不可写。不使用缓存继续生成优化 自动加载文件

在听从 Nishan Karunarathna 和 Alex 的建议后,我现在在运行 'php artisan serve' 时收到以下错误:

PHP 致命错误:未捕获的错误:类 'Illuminate\Foundation\Application' 未在 /home/joshua/Projects/thingy/bootstrap/app.php:14 堆栈跟踪:

0 /home/joshua/Projects/thingy/artisan(18):require_once()

1 main 在第 14 行的 /home/joshua/Projects/thingy/bootstrap/app.php 中抛出

感谢您提供的任何帮助!

【问题讨论】:

你跑composer install了吗? 是的。我将更新原始帖子以反映这一点。谢谢。 您尝试运行composer dump-autoload 吗? 我发现这是一个例子并尝试了它我得到另一个错误,我将更新上面的内容以反映 更接近了,我编辑了上面的文本,但现在我收到以下错误:PHP 致命错误:未捕获的错误:在 /home/joshua/Projects/thingy 中找不到类 'Illuminate\Foundation\Application' /bootstrap/app.php:14 堆栈跟踪:#0 /home/joshua/Projects/thingy/artisan(18): require_once() #1 main 在 /home/joshua/Projects/thingy/bootstrap/app 中抛出。 php 在第 14 行 【参考方案1】:

好的,所以我设法回答了我自己的问题(实际上是一位朋友为我回答的。)

显然在你安装 laravel 和 composer 之后,它有时会丢失文件路径:

我必须在 /home/user/ 级别的隐藏文件中打开我的 .bashrc 文件并添加命令 'export PATH=~/.composer/vendor/bin:$PATH'

我认为这里的其他用户确实有助于解决我的问题,因为尽管文件位于正确的位置,但 laravel 和 composer 似乎没有正确安装。

【讨论】:

【参考方案2】:

我认为你应该:

1) 安装额外的 php 扩展。进入您的终端,例如: $ sudo apt-get install php7.0-opcache php7.0-calendar php7.0-ctype php7.0-gettext ...

2) 然后授予作曲家缓存目录的权限: $ sudo chmod -R u+w /home/joshua/.composer 或者如果这个目录不存在,你应该在$ sudo mkdir /home/joshua/.composer之前创建它

3) 运行$ composer install

但我想引起你的注意:

1) 检查您的主目录的写入权限。如果没有它们,大部分程序都无法正常运行

2) 可能您需要 php 扩展,但它们没有加载。在这种情况下,请检查您的 .ini 文件并启用扩展。

【讨论】:

按照您的建议进行操作后,我得到以下信息:无法创建缓存目录/home/joshua/.composer/cache/repo/https---packagist.org/,或者目录不可写。没有缓存继续 无法创建缓存目录 /home/joshua/.composer/cache/files/,或目录不可写。在没有缓存的情况下继续 Composer 在 /home/user 中找不到 composer.json 文件要初始化项目,请按照getcomposer.org“入门”部分中的说明创建一个 composer.json 文件 对不起,我给你的路径错误,你应该执行:$ sudo chmod -R u+w /home/joshua/.composer 谢谢,我的错实际上是我编辑了文件路径以使阅读器更友好,当我将它放入终端时我没有重新编辑它。我运行了您的代码,并且当时有效!还不确定它是否正常运行【参考方案3】:

您已经整理出了 composer install 遇到的错误。

安装所需的 PHP 扩展

sudo apt-get install php7.0-mbstring

sudo apt-get install php7.0-xml

然后重启你的 nginx 并尝试再次运行 composer install。

【讨论】:

他为什么要重启网络服务器?

以上是关于Laravel:php artisan serve 无法启动的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:php artisan serve 无法启动

使用“php artisan serve”命令运行 Laravel 有啥意义?

Laravel `php artisan serve` 抛出没有意义的错误

laravel8-php artisan serve 命令错误

xampp 上的 laravel 出现错误,但 php artisan serve 正在工作

laravel 5.4 php artisan serve 无效请求(意外的 EOF)