Instalación · 5 min read · Dec 09, 2025

Cómo instalar InvoicePlane con Nginx en FreeBSD 12

InvoicePlane es 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 tutorial utilizará Nginx.
  • MySQL versión 5.5 o superior o la versión equivalente de MariaDB.
  • PHP versión 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

Prerrequisitos

  • Un servidor que ejecute FreeBSD 12.
  • Un usuario no root con privilegios de sudo.

Pasos iniciales

Verifica 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 tengas las últimas actualizaciones y correcciones de seguridad para los paquetes de software predeterminados 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 de PHP requeridas

La aplicación web InvoicePlane requiere PHP versión 7.0 o superior.

Instala PHP, así como las extensiones de 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

Verifica 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 base de datos MySQL:

sudo pkg install -y mysql57-server

Verifica 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 para mejorar la seguridad de MySQL y establecer la contraseña para el usuario root de MySQL:

sudo mysql_secure_installation

Responde a cada una de las preguntas:

¿Te gustaría configurar el plugin VALIDATE PASSWORD? N  
Nueva contraseña: tu_contraseña_segura  
Vuelve a ingresar la nueva contraseña: tu_contraseña_segura  
¿Eliminar usuarios anónimos? [Y/n] Y  
¿Deshabilitar el inicio de sesión remoto de root? [Y/n] Y  
¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] Y  
¿Recargar las tablas de privilegios ahora? [Y/n] Y

Conéctate a la consola de MySQL como el usuario root:

sudo mysql -u root -p  
# Ingresa la contraseña  

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

Reemplaza dbname, username y password con tus propios nombres.

Paso 3 - Instalar acme.sh y obtener el certificado Let’s Encrypt (opcional)

Asegurar tu sitio web con HTTPS no es necesario, pero es una buena práctica asegurar el tráfico de tu sitio. Para obtener un 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 sin dependencias.

Descarga e instala Acme.sh:

sudo pkg install -y acme.sh

Verifica 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

Verifica la versión de NGINX:

nginx -v  
# nginx version: nginx/1.14.2

Inicia y habilita 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 llena 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 al 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 agrega tu URL en él:

sudo vim ipconfig.php  
# Algo como esto  
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 establece date.timezone:

date.timezone = Region/Ciudad

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 que la instalación haya finalizado, puedes iniciar sesión en InvoicePlane utilizando la dirección de correo electrónico y la contraseña que elegiste durante la instalación.

Si deseas asegurar tu instalación, puedes deshabilitar la configuración. Para hacerlo, reemplaza la línea DISABLE_SETUP=false con DISABLE_SETUP=true en tu archivo ipconfig.php.

Paso 5 - Completar la configuración de InvoicePlane

InvoicePlane ya está instalado y configurado, es hora 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:

Instalador web de InvoicePlane

Ahora, haz clic en el botón Configuración. Deberías ver la siguiente página:

Elegir idioma

A continuación, elige el idioma y haz clic en el botón Continuar. Deberías ver la siguiente página:

Verificar requisitos del sistema

A continuación, haz clic en el botón Continuar. Deberías ver la siguiente página:

Detalles de la base de datos

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:

Conexión a la base de datos exitosa

Ahora, haz clic en el botón Continuar. Deberías ver la siguiente página:

Crear cuenta de usuario

Ahora, haz clic en el botón Continuar. Deberías ver la siguiente página:

Instalación de InvoicePlane completa

Ahora, proporciona todos los detalles requeridos, luego haz clic en el botón Continuar. Una vez que la instalación esté completa, deberías ver la siguiente página:

Iniciar sesión en InvoicePlane

Ahora, haz clic en el botón Iniciar sesión para acceder a la administración de InvoicePlane.

Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.