在命令行上运行Artisan(Laravel)时出现致命错误

Gra*_*edy 6 php laravel laravel-3

我在(梦幻般的)Laravel PHP框架上使用工匠时遇到了致命的错误.

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

php artisan key:generate
Run Code Online (Sandbox Code Playgroud)

这应该在我的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  
Run Code Online (Sandbox Code Playgroud)

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

chdir(__DIR__);
Run Code Online (Sandbox Code Playgroud)

这是core.php的第1行:

<?php namespace Laravel;
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否有任何特定的环境,目录或其他权限我应该修改以使工匠启动并运行.

一点背景:

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

我的环境:

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

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

  • / application(775)
  • /捆绑(775)
  • / laravel(775)
  • / public(775)
  • / storage(775)
  • /工匠(664)
  • /paths.php(777)

如果我的相关设置有任何其他详细信息,请告知我们.我真的不确定在解决此问题时有什么帮助.

-

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

Gra*_*edy 10

首先,感谢@KingCrunch,你的第一个回应让我走上了解决这个问题的正确道路.此外,我收到了Dreamhost技术支持(特别是Gary S)的出色回复,他给了我正在寻找的简明回答.

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

决议是:使用

/usr/local/php53/bin/php artisan <command>
Run Code Online (Sandbox Code Playgroud)

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


Kin*_*nch 5

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

php -v
Run Code Online (Sandbox Code Playgroud)

  • 似乎,你有多个PHP安装;)你可以使用`哪个php`和/或`whereis php`来找到使用过的cli安装. (3认同)