InvoicePlane installeren met Nginx op FreeBSD 12

InvoicePlaneis een gratis en open-source factureringsprogramma. Deze handleiding toont hoe je InvoicePlane op een FreeBSD 12 systeem kunt installeren.

Vereisten

  • WebServer (Apache, NGINX). Dezehandleiding zal Nginx gebruiken.
  • MySQL versie 5.5 of hoger of de gelijkwaardige versie van MariaDB.
  • PHP versie 7.0, 7.1, of 7.2 met de volgende PHP uitbreidingen geïnstalleerd en geactiveerd:
  • php-gd
  • php-hash
  • php-json
  • php-mbstring
  • php-mcrypt
  • php-mysqli
  • php-openssl
  • php-recode
  • php-xmlrpc
  • php-zlib

Vereisten

  • Een server waarop FreeBSD 12 draait.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je FreeBSD versie:

uname -ro
# FreeBSD 12.1-RELEASE

Stel de tijdzone in:

tzsetup

Werk je besturingssysteem pakketten (software) bij. Dit is een belangrijke eerste stap omdat het ervoor zorgt dat je de laatste updates en beveiligingsfixes voor de standaard softwarepakketten van je besturingssysteem hebt:

freebsd-update fetch install
pkg update && pkg upgrade -y

Installeer enkele essentiële pakketten die nodig zijn voor het basisbeheer van het FreeBSD 12.0 besturingssysteem:

pkg install -y sudo vim unzip wget bash

Stap 1 – Installeer PHP en de vereiste PHP uitbreidingen

De webapplicatie InvoicePlane vereist PHP versie 7.0 of hoger.

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo pkg install -y php72 php72-ctype php72-curl php72-dom php72-hash php72-iconv php72-gd php72-json php72-mbstring php72-openssl php72-session php72-simplexml php72-xml php72-zip php72-zlib php72-pdo php72-pdo_mysql php72-mysqli php72-filter php72-ftp php72-tokenizer php72-calendar php72-pecl-APCu php72-opcache

Controleer de PHP versie:

php --version

# PHP 7.2.7 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies

Schakel de PHP-FPM dienst in en start hem:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Stap 2 – Installeer MySQL

Installeer de MySQL databaseserver:

sudo pkg install -y mysql57-server

Controleer de MySQL versie:

mysql --version
# mysql  Ver 14.14 Distrib 5.7.26, for FreeBSD12.0 (amd64) using  EditLine wrapper

Schakel de MySQL dienst in en start hem:

sudo sysrc mysql_enable="yes"
sudo service mysql-server start

Voer mysql_secure installation script om MySQL beter te beveiligen en stel het wachtwoord in voor MySQL root gebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Maak verbinding met MySQL shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een lege MySQL database en gebruiker voor Matomo en onthoud de credentials:

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

Sluit MySQL af:

exit

Vervang dbname, username en password door je eigen namen.

Stap 3 – Installeer acme.shbclient en verkrijg Let’s Encrypt certificaat (optioneel)

Je website met HTTPS beveiligen is niet noodzakelijk, maar het is een goed gebruik om je site verkeer te beveiligen. Om een TLS certificaat van Let’s Encrypt te verkrijgen gebruiken we het programma Acme.sh. Acme.sh is een pure UNIX shell software om TLS certificaten te verkrijgen van Let’s Encrypt zonder afhankelijkheden.&nbsp

Download en installeer Acme.sh:

sudo pkg install -y acme.sh

Controleer de versie van Acme.sh:

acme.sh --version
# v2.8.2

Verkrijg RSA en ECC/ECDSA certificaten voor je domein/hostname:

# RSA
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

Na het uitvoeren van de bovenstaande commando’s zijn je certificaten en sleutels zich in:

  • Voor RSA: /etc/letsencrypt/example.com map.
  • Voor ECC/ECDSA: /etc/letsencrypt/example.com_ecc map.

Stap 3 – Installeer NGINX

Installeer de NGINX webserver:

sudo pkg install -y nginx

Controleer de NGINX versie:

nginx -v
# nginx version: nginx/1.14.2

Start en schakel NGINX dienst in:

sudo sysrc nginx_enable=yes
sudo service nginx start

Configureer Nginx voor InvoicePlane door te draaien:

sudo vim /usr/local/etc/nginx/invoiceplane.conf

En vul het bestand met de volgende configuratie:

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

    server_name example.com;

    root /usr/local/www/invoiceplane;

    index index.php index.html;

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

    location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_index index.php5;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
} }

Test de NGINX configuratie:

sudo nginx -t

Herlaad NGINX:

sudo service nginx restart

Stap 4 - Installeer InvoicePlane

Download de nieuwste stabiele versie van InvoicePlane en pak het archief uit:

sudo mkdir -p /usr/local/www
cd /usr/local/www
sudo curl -O -J -L https://invoiceplane.com/download/v1.5.9
sudo unzip v1.5.9.zip
sudo rm v1.5.9.zip
sudo mv ip invoiceplane

Navigeer naar de map /var/www/invoiceplane:

cd /usr/local/www/invoiceplane

Maak een kopie van het ipconfig.php.example bestand en hernoem de kopie tot ipconfig.php:

sudo cp ipconfig.php.example ipconfig.php

Open het ipconfig.php bestand en voeg er je URL aan toe:

sudo vim ipconfig.php
# Something like this
IP_URL=http://example.com

Verander het eigendom van de map /usr/local/www/invoiceplane in www:

sudo chown -R www:www /usr/local/www/invoiceplane

Start sudo vim /etc/php.ini en stel in date.timezone:

date.timezone = Region/City

Start de PHP-FPM dienst opnieuw:

sudo service php-fpm restart

Start de InvoicePlane installer vanuit je web browser en volg de instructies:

http://example.com/index.php/setup

Als de installatie voltooid is, kun je inloggen in InvoicePlane met het e-mailadres en wachtwoord dat je tijdens de installatie gekozen hebt.

Als je je installatie wilt beveiligen, kun je de setup uitschakelen. Vervang daartoe de regelDISABLE_SETUP=falsedoor DISABLE_SETUP=true in je ipconfig.php bestand.

Stap 5 - Voltooi de installatie van InvoicePlane

InvoicePlane is nu geïnstalleerd en geconfigureerd, het is tijd om de web installatie wizard te openen.

Open je web browser en typ de URL http://example.com. Je wordt doorverwezen naar de volgende pagina:

FactuurPlane web installer

Klik nu op de Setup knop. Je zou de volgende pagina moeten zien:

Kies taal

Kies vervolgens de taal en klik op de Ga door knop. Je zou de volgende pagina moeten zien:

Controleer systeemeisen

Klik nu op het Ga verder knopje. Je zou de volgende pagina moeten zien:

Gegevensbestand

Geef hier je database gegevens op en klik op de Try Again knop. Je zou de volgende pagina moeten zien:

Database verbinding geslaagd

Klik nu op het Continue knopje. Je zou nu de volgende pagina moeten zien:

Maak gebruikersaccount aan

Klik nu op het Continue knopje. Je zou de volgende pagina moeten zien:

FactuurPlane installatie voltooid

Geef nu alle vereiste gegevens op en klik dan op de Continue knop. Als de installatie voltooid is, zou je de volgende pagina moeten zien:

Inloggen op InvoicePlane

Klik nu op de Login knop om het beheer van InvoicePlane te openen.