2016-11-11 36 views
1

我的應用程序文件夾名稱是「social_network」。它在wamp \ www路徑中。我正在嘗試使用git命令將應用程序文件夾(「social_network」)部署到heroku中。我遵循了heroku的說明頁面的所有說明。我將composer.json文件包含在app文件夾中,安裝了composer,保存了Procfile。我甚至給出了「heroku buildpacks:set」的命令。但仍然推送失敗,出現錯誤消息「set buildpack failed」。Procfile中的代碼是: "web: vendor/bin/heroku-php-apache2."這是應用程序中給出的進程類型是否爲wamp服務器?我應該嘗試部署哪個文件夾 - wamp還是social_network?我懷疑是否會進行更多的更改以便部署,因爲它是使用wamp server開發的。如何成功部署?爲使用wamp服務器開發的php應用程序設置buildpack失敗

回答

1

我做的錯誤是在www文件夾(我在www文件夾中有我的.git文件夾)中創建存儲庫時,將composer.json和Procfile的文件與我的php文件一起放在了social_network文件夾下。所以,heroku無法識別我的應用程序作爲一個PHP應用程序,推送失敗。

由於我部署通過wamp服務器開發的php應用程序非常困難,因此我想解釋部署需要將數據庫部署到heroku的php應用程序的所有步驟。

最好將所有應用程序文件直接放在www文件夾下。

以下文檔可以被稱爲:

Getting started with heroku for php:

擁有Heroku的帳戶,安裝PHP,並安裝作曲並運行它。作曲家將在一個名爲vendor的文件夾下載所需的軟件包,該文件夾應位於您的應用程序目錄中。

下載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文件進行任何更改,更新的作曲家.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的

CLEARDB_DATABASE_URL= mysql://user:[email protected]/heroku_db?reconnect=true 

實施例:

mysql://b8xxxxxx:[email protected] us-cdbr-iron-east-04.cleardb.net/heroku_xx‌​xxxx?reconnect=true

轉儲現有的SQL文件在Heroku的SQL數據庫,請確保PATH已經爲MySQL設置,然後給下面的命令:

要獲得一個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上!

相關問題