Cómo instalar InvoicePlane con Nginx en FreeBSD 12
InvoicePlanees una aplicación de facturación gratuita y de código abierto. Este tutorial te mostrará cómo instalar InvoicePlane en un sistema FreeBSD 12.
Requisitos
- Servidor web (Apache, NGINX). Este tutorialutilizará Nginx.
- MySQL versión 5.5 o superior o la versión equivalente de MariaDB.
- Versión de PHP 7.0, 7.1 o 7.2 con las siguientes extensiones de PHP instaladas y activadas:
- php-gd
- php-hash
- php-json
- php-mbstring
- php-mcrypt
- php-mysqli
- php-openssl
- php-recode
- php-xmlrpc
- php-zlib
Requisitos previos
- Un servidor con FreeBSD 12.
- Un usuario no root con privilegios sudo.
Pasos iniciales
Comprueba tu versión de FreeBSD:
uname -ro
# FreeBSD 12.1-RELEASE
Configura la zona horaria:
tzsetup
Actualiza los paquetes de tu sistema operativo (software). Este es un primer paso importante porque asegura que tienes las últimas actualizaciones y correcciones de seguridad de los paquetes de software por defecto de tu sistema operativo:
freebsd-update fetch install
pkg update && pkg upgrade -y
Instala algunos paquetes esenciales que son necesarios para la administración básica del sistema operativo FreeBSD 12.0:
pkg install -y sudo vim unzip wget bash
Paso 1 – Instalar PHP y las extensiones PHP necesarias
La aplicación web InvoicePlane requiere la versión 7.0 de PHP o superior.
Instala PHP, así como las extensiones PHP necesarias:
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
Comprueba la versión de PHP:
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
Habilita e inicia el servicio PHP-FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start
Paso 2 – Instalar MySQL
Instala el servidor de bases de datos MySQL:
sudo pkg install -y mysql57-server
Comprueba la versión de MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.26, for FreeBSD12.0 (amd64) using EditLine wrapper
Habilita e inicia el servicio MySQL:
sudo sysrc mysql_enable="yes"
sudo service mysql-server start
Ejecuta el script mysql_secure installation
script para mejorar la seguridad de MySQL y establecer la contraseña para MySQL root
usuario:
sudo mysql_secure_installation
Responde a cada una de las preguntas:
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
Conéctate al shell de MySQL como usuario root:
sudo mysql -u root -p
# Enter password
Crea una base de datos MySQL vacía y un usuario para Matomo y recuerda las credenciales:
CREATE DATABASE dbname;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Sal de MySQL:
exit
Sustituye dbname
, username
y password
por tus propios nombres.
Paso 3 – Instalar acme.shbclient y obtener el certificado Let’s Encrypt (opcional)
Asegurar tu sitio web con HTTPS no es necesario, pero es una buena práctica para asegurar el tráfico de tu sitio. Para obtener el certificado TLS de Let’s Encrypt utilizaremos el cliente Acme.sh. Acme.sh es un software de shell UNIX puro para obtener certificados TLS de Let’s Encrypt con cero dependencias. 
Descarga e instala Acme.sh:
sudo pkg install -y acme.sh
Comprueba la versión de Acme.sh:
acme.sh --version
# v2.8.2
Obtén certificados RSA y ECC/ECDSA para tu dominio/nombre de host:
# 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
Después de ejecutar los comandos anteriores, tus certificados y claves estarán en:
- Para RSA: directorio
/etc/letsencrypt/example.com
. - Para ECC/ECDSA: directorio
/etc/letsencrypt/example.com_ecc
.
Paso 3 – Instalar NGINX
Instala el servidor web NGINX:
sudo pkg install -y nginx
Comprueba la versión de NGINX:
nginx -v
# nginx version: nginx/1.14.2
Inicia y activa el servicio NGINX:
sudo sysrc nginx_enable=yes
sudo service nginx start
Configura Nginx para InvoicePlane ejecutando:
sudo vim /usr/local/etc/nginx/invoiceplane.conf
Y rellena el archivo con la siguiente configuración:
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;
}
}
Prueba la configuración de NGINX:
sudo nginx -t
Recarga NGINX:
sudo service nginx restart
Paso 4 - Instalar InvoicePlane
Descarga la última versión estable de InvoicePlane y extrae el archivo:
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
Navega hasta el directorio /var/www/invoiceplane
:
cd /usr/local/www/invoiceplane
Haz una copia del archivo ipconfig.php.example
y renombra la copia a ipconfig.php:
sudo cp ipconfig.php.example ipconfig.php
Abre el archivo ipconfig.php
y añade tu URL en él:
sudo vim ipconfig.php
# Something like this
IP_URL=http://example.com
Cambia la propiedad del directorio /usr/local/www/invoiceplane
a www:
sudo chown -R www:www /usr/local/www/invoiceplane
Ejecuta sudo vim /etc/php.ini
y configura date.timezone:
date.timezone = Region/City
Reinicia el servicio PHP-FPM:
sudo service php-fpm restart
Ejecuta el instalador de InvoicePlane desde tu navegador web y sigue las instrucciones:
http://example.com/index.php/setup
Una vez finalizada la instalación, puedes iniciar sesión en InvoicePlane con la dirección de correo electrónico y la contraseña que hayas elegido durante la instalación.
Si quieres asegurar tu instalación, puedes desactivar la instalación. Para ello, sustituye la líneaDISABLE_SETUP=false
por DISABLE_SETUP=true
en tu archivo ipconfig.php
.
Paso 5 - Completa la instalación de InvoicePlane
InvoicePlane ya está instalado y configurado, es el momento de acceder a su asistente de instalación web.
Abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la siguiente página:
Ahora, haz clic en el botón de Configuración. Deberías ver la siguiente página:
A continuación, elige el idioma y haz clic en el botón Continuar. Deberías ver la siguiente página:
A continuación, haz clic en el botón Continuar. Deberías ver la siguiente página:
Aquí, proporciona los detalles de tu base de datos y haz clic en el botón Intentar de nuevo. Deberías ver la siguiente página:
Ahora, haz clic en el botón Continuar. Deberías ver la siguiente página:
Ahora, haz clic en el botón Continuar. Deberías ver la siguiente página:
Ahora, proporciona todos los detalles requeridos y haz clic en el botón Continuar. Una vez completada la instalación, deberías ver la siguiente página:
Ahora, haz clic en el botón Iniciar sesión para acceder a la administración de InvoicePlane.