我的应用程序文件夹名称为"social_network"。它在wamp'www路径中。我试图使用git命令部署应用程序文件夹("社交网络")到heroku。我按照希罗库的指导页上的所有指示去做。我包括了作曲家。app文件夹下的json文件,安装了composer,保留了Procfile。我甚至下达了"heroku buildpacks:set
"的命令。但是推送仍然失败,并显示错误消息"set buildpack failed"。在Procfile中的代码是:"web: vendor/bin/heroku-php-apache2."
这是在wamp服务器中应用程序的进程类型吗?我应该尝试部署哪个文件夹——wamp还是social_network?由于它是在wamp服务器上开发的,我怀疑是否会有更多的修改来部署。如何才能成功部署?
我犯的错误是使用了composer的文件。json和Procfile以及我的php文件在social_network文件夹下,而存储库是在www文件夹中创建的(我在www文件夹中有我的。git文件夹)。因此,heroku无法将我的应用程序识别为php应用程序,推送失败。
由于我有一个很大的困难部署我的php应用程序是通过wamp服务器开发的,我想解释在部署php应用程序需要一个数据库到heroku所涉及的所有步骤。
最好将所有的应用程序文件直接放在www文件夹下。
可以参考以下文档:
heroku for php:
拥有一个heroku账号,安装php,安装composer并运行它。编译器会在app目录下的vendor文件夹中下载所需的包。
下载heroku CLI并使用命令登录heroku:
heroku login
包括作曲家。json文件,以便heroku识别应用程序是一个php应用程序。它应该包含以下代码:
{
"require": {
"php": "^5.5.12"
}
}
上面的代码将指示Heroku使用最新版本的PHP 5。版本可以是应用程序使用的任何版本。
有一个Procfile声明应该执行什么命令来启动应用程序。它应该有以下代码:
web: vendor/bin/heroku-php-apache2
现在在cmd中,确保www文件夹的路径:
c:'wamp'www>
如果对编写器进行了任何更改。Json文件,更新编译器。锁定文件:
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数据库文档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
给出url:
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上了!