How to Install BookStack on Ubuntu 16.04

How to Install BookStack on Ubuntu 16.04

BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. BookStack is fully free and open, as well as MIT licensed. The source is available on GitHub. In this tutorial we will install BookStack on a fresh Ubuntu 16.04 Vultr instance.

Requirements

  • PHP version 7.0.0 or greater
  • PHP Extensions: OpenSSL, PDO, MBstring, Tokenizer, GD, MySQLND, Tidy, SimpleXML, and DOM
  • MySQL version 5.6 or greater
  • Git (Not strictly required but helps manage updates)
  • Composer

Before you begin

Check the Ubuntu version.

lsb_release -ds
# Ubuntu 16.04.4 LTS

Create a new non-root user account with sudo access and switch to it.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

NOTE: Replace johndoe with your username.

Set up the timezone.

sudo dpkg-reconfigure tzdata

Ensure that your system has been updated.

sudo apt update && sudo apt upgrade -y

Install the necessary packages.

sudo apt install -y curl git mcrypt build-essential 

Install PHP

Install PHP and necessary PHP extensions.

sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-tidy php7.0-curl php7.0-ldap php7.0-mcrypt php7.0-gd php7.0-xml php7.0-zip php7.0-mysql php7.0-mbstring php7.0-common

Check the version.

php -v

Install MySQL

Install MySQL.

sudo apt install -y mysql-server

Check the version.

mysql --version

Run mysql_secure installation script to improve MySQL's security.

sudo mysql_secure_installation

Connect to the MySQL shell as the root user.

mysql -u root -p
# Enter password:

Set up a new MySQL database and user, and remember the credentials.

CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Exit MySQL.

exit

Install Nginx

Install Nginx.

sudo apt install -y nginx

Check the version.

sudo nginx -v

Configure Nginx for BookStack. Run sudo vim /etc/nginx/sites-available/bookstack.conf and populate the file with the following.

server {
    listen 80;
    listen [::]:80;

    server_name example.com;

    root /var/www/bookstack/public;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
}

Activate the new bookstack.conf configuration by linking the file to the sites-enabled directory.

sudo ln -s /etc/nginx/sites-available/bookstack.conf /etc/nginx/sites-enabled/

Test the configuration.

sudo nginx -t

Reload Nginx.

sudo systemctl reload nginx.service

Install Composer

Install Composer.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Check the version.

composer --version

Install BookStack

Create a document root folder.

sudo mkdir -p /var/www/bookstack

Change ownership of the /var/www/bookstack directory to johndoe.

sudo chown -R johndoe:johndoe /var/www/bookstack

Clone the release branch of the BookStack GitHub repository into the document root folder.

cd /var/www/bookstack
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch .

Run the composer install command from the /var/www/bookstack directory.

composer install

Copy the .env.example file to .env and populate it with your own database and mail details.

cp .env.example .env

Ensure that the storage, bootstrap/cache and public/uploads folders are writable by the web server.

In the application root, run the following command.

php artisan key:generate

This will generate a unique application key.

Run php artisan migrate to update the database.

Change ownership of the /var/www/bookstack directory to www-data.

sudo chown -R www-data:www-data /var/www/bookstack

You can now login using the default admin details [email protected] with a password of password. It is recommended to change these details directly after your first login.


Installing Microweber on Ubuntu 16.04

Installing Microweber on Ubuntu 16.04

Using a Different System? Microweber is an open source drag and drop CMS and online shop. Microweber source code is hosted on GitHub. This guide will show yo

How to Install Selfoss RSS Reader on an Ubuntu 16.04 LAMP VPS

How to Install Selfoss RSS Reader on an Ubuntu 16.04 LAMP VPS

Using a Different System? Selfoss RSS Reader is a free and open source self-hosted web-based multipurpose, live stream, mashup, news feed (RSS/Atom) reade

How to Install AirSonic on CentOS 7

How to Install AirSonic on CentOS 7

Using a Different System? AirSonic is a free and open source media streaming server. In this tutorial, I will guide you through the process of deploying a

