Laravel 4 Artisan 根本不工作
Posted
技术标签:
【中文标题】Laravel 4 Artisan 根本不工作【英文标题】:Laravel 4 Artisan not working at all 【发布时间】:2013-04-21 14:43:11 【问题描述】:在为几个项目使用版本 3 后第一次使用 Laravel 4,但似乎根本无法让 Artisan 工作。我进行了大量搜索并按照我能找到但没有运气的故障排除步骤进行操作。
我已经安装了 Mcrypt 我没有要删除的 bootstrap/compiled.php 文件 我有来自 Github 的最新版本的框架 我使用的是最新版本的 Composer当我尝试“作曲家更新”时,我收到此错误:
Script php artisan optimize handling the post-update-cmd event returned with an error:
...没有额外的信息。
尝试运行“php artisan list”或任何其他 artisan 命令根本不会给我任何输出。
有什么想法吗?
【问题讨论】:
也许试试优化命令with the --verbose option?此外,您的 PHP 日志中有什么内容吗?你运行的是什么版本的 PHP? --verbose 选项不走运。像这样在本地运行的东西,PHP 日志将存储在哪里?我习惯于检查服务器上的 error_log 文件,但不确定何时这样做。运行 5.4.4 它将在您的php.ini
、see here 中配置。我没有使用 Composer,但我想知道它是否抑制了一些严重错误(例如它需要的 PHP 模块)。您是否在控制台而不是 Web 服务器上检查了 Mcrypt(根据您的问题我认为它需要)的存在?
谢谢,我找到了日志文件,错误是“找不到 Class 'Patchwork\Utf8\Bootup'”。出于某种原因,“sudo composer update”修复了这个问题。
是的,现在一切都好了!谢谢一半。
【参考方案1】:
总结 cmets 中的讨论,我们发现在 php.ini
级别添加日志记录会显示 Composer 控制台界面未报告的 PHP 错误。我想知道你是否以 root 身份安装了 Composer,因此 Laravel 所需的一些关键文件对于非特权用户实际上是不可见的。
【讨论】:
稍后再谈,只是想提一下,artisan 默认情况下会记录到 app/storage/logs/log-cli-运行 phpinfo 后,我注意到“--disable-mbregex”是 PHP 配置的一部分,这意味着 PHP 没有使用 mbregex 扩展编译。我的错误日志显示“调用未定义函数 mb_regex_encoding”。
使用 mb_regex_encoding 重新编译 PHP 后,问题就消失了。
【讨论】:
【参考方案3】:如果您缺少 /bootstrap/start.php 文件,您不会从 artisan 获得有用的错误消息,并且 composer 会以相同的方式响应。我四处寻找我在网上找到的解决方案,最终发现这个文件丢失了。我一更换它就重新上线了。我发现我的 PHP 错误日志中缺少此文件,并且由于无法运行,因此 artisan 没有生成日志。
【讨论】:
【参考方案4】:我遇到了类似的问题。即使命令$ php artisan --verson
也不会产生任何输出。原来,我在app/start/global.php
下有一些代码在 CLI 执行下被破坏(但在 web 端没有破坏)。
所以这是另一个检查东西的地方! (app/start/global.php
)
【讨论】:
【参考方案5】:我遇到了这个问题,这是因为storage
的子目录还不存在。
当然,这些目录是由项目创建脚本创建的,但它们很容易脱离源代码控制,因此在新克隆的项目中会丢失。 .gitignore
文件在其中似乎是有原因的!
【讨论】:
【参考方案6】:当storage
文件夹中有当前用户不可写的文件时,我出现了这个问题。 php artisan
静默失败,没有输出。更改权限有所帮助。
【讨论】:
以上是关于Laravel 4 Artisan 根本不工作的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 4.2 artisan CLI 在作曲家更新后不再工作
Laravel 5.3 PHP Artisan 不工作 PHP 警告:需要(bootstrap/../vendor/autoload.php)
Laravel Artisan CLI 安全地停止守护进程队列工作者