Running PHP application on Heroku (Mac OS X)


Heroku is a very popular PaaS (Platform as a Service) cloud hosting service which allows you to deploy various applications, especially Ruby on Rails application. Heroku doesn't charge anything to sign up and has a free service upto 5 MB usage of PostgreSQL database, that's enough to used for your development environment. Heroku is majorly to Deploy Ruby on Rails, Node.js, Java, Clojure and Django apps, but you can also run any type of app (like PHP).

The PHP support was launched in partnership with Facebook, to attract Facebook application  developers to Heroku's cloud platform (Heroku support PHP). In this post, you will learn how to deploy PHP project on Heroku. I assume that you already signed up with Heroku and configured your SSH keys with Heroku servers. If you haven't done it already, follow these instructions.

You can try it out for yourself by just creating a new project folder with an index.php file in it, then creating a Heroku project. When you push to Heroku, they'll automatically identify it as PHP and compile/install Apache and PHP into your slug.

$ mkdir PROJECT_NAME
$ cd PROJECT_NAME
$ git init
$ git add .
$ git commit -m "Initial commit"

Go to github.com and create a new repository

$ git remote add origin git@github.com:YOUR_USER_NAME/PROJECT_NAME.git
$ git push origin master

Installing the heroku command line client:
If you are using a Mac, install the following version of the heroku command line client (toolbelt). http://toolbelt.herokuapp.com/osx/download

Creating an application on heroku is easy, you just need to run the following command:

$ heroku create PROJECT_NAME --stack cedar

Heroku uses PostgreSQL as its default database but also support MySQL. You can use either Heroku's Postgres-based shared DB storage or a cloud-hosted MySQL like Amazon RDSClearDB MySQL Database or Xeround Cloud DB for your PHP apps on Heroku. (Amazon RDS is a service that allows you to set up, operate and scale a dedicated MySQL database server on top of EC2. You can use Amazon's Relational Database Service (RDS) addon on Heroku.)

$ heroku addons:add shared-database:5mb

Retrieve the database credentials by following command:

$ heroku config

Now, the fun part – push the modified code up to Heroku with git push heroku master:

$ git push heroku master

The output should look something like this:

If you get this error below, make sure the index.php file is under your project folder, and run the command: $ git add .

Setting up database:

I'm familiar with MySQL database, that why I'm choosing ClearDB MySQL database with FREE plan. Run the following command to install the addon:

$ heroku addons:add cleardb:ignite
$ heroku config

$ heroku config:add DATABASE_URL=mysql://db_user:password@db_server/db_schema

How do I import a MySQL dumpfile into the database?

$ mysql -u db_user -p -h db_server db_schema < db_dump_file.sql

Now you can login to mysql server from unix shell or GUI tool (like MySQL Workbench) to check your database.

Finally, you may want to change the database setting in the PHP project. (For this example, I have to configure my config.class.php file)

After that, run the following command:

$ git commit -am "Changed db setting to MySQL"
$ git push heroku master

Congratulations! you've just created your PHP application on Heroku. :)
or just run "$ heroku open"

You can use the "$ heroku logs" command to retrieve this log stream (in streaming mode if you add the –tail options).

Heroku Documentation:


Have fun!

熱門文章

Nov 2024【陽明山溫泉】老字號「馬槽花藝村」的溫泉管線已恢復|在木造山景湯屋享受半露天硫磺溫泉

Sep, 2021【苗栗南庄】蓬萊林道Off Road小試|雨後很爛很濕滑|二傳低底盤車勿輕易嘗試

Feb, 2024【台中西區】桃太郎日本料理|隱身巷弄裡的39年老字號無菜單料理|食材新鮮、自然美味

Nov 2024【台中西區】精誠壹山海鮮燒肉|在巷弄內的典雅復古風老宅吃燒肉,全程專人代烤

Oct 21~24, 2023【晚秋の贅沢な山旅 PART②】黒部峽谷♡下之廊下|日本北阿爾卑斯山秘境健行+野營+秘湯溫泉 DAY 1(黒部水壩〜下之廊下〜阿曾原溫泉)

Nov 2024【台北北投】風景如畫的溫泉公園|前山公園散步、紗帽山輕健行,順訪陽明山下的六窟溫泉餐廳|桃園區美食~豚嶼拉麵

【美國加州】此生必去超美風景!加州一號公路自駕遊~Half Moon Bay、17 Mile Drive、Bixby Greek Bridge、Big Sur、McWay Falls、Elephant Seal Rookery

Sep 2024 晚夏的黑部源流4泊5日山旅 PART ⑤【溪流登攀&溫泉三昧】赤木沢~五郎沢~祖父沢遡行&雲ノ平~高天原~裏銀座縱走(享受高天原溫泉)

May 2023【台中南屯】地雷店食記|森鐵板燒|用餐體驗差,價格超貴卻豪無價值。小心別踩雷!!!

Nov 2024【桃園大溪】二訪溪洲山,適合午後散步的小百岳,秋日來走最適合|俺ん家ラーメン~日本人經營的拉麵店

文章列表

Contact

名稱

以電子郵件傳送 *

訊息 *