How to Install BookStack on Ubuntu 16.04

How to Install BookStack on Ubuntu 16.04

Using a Different System? BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. BookStack is fully free and open

How to Install Anchor CMS on a Debian 9 LAMP VPS

How to Install Anchor CMS on a Debian 9 LAMP VPS

Using a Different System? Anchor CMS is a super-simple and extremely lightweight, free and open source Content Management System (CMS) Blog Engine tha

How to Install Gitea on CentOS 7

How to Install Gitea on CentOS 7

Using a Different System? Gitea is an alternative open source, self-hosted version control system powered by Git. Gitea is written in Golang and is

How to Install Gogs 0.11.53 on CentOS 7

How to Install Gogs 0.11.53 on CentOS 7

Gogs, or Go Git service, is a lightweight, fully functional self-hosted Git server solution. In this tutorial, I will show you how to install the lates

How to Install InvoicePlane on Ubuntu 16.04

How to Install InvoicePlane on Ubuntu 16.04

Using a Different System? InvoicePlane is a free and open source invoicing application. Its source code can be found on this Github repository. This guid

How to Install Matomo Analytics on CentOS 7

How to Install Matomo Analytics on CentOS 7

Using a Different System? Matomo (formerly Piwik) is an open source analytics platform, an open alternative to Google Analytics. Matomo source is hosted o

How to Install Drone CI on Ubuntu 18.04

How to Install Drone CI on Ubuntu 18.04

Introduction Drone is an automated, continuous testing and delivery platform which runs on your own infrastructure. Drone supports any language, service o

How to Install Craft CMS on Debian 9

How to Install Craft CMS on Debian 9

Using a Different System? Craft CMS is an open source CMS written in PHP. Craft CMS source code is hosted on GitHub. This guide will show you how to instal

Installing Fork CMS on Debian 9

Installing Fork CMS on Debian 9

Using a Different System? Fork is an open source CMS written in PHP. Forks source code is hosted on GitHub. This guide will show you how to install Fork CM

How to Install Omeka Classic 2.4 CMS on Fedora 26 LAMP VPS

How to Install Omeka Classic 2.4 CMS on Fedora 26 LAMP VPS

Using a Different System? Omeka Classic 2.4 CMS is a free and open source digital publishing platform and Content Management System (CMS) for sharing digita

How to Install Anchor CMS on a Fedora 26 LAMP VPS

How to Install Anchor CMS on a Fedora 26 LAMP VPS

Using a Different System? Anchor CMS is a super-simple and extremely lightweight, free and open source Content Management System (CMS) Blog Engine tha

How to Install Cachet on Linux

How to Install Cachet on Linux

Introduction Cachet is an open source status page system which allows you to inform your users about outages, planned maintances and much more. In this guid

How to Install Attendize on Fedora 29

How to Install Attendize on Fedora 29

Using a Different System? Introduction Attendize is an open source ticket selling and event management platform based on the Laravel PHP Framework. Attendiz

How to Install Selfoss RSS Reader on a Fedora 26 LAMP VPS

How to Install Selfoss RSS Reader on a Fedora 26 LAMP VPS

Using a Different System? Selfoss RSS Reader is a free and open source self-hosted web-based multipurpose, live stream, mashup, news feed (RSS/Atom) reade

How to Install RainLoop Webmail on Ubuntu 16.04

How to Install RainLoop Webmail on Ubuntu 16.04

Using a Different System? RainLoop is a simple, modern and fast web-based email client. RainLoop source code is hosted on Github. This guide will show you ho

How to Install osTicket on Fedora 30

How to Install osTicket on Fedora 30

Using a Different System? osTicket is an open-source customer support ticketing system. osTicket source code is publicly hosted on Github. In this tutorial

Installing Lets Encrypt on DirectAdmin

Installing Lets Encrypt on DirectAdmin

DirectAdmin has support for Lets Encrypt, a free new certificate authority. In this guide you will see how to enable the support on DirectAdmin. Befor

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk