2019年4月23日 星期二

[Symfony] 如何將專案部屬到Heroku(apache/nginx)


之前寫過一篇『[django] 將Django專案部署到Heroku』,可以參考安裝heroku[官網說明]的方式,『[Symfony] ubuntu18安裝symfony 4.2教學』則可以了解composer和symfony的安裝方式,這篇就不再重複說明。

步驟一、新增Symfony專案
首先新增一個專案 symfony_heroku ,也可以根據需求指定專案版本,目前版本是3.4。
composer create-project symfony/framework-standard-edition symfony_heroku/

# 指定Symfony版本 3.0
composer create-project symfony/framework-standard-edition:^3.0 symfony_heroku/


步驟二、新增Procfile
進到專案目錄裡symfony_heroku/,以apache為例,新增檔案Procfile做為執行網站的依據。
cd symfony_heroku
echo 'web: $(composer config bin-dir)/heroku-php-apache2 web/' > Procfile

相當於:
vim Procfile
檔案Procfile內容:
web: $(composer config bin-dir)/heroku-php-apache2 web/
參數$(composer config bin-dir)是考慮到版本差異,可以動態的指到正確的路徑。


步驟三、部屬專案
使用git將所有檔案加入追蹤並commit。
git init
git add .
git commit -m "initial commit"

輸入指令 heroku login 登入後,建立一個Heroku專案,新增相關設定。
heroku create
heroku config:set SYMFONY_ENV=prod
上傳Heroku
git push heroku master


可以打開瀏覽器就可以看到symfony預設的網頁。
https://[APP_NAME].herokuapp.com

查詢Heroku專案名稱(顯示網址)
heroku open
關閉網頁伺服器
heroku ps:scale web=0
開啟網頁伺服器
heroku ps:scale web=1



[nginx]
假設你希望使用nginx作為網頁伺服器,請將Procfile改成:
web: $(composer config bin-dir)/heroku-php-nginx web/
預設/,沒有任何頁面,請看/app.php確定有沒有建立成功。
https://[APP_NAME].herokuapp.com/app.php


參考資料:
https://devcenter.heroku.com/articles/getting-started-with-symfony
https://devcenter.heroku.com/articles/getting-started-with-php

相關文章:

沒有留言:

張貼留言