Publish Wordpress with Heroku app
March 01, 2016
1. Download Wordpress
Download wordpress to local.
curl -sS https://wordpress.org/latest.zip > wordpress.zip // if cannot
unzip wordpress.zip
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":"http://wpackagist.org"
}
},
"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.