Introducció
Requisits previs
Pas 1: actualitzeu el sistema
Pas 2: instal·leu la pila LEMP
Pas 3: configurar la base de dades
Pas 4: configureu PHP-FPM
Pas 5: Baixeu i configureu Invoice Ninja
Pas 6: configureu Nginx per a Invoice Ninja
Pas 7: Accediu a Invoice Ninja
Introducció
Invoice Ninja és una aplicació web gratuïta i de codi obert que es pot utilitzar per a la facturació, els pagaments, el seguiment del temps i molt més. És la millor solució per facturar i facturar als clients. Podeu crear i enviar factures en línia fàcilment en qüestió de segons. Invoice Ninja us permet crear factures personalitzades i mostrar factures en directe com a fitxer PDF.
En aquest tutorial, explicaré com instal·lar Invoice Ninja al servidor Ubuntu 16.04.
Requisits previs
- Una instància del servidor Ubuntu 16.04 amb 2 GB de RAM instal·lats.
- Un usuari sudo amb privilegis root.
- Haureu de conèixer la IP principal de la vostra instància de servidor. En aquest tutorial, faré servir
192.168.0.227.
Pas 1: actualitzeu el sistema
Abans d'instal·lar qualsevol paquet a la instància del servidor Ubuntu, es recomana actualitzar el sistema. Inicieu sessió al vostre servidor mitjançant SSH com a usuari sudo i executeu l'ordre següent:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Pas 2: instal·leu la pila LEMP
Abans de començar, haureu de configurar una pila LEMP (Nginx, MariaDB i PHP) al vostre servidor.
Primer, instal·leu Nginx i MariaDB amb l'ordre següent:
sudo apt-get install nginx mariadb-server -y
Un cop finalitzada la instal·lació, inicieu els serveis Nginx i MariaDB i activeu-los per iniciar-los a l'arrencada:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql
A continuació, necessitareu PHP 7 i PHP-FPM per a la instal·lació de Invoice Ninja.
Podeu instal·lar PHP-FPM i les altres extensions PHP necessàries amb l'ordre següent:
sudo apt-get install php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-curl php7.0-gmp php7.0-mbstring php7.0-mcrypt
Un cop finalitzada la instal·lació, haureu de modificar el php.inifitxer de configuració:
sudo nano /etc/php/7.0/fpm/php.ini
Canvia la línia següent:
cgi.fix_pathinfo=0
Desa i tanca el fitxer.
Per defecte, la instal·lació de MariaDB no està segura. Caldrà assegurar-lo. Podeu fer-ho executant mysql_secure_installation script.
sudo mysql_secure_installation
Respon totes les preguntes tal com es mostra a continuació:
Set root password? [Y/n] Y
New password:
Re-enter new 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
Quan tot estigui fet, connecteu-vos amb l'intèrpret d'ordres MySQL amb l'ordre següent:
mysql -u root -p
Introduïu la vostra contrasenya d'arrel i premeu "Enter", veureu l'intèrpret d'ordres MySQL (MariaDB).
Creeu una base de dades nova i un usuari nou per a Invoice Ninja.
MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q
Configureu el grup PHP-FPM per a l'usuari Nginx:
sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf
Afegiu les línies següents:
[www-data]
user = www-data
group = www-data
listen = /var/run/php-fpm-www-data.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /
Deseu i tanqueu el fitxer quan hàgiu acabat i, a continuació, reinicieu PHP-FPM per aplicar aquests canvis.
systemctl restart php7.0-fpm
Podeu descarregar la darrera versió estable de Invoice Ninja des del dipòsit de GitHub amb l'ordre següent:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
També haureu d'instal·lar Composer, un gestor de dependències per a PHP. Podeu instal·lar-lo amb l'ordre següent:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
A continuació, instal·leu totes les dependències de Invoice Ninja mitjançant l' composerordre com es mostra a continuació:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Un cop feta la instal·lació, canvieu el nom del .envfitxer i feu alguns canvis.
sudo mv .env.example .env
sudo nano .env
Canvieu les línies tal com es mostra a continuació:
DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password
Deseu el fitxer quan hàgiu acabat i executeu l'ordre següent per preparar la base de dades:
sudo php artisan migrate
Se us demanarà que executeu l'ordre, escriviu "sí" i premeu "Enter".
A continuació, introduïu la base de dades amb registres com es mostra a continuació:
sudo php artisan db:seed
Escriviu "sí" i premeu "Enter".
A continuació, canvieu la propietat del /var/www/html/ninjadirectori:
sudo chown -R www-data:www-data /var/www/html/ninja/
A continuació, haureu de crear un certificat SSL i crear una nova configuració d'amfitrió virtual per a Invoice Ninja.
Primer, creeu un directori per a SSL:
sudo mkdir -p /etc/nginx/cert/
A continuació, genereu un certificat SSL amb l'ordre següent:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Doneu els permisos adequats al fitxer del certificat.
sudo chmod 600 /etc/nginx/cert/*
Creeu un fitxer de configuració d'amfitrió virtual nou dins del /etc/nginx/directori.
sudo nano /etc/nginx/conf.d/ninja.conf
Afegiu les línies següents:
server {
listen 80;
server_name 192.168.0.227;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 default;
server_name 192.168.0.227;
ssl on;
ssl_certificate /etc/nginx/cert/ninja.crt;
ssl_certificate_key /etc/nginx/cert/ninja.key;
ssl_session_timeout 5m;
ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
root /var/www/html/ninja/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
# Access and Error Log for Invoice Ninja
access_log /var/log/nginx/ininja.access.log;
error_log /var/log/nginx/ininja.error.log;
sendfile off;
# Handle PHP Applications
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm-www-data.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
}
Desa i tanca el fitxer. A continuació, activeu l'amfitrió virtual amb l'ordre següent.
sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
Finalment, reinicieu el servidor web Nginx.
sudo systemctl restart nginx
Pas 7: Accediu a Invoice Ninja
Abans d'accedir a la interfície web de Invoice Ninja, haureu de permetre els serveis HTTP i HTTPS a través del tallafoc UFW. Executeu les ordres següents per obrir aquests ports:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Finalment, obriu el vostre navegador web i accediu a l'URL https://192.168.0.227. A continuació, podeu completar els passos necessaris per acabar la instal·lació.
Felicitats! Hem instal·lat correctament Invoice Ninja amb Nginx i MariaDB al servidor Ubuntu 16.04.