【问题标题】:Fatal Error While Running Artisan (Laravel) on Command Line在命令行上运行 Artisan (Laravel) 时出现致命错误
【发布时间】:2012-06-16 00:58:39
【问题描述】:

我在(很棒的)Laravel PHP 框架上使用 artisan 时遇到了一个致命错误。

我最近下载了 v3.2.1 的 Laravel,并尝试在 artisan 所在的目录中运行以下命令行:

php artisan key:generate

这应该会在我的 applications/application.php 文件中为我创建一个随机密钥。 (有关此命令的具体参考,请参阅http://laravel.com/docs/artisan/commands。)

但是,当我从 shell 运行此命令时,我收到以下错误:

Warning: chdir(): No such file or directory (errno 2) in /home/[USERNAME REMOVED]/websites/[DIRECTORY REMOVED]/htdocs/dev/sb4/paths.php on line 62                                                                                                       

Parse error: syntax error, unexpected T_STRING in /home/[USERNAME REMOVED]/websites/[DIRECTORY REMOVED]/htdocs/dev/sb4/laravel/core.php on line 1  

这是paths.php第62行的内容:

chdir(__DIR__);

这是 core.php 第 1 行的内容:

<?php namespace Laravel;

我的问题是:是否有任何特定的环境、目录或其他权限需要我修改才能让 artisan 启动并运行。

一点背景:

  • 我昨天第一次安装了 Laravel 3.2.1
  • 我可以在我的系统上成功运行一个简单的 Web 应用程序(即我可以将请求路由到控制器并正确加载相关联的刀片)
  • 我只是从 GitHub 下载了 Laravel 3.2.1 (laravel-laravel-v3.2.1-8-gaae8b62.zip) 并将其解压到我的服务器上

我的环境:

  • PHP 5.3.13 在 Dreamhost 的共享主机上
  • FireSSH 运行命令

我的根目录:(括号内是权限)

  • /应用程序 (775)
  • /捆绑 (775)
  • /laravel (775)
  • /公共 (775)
  • /存储 (775)
  • /工匠 (664)
  • /paths.php (777)

如果我的设置有任何其他相关的详细信息,请告诉我。我真的不确定什么有助于解决此问题。

--

更新:我还将这个问题发布到 Laravel 的 GitHub 问题跟踪器。 (https://github.com/laravel/laravel/issues/820)

【问题讨论】:

    标签: php laravel laravel-3


    【解决方案1】:

    命名空间和__DIR__-pseud-constant 是在 PHP 5.3 中引入的。看来您正在运行旧版本。您应该至少更新到 5.3。

    php -v
    

    【讨论】:

    • 嗨@KingCrunch,谢谢你的回复,我认为你是正确的。我正在经历一个奇怪的情况。我的 Web 服务 正在 运行 PHP 5.3.13。我可以通过调用 phpinfo() 来验证这一点。但是,当我在命令行运行 php -v 时,它显示我正在运行 PHP 5.2.17。我正在研究为什么会这样。当我得到一些反馈或明确的答案时,我会在这里发布我的发现。
    • 看来,您有多个 php 安装;) 您可以使用 which php 和/或 whereis php 查找使用的 cli 安装。
    【解决方案2】:

    首先,感谢@KingCrunch,您的第一反应让我找到了解决这个问题的正确途径。此外,我还收到了 Dreamhost 技术支持(特别是 Gary S)的出色回复,他给了我想要的简明答案。

    问题是:我在 CLI 上运行的是 PHP 5.2.17,而我的 Web 服务器运行的是 PHP 5.3.13。

    分辨率为:使用

    /usr/local/php53/bin/php artisan <command>
    

    在 CLI 上运行 artisan 命令时。这将确保我所有的 artisan 命令都使用 PHP 5.3 及更高版本运行,满足 Laravel 的 PHP 5.3+ 要求。

    【讨论】:

      猜你喜欢
      • 2021-07-02
      • 2022-01-05
      • 2015-10-09
      • 2018-01-31
      • 1970-01-01
      • 2017-05-31
      • 2017-11-02
      • 2013-08-01
      • 2021-12-23
      相关资源
      最近更新 更多