Deploy av WordPress/Bedrock hos Cloudnet

Gillar du att köra WordPress och vill ta nästa steg? Jag rekommenderar starkt att köra Bedrock. Det är WordPress, men lite mer uppstyrt. En stor fördel är att alla filer finns i Git, även plugins. Du installerar alltså inte plugins via wp-admin utan med hjälp av composer.

En annan fördel är att Cloudnet har en färdig plattform där du enkelt kan köra och deploya Bedrock. Följ guiden nedan.

Installera

Vi antar att din nya sajt heter ”minsida”. Börja med att installera Bedrock lokalt på din dator med composer:
$ composer create-project roots/bedrock minsida
Installing roots/bedrock (1.8.1)
- Installing roots/bedrock (1.8.1): Loading from cache
Created project in minsida
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 8 installs, 0 updates, 0 removals
- Installing johnpbloch/wordpress-core-installer (1.0.0): Loading from cache
- Installing composer/installers (v1.2.0): Loading from cache
- Installing johnpbloch/wordpress-core (4.8.1): Loading from cache
- Installing johnpbloch/wordpress (4.8.1): Loading from cache
- Installing oscarotero/env (v1.1.0): Loading from cache
- Installing roots/wp-password-bcrypt (1.0.0): Loading from cache
- Installing vlucas/phpdotenv (v2.4.0): Loading from cache
- Installing squizlabs/php_codesniffer (2.9.1): Loading from cache
Generating autoload files

Skapa Git-repo och spara på Github eller BitBucket (du måste skapa repot där först):
$ cd minsida
$ git init

$ git add . ; git commit -m"empty bedrock"

$ git remote add origin git@github.com:<användare>/minsida.git

$ git push -u origin master
Counting objects: 26, done.
...
remote: Resolving deltas: 100% (1/1), done.
To git@github.com:<användare>/minsida.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

Så där, nu har du en tom installation av Bedrock i ditt Git-repo. Nästa steg är att deploya den.

Deploy

Börja med att lägga till din server hos Cloudnet som origin (byt ut c0000 mot rätt namn):
$ git remote add live-stuff git@c0000.cloudnet.cloud:minsida.git
Sedan gör vi bara en push så ligger sidan live:
$ git push live-stuff master
Counting objects: 26, done.
...
remote: Executing pre hooks...
remote: Deploying commit e199370e9d8d63f21c7cfa80b7a396b1bde19a5c to '/mnt/persist/www/docroot_minsida'...
remote: Already on 'master'
remote: Setting permission...
remote: Executing post hooks...
remote: Loading composer repositories with package information
remote: Installing dependencies (including require-dev) from lock file
remote: Package operations: 8 installs, 0 updates, 0 removals
remote: - Installing johnpbloch/wordpress-core-installer (1.0.0): Loading from cache
remote: - Installing composer/installers (v1.2.0): Downloading (100%)
remote: - Installing johnpbloch/wordpress-core (4.8.1): Downloading (100%)
remote: - Installing johnpbloch/wordpress (4.8.1): Downloading (100%)
remote: - Installing oscarotero/env (v1.1.0): Downloading (100%)
remote: - Installing roots/wp-password-bcrypt (1.0.0): Downloading (100%)
remote: - Installing vlucas/phpdotenv (v2.4.0): Loading from cache
remote: - Installing squizlabs/php_codesniffer (2.9.1): Downloading (100%)
remote: Generating autoload files
remote: --> Clearing Nginx cache...
remote: --> Restarting php-fpm...
remote: --> Clearing WordPress cache...
To git@c0000.cloudnet.cloud:minsida.git
* [new branch] master -> master

Det finns automatiskt en .env-fil på plats på servern med information om databasen.

Surfa in på http://www.minsida.se, och fullfölj installationen av databas. Pang, allt är klart och du har en tom WordPress/Bedrock! Kan det bli enklare?

Installera plugins

Om du vill gör någon förändring, t.ex. installera pluginen Google Analytics, så gör du det med composer:
$ composer require wpackagist-plugin/googleanalytics
Using version ^2.1 for wpackagist-plugin/googleanalytics
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing wpackagist-plugin/googleanalytics (2.1.3): Downloading (100%)
Writing lock file
Generating autoload files

Lägg in allt i Git och spara i ditt GitHub/BitBucket-repo:
$ git add composer.json composer.lock ; git commit -m"Installed plugin Google Analytics"

$ git push origin master
Counting objects: 4, done.
...
To git@github.com:<användare>/minsida.git
e199370..4e90361 master -> master

Gör nu en ny deploy till servern. Den här gången fungerar rensningen av cachen:
$ git push live-stuff master
Counting objects: 4, done.
...
remote: Executing pre hooks...
remote: Deploying commit 4e90361d03bf3f838128ac4fe741eaed1482a9a0 to '/mnt/persist/www/docroot_minsida'...
remote: Already on 'master'
remote: Setting permission...
remote: Executing post hooks...
remote: Loading composer repositories with package information
remote: Installing dependencies (including require-dev) from lock file
remote: Package operations: 1 install, 0 updates, 0 removals
remote: - Installing wpackagist-plugin/googleanalytics (2.1.3): Downloading (100%)
remote: Generating autoload files
remote: --> Clearing Nginx cache...
remote: --> Restarting php-fpm...
remote: --> Clearing WordPress cache...
remote: Success: The cache was flushed.
To git@c8310.cloudnet.cloud:minsida.git
e199370..4e90361 master -> master

Vips, cachen är rensad och din nya sida är deployad och klar! Lätt va?

Stage

Behöver du en stage-sida? Skapa branchen ”stage” och gör en deploy:
$ git checkout -b stage
$ git push live-stuff stage
ƒpre
Du når din stage-sida på http://stage.c0000.cloudnet.cloud.