Can Yildirim's Blog

Publish Wordpress with Heroku app

March 01, 2016

1. Download Wordpress

Download wordpress to local.

curl -sS > // if cannot unzip cd wordpress touch Procfile touch composer.json touch ngnix.conf mv wp-config-sample.php wp-config.php

2. Configuration

Add below line to Procfile contains config parameter.

web: vendor/bin/heroku-hhvm-nginx -C nginx.conf

Add to composer.json that

{ "name": "can/heroku-wp", "description": "A template for installing and running WordPress on Heroku", "license": "MIT", "repositories":{ "packagist":{ "type":"composer", "url":"" } }, "require": { "hhvm": "~3.2" }, "extra": { "heroku": { "php-config": \[ "post\_max\_size=200M" \], "nginx-includes": \["nginx.conf"\] } } }

And ngnix.conf

location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?q=$uri&$args; }

And finally wp-config.php

// \*\* MySQL settings - You can get this info from your web host \*\* // $url = parse\_url(getenv('DATABASE\_URL') ? getenv('DATABASE\_URL') : getenv('CLEARDB\_DATABASE\_URL')); /\*\* The name of the database for WordPress \*/ define('DB\_NAME', trim($url\['path'\], '/')); /\*\* MySQL database username \*/ define('DB\_USER', $url\['user'\]); /\*\* MySQL database password \*/ define('DB\_PASSWORD', $url\['pass'\]); /\*\* MySQL hostname \*/ define('DB\_HOST', $url\['host'\]); /\*\* Database Charset to use in creating database tables. \*/ define('DB\_CHARSET', 'utf8'); /\*\* The Database Collate type. Don't change this if in doubt. \*/ define('DB\_COLLATE', '');   define('AUTH\_KEY', getenv('AUTH\_KEY')); define('SECURE\_AUTH\_KEY', getenv('SECURE\_AUTH\_KEY')); define('LOGGED\_IN\_KEY', getenv('LOGGED\_IN\_KEY')); define('NONCE\_KEY', getenv('NONCE\_KEY')); define('AUTH\_SALT', getenv('AUTH\_SALT')); define('SECURE\_AUTH\_SALT', getenv('SECURE\_AUTH\_SALT')); define('LOGGED\_IN\_SALT', getenv('LOGGED\_IN\_SALT')); define('NONCE\_SALT', getenv('NONCE\_SALT'));

3. Push & Deploy

Git init & attach addon

composer update --ignore-platform-reqs #generated composer.lock file git init git add . git commit -m "initial commit" heroku create # do not forget login with "heroku login" command heroku addons:create cleardb heroku addons:create sendgrid

Add env variables

heroku config:set AUTH\_KEY\='' heroku config:set SECURE\_AUTH\_KEY\='' heroku config:set LOGGED\_IN\_KEY\='' heroku config:set NONCE\_KEY\='' heroku config:set AUTH\_SALT\='' heroku config:set SECURE\_AUTH\_SALT\='' heroku config:set LOGGED\_IN\_SALT\='' heroku config:set NONCE\_SALT\=''

Push & open your page

git push heroku master # it will check & deploy your code heroku open # it will open page on browser

 And your wordpress is ready !!!


I imporved and addded some tips K.Sylvestre’s blog post and create this post.

Can Yildirim

Written by Can Yildirim who lives in London. Full Stack Software Engineer. Follow me on Twitter Linkedin

© 2023,