程式狂想筆記

一個攻城師奮鬥史

0%

heroku 架設 PHP & Laravel 小記

最近想寫一些程式放在網路上
但目前應該只有想測試程式用
網路有看到 Heroku
所以今天實作看看

官網教學

Getting Started on Heroku with PHP | Heroku Dev Center

  1. 準備
  • heroku cli 安裝
  • php
  • composer
  1. cli 登入

heroku login

  1. 安裝測試 project
1
2
git clone https://github.com/heroku/php-getting-started.git
cd php-getting-started
  1. 建制部屬分支
1
heroku create

在下這個指令之前
請看現在git remote分支
只會有一個 master
但是打了heroku create
會多出一個分支,那個是部屬用的

  1. 推送程式上去
1
git push heroku master
  1. heroku open指令會跳出瀏覽器,可看到部屬成果

其實這邊算部屬完了

  1. 看 log
1
heroku logs --tail
  1. Procfile 設定
    其實看教學完後,我一直在想 Heroku 怎麼知道我不屬哪一個程式語言?
    後來我看到這個,才知道為什麼 Heroku 能跑出我要的東西
    為什麼自動部屬可以跑 composer?
    我覺得應該是這個關係 heroku-buildpack-php/heroku-php-apache2 at master · heroku/heroku-buildpack-php
1
web: vendor/bin/heroku-php-apache2 web/
  1. 更新現有程式內容

這邊我就不詳細記錄了
文件建議 vendor 要加在.gititnore 裡面

1
2
3
4
5
6
composer require ...
composer update
git add .
git commit -m 'demo'
git push heroku master
heroku open xxx

10 操作 heroku cli

heroku run “php -a”

1
heroku run bash
  1. 設定環境變數
1
2
3
4
// 設定環境變數
heroku config:set TIMES=20
// 看 heroku env
heroku config
  1. 建置 Postgresql
1
heroku addons:create heroku-postgresql:hobby-dev

環境變數會多一個 DATABASE_URL

1
2
3
4
5
6
7
8
9
10
11
12
13
$dbopts = parse_url(getenv('DATABASE_URL'));
$app->register(new Csanquer\Silex\PdoServiceProvider\Provider\PDOServiceProvider('pdo'),
array(
'pdo.server' => array(
'driver' => 'pgsql',
'user' => $dbopts["user"],
'password' => $dbopts["pass"],
'host' => $dbopts["host"],
'port' => $dbopts["port"],
'dbname' => ltrim($dbopts["path"],'/')
)
)
);

網路也有茶道可以使用Heroku 連線 Postgresql 教學 ~ 度估記事本
去做 DB 管理


小記我 Heroku 有 rails 專案

之前 2014 年有參加 rails 新手活動
結果我今天用都忘記我有用過這個…

要怎麼把上面舊專案下載下來呢

1
heroku git:clone -a heroku_project

Laravel

之後 Laravel 架設可能需要調整到

  1. 如何利用 Heroku 免費將本地 Laravel 專案部署到線上,已解決 - IT 閱讀
  2. laravel-heroku-example/readme.md at master · jessedc/laravel-heroku-example
  3. 如何快速使用 Heroku 来部署你的 Laravel 应用 | Laravel China 社区

先記錄連結,有空寫寫我的部屬過程

更多 heroku cli 指令

Heroku 運行類別、 Procfile、常用指令筆記 | DEVLOG of andyyou