使用wamp服务器开发的php应用程序设置buildpack失败

时间:2016-11-11 13:49:58

标签: php git heroku web-hosting

我的应用程序文件夹名称是" social_network"。它在wamp \ www路径中。我正在尝试使用git命令将app文件夹(" social_network")部署到heroku。我按照heroku的说明页面的所有说明进行操作。我在app文件夹中包含了composer.json文件,安装了composer,保存了Procfile。我甚至给出了" --- - name: execute install script script: get-pip.py "的命令。但仍然因为错误消息而导致推送失败"设置buildpack失败" 。 Procfile中的代码是: heroku buildpacks:set这是为wamp服务器中的应用程序提供的流程类型吗?我应该尝试部署什么文件夹 - wamp或social_network?我怀疑是否会有更多的更改,因为它是使用wamp服务器开发的部署。如何成功部署?

1 个答案:

答案 0 :(得分:1)

我所做的错误是将composer.json和Procfile的文件以及我的php文件放在social_network文件夹下,而存储库是在www文件夹中创建的(我在www文件夹中有我的.git文件夹)。因此,heroku无法将我的应用程序识别为php应用程序并且推送失败。

由于我很难部署通过wamp服务器开发的php应用程序,我想解释部署需要数据库的php应用程序所涉及的所有步骤。

最好将所有应用程序文件直接放在www文件夹下。

可以参考以下文件:

Getting started with heroku for php:

拥有一个heroku帐户,安装php,然后安装composer并运行它。作曲家将在名为vendor的文件夹中下载所需的包,该文件夹应位于您的app目录中。

下载heroku CLI并使用以下命令登录heroku:

heroku login

包含 composer.json 文件,以便heroku识别该应用程序是一个php应用程序。它应包含以下代码:

{
  "require": {
    "php": "^5.5.12"
  }
}

上述代码将指示Heroku使用最新版本的PHP 5.版本可以是您的应用程序使用的任何内容。

使用 Procfile 来声明应该执行什么命令来启动应用程序。它应该有以下代码:

web: vendor/bin/heroku-php-apache2

现在在cmd中,确保www文件夹的路径:

c:\wamp\www>

如果对composer.json文件进行了任何更改,请通过以下方式更新composer.lock文件:

 c:\wamp\www> update composer

接下来,通过以下方式在www文件夹中创建一个新的存储库:

c:\wamp\www>git init

然后将您的文件添加到存储库。

c:\wamp\www>git add .

然后提交:

c:\wamp\www>git commit

然后在heroku中创建一个应用

c:\wamp\www>heroku create

然后是创建数据库和建立连接的部分:

可以参考以下文件:

ClearDb Database documentation for php by heroku

创建数据库:

C:\wamp\www>heroku addons:create cleardb:ignite

将数据库的URL设置为在heroku中创建的应用程序:

C:\wamp\www> heroku config:set DATABASE_URL='the url that was created by the above command'

知道CLEARDB_DATABASE_URL:

C:\wamp\www>heroku config

给出了网址:

CLEARDB_DATABASE_URL= mysql://user:password@host/heroku_db?reconnect=true

CLEARDB_DATABASE_URL示例:

mysql://b8xxxxxx:edxxxx@ us-cdbr-iron-east-04.cleardb.net/heroku_xx‌​xxxx?reconnect=true

要将现有sql文件转储到heroku中的sql数据库,请确保已为mysql设置了PATH,然后提供以下命令:

获取与数据库连接的mysql提示。

C:\wamp\www>mysql -u b8xxxxxx -h us-cdbr-iron-east-04.cleardb.net -p heroku_xxxxxx

将现有文件转储到heroku数据库:

C:\wamp\www>mysql --host=us-cdbr-iron-east-04.cleardb.net --user=b8xxxxxx --password=edxxxxxx --reconnect heroku_xxxxxx< yoursqlfile.sql

现在使用创建的数据库并在代码中连接到它:

<?php
$url = parse_url(getenv("CLEARDB_DATABASE_URL"));

$server = $url["host"];
$username = $url["user"];
$password = $url["pass"];
$db = substr($url["path"], 1);

$con = mysqli_connect("$server", "$username", "$password", "$db");
?>

然后推送到heroku中创建的应用程序:

c:\wamp\www>git push heroku master

打开应用:

c:\wamp\www>heroku open

就是这样!现在网站已成功托管到heroku!