我在(奇妙的)Laravel PHP框架上使用工匠时遇到致命错误。
我最近下载了Laravel的v3.2.1,并尝试在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;
我的问题是:是否有任何特定的环境,目录或其他权限我应该修改以使工匠正常运行。
一点背景:
我的环境:
我的根目录:(括号中的权限)
如果我的相关设置有任何其他详细信息,请与我们联系。我真的不确定在解决这个问题时会有什么帮助。
-
更新:我还将此问题发布到Laravel的GitHub问题跟踪器。 (https://github.com/laravel/laravel/issues/820)
答案 0 :(得分:10)
首先,感谢@KingCrunch,您的第一个回复让我走上了解决此问题的正确道路。此外,我收到了Dreamhost技术支持(特别是Gary S)的出色回复,他给了我正在寻找的简明答案。
问题是:我在CLI上运行PHP 5.2.17,而我的Web服务器运行的是PHP 5.3.13。
决议是:使用
/usr/local/php53/bin/php artisan <command>
在CLI上运行artisan命令时。这将确保我的所有工匠命令都使用PHP 5.3及更高版本运行,满足Laravel的PHP 5.3+要求。
答案 1 :(得分:5)
在PHP 5.3中引入了命名空间和__DIR__
- 伪常量。看来你正在运行旧版本。你应该更新到至少5.3。
php -v