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 命令错误