对我来说我只能执行artisan
如果我在Laravel(4.1)项目的根目录中,它在我看来(从查看来源)代码)这是设计的,而不是我在安装东西时犯了一些错误的副产品。
例如,我将artisan
复制到我的~/bin
,但当然它在整个地方都使用了__DIR__
,所以它抱怨找不到像{{1}这样的内容}}
这是对的吗?我是否必须始终只是为了执行~/bin/bootstrap/autoload.php
命令而转到项目根目录?或者我错过了什么?
答案 0 :(得分:4)
你必须从你的项目根运行工匠,但你可以在任何你喜欢的地方。
你可以这样做:
#/tmp> php /var/www/project/artisan migrate
但不是
#/var/www/project/artisan> php /bin/artisan migrate
如果您有2个项目,它怎么知道它应该从哪个项目运行?
我已经构建了这个小应用程序:https://github.com/antonioribeiro/artisan-anywhere
这对你有所帮助。您可以在项目文件夹中的任何位置,仍然使用工匠。所以你将能够:
#/var/www/project/artisan/public/assets/css> artisan migrate
答案 1 :(得分:1)
你不能在laravel应用程序之外调用工匠,因为它依赖于他的一些文件来运行..
第一个解决方案:创建别名
您可以在.bashrc文件中添加别名,如alias artisan='php /project_folder/artisan'
。
第二个解决方案:创建符号链接
$ chmod +x /project_folder/artisan
(让它可执行)
$ sudo ln -s /project_folder/artisan /usr/bin/artisan
然后输入artisan