在我看来,只有当我在Laravel(4.1)项目的根目录中时,我才能执行artisan,而且在我看来(从查看源代码来看),这是设计好的,而不是我在安装过程中犯了一些错误的副产品。例如,我将artisan复制到我的~/bin中,但是当然它到处都使用__DIR__,所以它抱怨说它找不到像~/bin/bootstrap/autoload.php这样的东西。这是正确的吗?我必须总是去项目根目录才能执行artisan命令吗?或者我错过了什么?
artisan
~/bin
__DIR__
~/bin/bootstrap/autoload.php
dz6r00yl1#
您必须从项目根目录运行Artisman,但是您可以在任何您喜欢的位置运行。您可以执行以下操作:
#/tmp> php /var/www/project/artisan migrate
但不是
#/var/www/project/artisan> php /bin/artisan migrate
如果你有两个项目,它怎么知道应该从哪个项目运行呢?我开发了这个小应用程序:https://github.com/antonioribeiro/artisan-anywhere这对你有帮助。你可以在项目文件夹的任何地方使用artisan。所以你可以:
#/var/www/project/artisan/public/assets/css> artisan migrate
i86rm4rw2#
你不能在Laravel应用程序之外调用Artisan,因为它依赖于他的一些文件来运行。
第一种溶液:创建别名
您可以简单地在.bashrc文件中添加别名,例如alias artisan='php /project_folder/artisan'。
alias artisan='php /project_folder/artisan'
第二种溶液:创建符号链接
$ chmod +x /project_folder/artisan(使其可执行)$ sudo ln -s /project_folder/artisan /usr/bin/artisan然后键入artisan
$ chmod +x /project_folder/artisan
$ sudo ln -s /project_folder/artisan /usr/bin/artisan
w41d8nur3#
您可以使用**artisan-root**,我编写的一个小型php实用程序,它将在每个项目中自动定位artisan文件,而不是为每个项目的artisan文件创建别名或符号链接(如果绝对路径被更改,这可能会失败)。此外,还有一个仅bash的变体,它做同样的事情,但仅在Linux上。
artisan-root
artisan-root实用程序是一个PHP脚本,它通过在当前工作目录或其父目录中递归地定位artisan文件来工作。这意味着它将向上查找一个目录,要么找到artisan文件,要么到项目目录之外,在这种情况下,它将停止并显示一条错误消息。
这是Git或Composer等其他软件(需要一个小的额外配置)使用的相当标准的行为。
3条答案
按热度按时间dz6r00yl1#
您必须从项目根目录运行Artisman,但是您可以在任何您喜欢的位置运行。
您可以执行以下操作:
但不是
如果你有两个项目,它怎么知道应该从哪个项目运行呢?
我开发了这个小应用程序:https://github.com/antonioribeiro/artisan-anywhere
这对你有帮助。你可以在项目文件夹的任何地方使用artisan。所以你可以:
i86rm4rw2#
你不能在Laravel应用程序之外调用Artisan,因为它依赖于他的一些文件来运行。
第一种溶液:创建别名
您可以简单地在.bashrc文件中添加别名,例如
alias artisan='php /project_folder/artisan'
。第二种溶液:创建符号链接
$ chmod +x /project_folder/artisan
(使其可执行)$ sudo ln -s /project_folder/artisan /usr/bin/artisan
然后键入
artisan
w41d8nur3#
更好的解决方案
您可以使用**
artisan-root
**,我编写的一个小型php实用程序,它将在每个项目中自动定位artisan文件,而不是为每个项目的artisan文件创建别名或符号链接(如果绝对路径被更改,这可能会失败)。此外,还有一个仅bash的变体,它做同样的事情,但仅在Linux上。
工作原理
artisan-root实用程序是一个PHP脚本,它通过在当前工作目录或其父目录中递归地定位
artisan
文件来工作。这意味着它将向上查找一个目录,要么找到artisan文件,要么到项目目录之外,在这种情况下,它将停止并显示一条错误消息。这是Git或Composer等其他软件(需要一个小的额外配置)使用的相当标准的行为。