在Coding中部署Laravel项目演示

JellyBool

JellyBool

首先声明:本文并不是很高深的技术贴,而是在尝试给大家一个前车之鉴,从而让大家少走一些弯路,我将演示我是怎么一步一步地在Coding上开启Laravel项目演示,当然了,这些演示并不是简单的html页面,我会为大家讲解怎么在Coding上使用Mysql,Nginx等服务。好了,废话不多说...(其实我很想说我在这当中走了很多弯路的!!!)

首先,使用任何一个平台,你还是得看官方文档,PHP的在这里,看完官方文档你还是不太懂的话,那么恭喜你跟我当时一毛一样啊,不过这也有一个好处,因为看完官方文档后,我相信你对一些基本的概念会了解,以至于不会对我下面写的东西很陌生。所以...我们走起!

1.第一步,我们需要在我们的项目目录下创建三个文件:

  1. index.php (必须,这是你开启Coding项目演示的前提)

  2. Procfile (如果你想使用诸如Nginx等服务,这个文件必须)

  3. nginx_app.conf (自定义服务的相关的配置项)

在Laravel项目中,我们的index.php可以简单地就一行代码:

    <?php
    include('/path/to/public/index.php');

将上面的/path/to/public/index.php改为你对应的目录

然后在Procfile中增加下面一行定于内容:

    web: vendor/bin/heroku-php-nginx -C nginx_app.conf    

上面这一行的意思是:

我:“我要使用Nginx”

Coding:“好的,那你的配置在哪呢?”

我:“就是后面的 nginx_app.conf”

Coding:“OK,我会去找这个文件”

所以最后,我们需要在nginx_app.conf中加入我们自己的配置:

    location / {
    # try to serve file directly, fallback to rewrite
       try_files $uri @rewriteapp;
    }

    location @rewriteapp {
        # rewrite all to index.php
        rewrite ^(.*)$ /index.php/$1 last;
    }

    location ~ ^/(app|app_dev|config)\.php(/|$) {
        fastcgi_pass heroku-fcgi;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

上面这一段代码中,我们需要注意的是在location @rewriteapp这一段,这个意思就是,我需要重写到index.php,到这里,我们的Nginx服务器就配好了。

2.第二步我们来配置我们的数据库Mysql,根据官方文档的说明:

演示平台服务的连接信息可以通过在应用内读取并解析 VCAP_SERVICES 环境变量获取

所以我们该怎么获取这个变量呢,我们可以直接修改config/database.php,为其加上一点内容:

    $db_config = [];
    if($_ENV["VCAP_SERVICES"]){
        $mysql_config = json_decode($_ENV["VCAP_SERVICES"])->mysql[0]->credentials;
        $db_config["host"] = $mysql_config->hostname;
        $db_config["port"] = $mysql_config->port;
        $db_config["user"] = $mysql_config->username;
        $db_config["password"]= $mysql_config->password;
        $db_config["database"] = $mysql_config->name;
    }else{
        $db_config["host"] = 'localhost';
        $db_config["port"] = 3306;
        $db_config["user"] = 'root';
        $db_config["password"]= '';
        $db_config["database"] = 'test';
    }

当然你也可以写到其他地方去然后再在config/database.php中include进来,但是为了方便,我就直接写在前面了,还有就是,在这个文件中,我们不要忘了修改下面的内容:

        'mysql' => [
            'driver'    => 'mysql',
            'host'      => $db_config["host"],
            'database'  => $db_config["database"],
            'username'  => $db_config["user"],
            'password'  => $db_config["password"],
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

没错,就是将数据库的链接直接交给Coding的VCAP_SERVICES这个环境变量了。写到这里,我们的代码部分就OK了,Easy enough…

3.在Coding上实际操作--在上面的步骤都搞定之后,我们将整个代码库push到Coding上,如果你没有走错步骤的话,你会看到类似下面这个样子的:

替代文字

如果你看到这三个文件,Bingo!那么我们就可以点击左下方的演示,然后再检测,同意服务条款,然后点击开启,你将看到这个界面:

替代文字

在这个界面里,我用数字标出了各个操作步骤,红色的:

1: 填入master

2:选择PHP

3:点击一键部署(等两分钟左右就好了)

4:选择服务管理

进入到这个界面(蓝色的框框中的域名我们是可以自定义的,我们等下会说到这点):

替代文字

首先点击右上角的黑色添加服务按钮,在弹出的对话框中选择Mysql,个人建议是绑定选项打勾选择,然后确定(如果你还想使用其他服务,请自己添加),然后在下面的页面中点击绑定:

替代文字

绑定完之后,我们需要将我们的测试数据导入数据库,点击控制台:

替代文字

来到控制台界面:

替代文字

点击右上角的恢复数据就可以将我们的数据导入数据库了。

数据成功导入数据库之后,我们需要回到控制台界面:

替代文字

  1. 修改我们的项目访问域名(起一个你喜欢的名字)

  2. 点击确定

  3. 点击重启

然后,我们坐等20秒左右。。。最后,如果成功恢复到正在运行状态的话,对自己说一声:Yeah!!!

点击马上访问就可以见证奇迹了,啦啦啦~~~

本文由 JellyBool 创作, 转载和引用遵循 署名-非商业性使用 2.5 中国大陆 进行许可。

共有 9 条评论

woailuosj
修改的评论也不能少于六个字哦!
JellyBool
修改的评论也不能少于六个字哦!
huzhihang
修改的评论也不能少于六个字哦!
JellyBool
修改的评论也不能少于六个字哦!
woailuosj
修改的评论也不能少于六个字哦!
Corwien
修改的评论也不能少于六个字哦!
gaofandi1236677
修改的评论也不能少于六个字哦!
JellyBool
修改的评论也不能少于六个字哦!
gaofandi1236677
修改的评论也不能少于六个字哦!