我的应用程序文件夹名称是" 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服务器开发的部署。如何成功部署?
答案 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_xxxxxx?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!