在Coding中部署Laravel项目演示

JellyBool
发表于 1周前
首先声明:本文并不是很高深的技术贴,而是在尝试给大家一个前车之鉴,从而让大家少走一些弯路,我将演示我是怎么一步一步地在Coding上开启Laravel项目演示,当然了,这些演示并不是简单的html页面,我会为大家讲解怎么在Coding上使用Mysql,Nginx等服务。好了,废话不多说...(其实我很想说我在这当中走了很多弯路的!!!) 首先,使用任何一个平台,你还是得看官方文档,PHP的在这里,看完官方文档你还是不太懂的话,那么恭喜你跟我当时一毛一样啊,不过这也有一个好处,因为看完官方文档后,我相信你对一些基本的概念会了解,以至于不会对我下面写的东西很陌生。所以...我们走起! 1.第一步,我们需要在我们的项目目录下创建三个文件:
  1. index.php (必须,这是你开启Coding项目演示的前提)
  2. Procfile (如果你想使用诸如Nginx等服务,这个文件必须)
  3. nginx_app.conf (自定义服务的相关的配置项)
在Laravel项目中,我们的index.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 rewritetry_files$uri@rewriteapp;
    }location@rewriteapp {# rewrite all to index.phprewrite ^(.*)$ /index.php/$1last;
    }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: 填入master2:选择PHP

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

4:选择服务管理
进入到这个界面(蓝色的框框中的域名我们是可以自定义的,我们等下会说到这点): 替代文字 首先点击右上角的黑色添加服务按钮,在弹出的对话框中选择Mysql,个人建议是绑定选项打勾选择,然后确定(如果你还想使用其他服务,请自己添加),然后在下面的页面中点击绑定: 替代文字 绑定完之后,我们需要将我们的测试数据导入数据库,点击控制台: 替代文字 来到控制台界面: 替代文字 点击右上角的恢复数据就可以将我们的数据导入数据库了。 数据成功导入数据库之后,我们需要回到控制台界面: 替代文字
  1. 修改我们的项目访问域名(起一个你喜欢的名字)
  2. 点击确定
  3. 点击重启
然后,我们坐等20秒左右。。。最后,如果成功恢复到正在运行状态的话,对自己说一声:Yeah!!! 点击马上访问就可以见证奇迹了,啦啦啦~~~