8

我正在寻找使用 Laravel3 设置多环境项目,但我不明白设置环境的命令。

我在这里看到:http: //laravel.com/docs/artisan/commands 命令是:

php artisan foo --env=local

我已经成功使用了 artisan 和 bob ,但我无法理解foo,我尝试更改为我的项目名称,但输出始终相同:“对不起,我找不到那个任务。”

如果我尝试: php artisan --env=local

这将返回:“您忘记提供任务名称。”

有人可以帮忙吗?谢谢你的时间。

[编辑]现在有了答案,我可以更好地理解并改进我的问题:

我有一个创建了这些文件夹的项目:http: //d.pr/i/5nZS 考虑到这一点,我需要将本地环境设置为开发,将生产设置为生产。那么,我可以使用命令“php artisan --env=local”的任何变体来做到这一点,或者我需要在我的 public/.htaccess 中添加“SetEnv LARAVEL_ENV development”?

再次感谢。

4

4 回答 4

12

“Foo”是您要运行的任何命令。例如迁移:

php artisan migrate --env=local

您可以做的另一件事是将您的计算机主机名添加到此阵列

例如,如果我的本地计算机名称是“Effinity.local”,我可以这样做

$environments = array(
    'local' => array('http://localhost*', 'Effinity.local'),
);

然后你不需要指定环境,只需:

php artisan migrate

希望有帮助。

于 2013-01-15T17:51:06.537 回答
1

在这里,我如何解决我的问题:

首先我不需要命令php artisan migrate --env=local,我只需要在我的虚拟主机上设置:SetEnv LARAVEL_ENV development

其次,正如 William Cahill-Manley 所说,我需要处理 application/paths.php,即 $environments。我以前用过,但是方法不对。就我而言,我解决了这个问题:

$environments = array(
    'development' => array('http://localhost/project*', '*project/*'),
    'production' => array('http://project.com', 'http://*.project.com')
);

我的问题是因为我之前的代码是这样的:

$environments = array(
    'development' => array('http://localhost/project*', '*project*'),
    'production' => array('http://project.com', 'http://*.project.com')
);

并且因为开发数组的第二个元素,在生产服务器中总是会在开发中。那是因为开发上的网址是http://project/和生产上的网址是http://project.com/http://user.project.com/

看,该项目将强制在所有环境中由星号/通配符开发。

于 2013-01-20T18:01:35.290 回答
0

Foo 是一个任务名称,尝试在任务文件夹中创建此文件,还有一些其他任务是预定义的,例如迁移等。

<?php 
    class foo_task {
    public function run(){
            echo 'this is foo';
        }
    } 
?>

然后当您运行命令时,它将运行 run 函数中的代码。

php artisan foo --env=local
于 2013-01-17T00:37:34.697 回答
0

我建议首先为您的 Web 应用程序设置一个基于名称的虚拟主机:

<VirtualHost *:80>
    ServerAdmin postmaster@localhost
    DocumentRoot "__PATH TO YOUR SERVER ROOT___/project/public/"
    ServerName project.dev
    ErrorLog "logs/project-error.log"
    CustomLog "logs/project-access.log" combined
</VirtualHost>

然后将 project.dev 添加到您的主机文件/private/etc/hosts中,如下所示:

127.0.0.1 project.dev

之后不要忘记刷新 DNS 缓存:

$ dscacheutil -flushcache

[project root]/path.php然后将在(您提到的 applications/path.php 文件不存在)中找到的 $environments 数组修改回原来的样子。原始 *.dev 通配符将在您提供的 url 末尾选择 .dev。

$environments = array(

    'local' => array('http://localhost*', '*.dev'),

);

然后在里面创建一个目录,在新目录中放置一个文件applications/config/叫. 此文件中给出的配置将覆盖由您创建的目录的父目录中给出的相应配置文件和设置/值设置的配置。localapplication.phplocal

于 2013-02-05T08:37:21.267 回答