Εγκατάσταση InvoiceNinja σε Debian 8

Το Ιnvoice Νinja αποτελεί μία ολοκληρωμένη λύση συστήματος invoice. Επίσης έχει τη δυνατότητα να δεχθεί πληρωμές.

Αρχική Ενημέρωση Συστήματος

Όπως σε κάθε οδηγό, ξεκινάμε ενημερώνοντας το σύστημά μας με τις εντολές:

apt-get update  
apt-get upgrade  
Εγκατάσταση NGINX

Προχωράμε με την εγκατάσταση του web server μας, στον συγκεκριμένο οδηγό έχουμε επιλέξει τον nginx.

Για την εγκατάσταση του nginx εκτελούμε την παρακάτω εντολή

apt-get install -y nginx  

Επιβεβαιώνουμε ότι ο nginx θα εκτελείται αυτόματα κατά την εκκίνηση του συστήματος εκτελώντας

systemctl enable nginx  
Εγκατάσταση MariaDB

Επόμενο βήμα η εγκατάσταση της βάσης δεδομένων μας, η οποία θα είναι η mariadb.

Για την εγκατάσταση της mariadb, εκτελούμε

apt-get install -y mariadb-server  

Στο βήμα αυτό θα πρέπει να δώσετε έναν κωδικό διαχειριστή της mariadb. Προσοχή να θυμόσαστε τον κωδικό καθώς μας είναι απαραίτητος τόσο για τη διαχείριση της βάση όσο και για τη δημιουργία νέας βάσης δεδομένων.

Επιβεβαιώνουμε ότι η mariadb θα εκτελείται αυτόματα με την εκκίνηση του συστήματος εκτελώντας

systemctl enable mysql  
Δημιουργία Βάσης Δεδομένων

Φτάσαμε στο σημείο της δημιουργίας μίας νέας, κενής βάσης δεδομένων, η οποία θα συνδεθεί με το invoice ninja.

Για την δημιουργία της νέας βάσης, αρχικά μπαίνουμε στη mysql με την εντολή

mysql -u root -p  

Στο σημείο αυτό θα πρέπει να δώσουμε τον κωδικό διαχειριστή και αμέσως μετά θα εμφανιστεί MariaDB [(none)]>.

Στη συνέχεια εκτελούμε τις παρακάτω εντολές για να δημιουργήσουμε τη νέα βάση δεδομένων μας καθώς και τον χρήστη της βάσης

create database ninjadb;  
create user ninja@localhost identified by 'mypassword';  
grant all privileges on ninjadb.* to ninja@localhost identified by 'mypassword';  
flush privileges;  

Προσοχή: θα πρέπει να αλλάξουμε το mypassword σε έναν δικό μας κωδικό.

Τέλος, πληκτρολογούμε quit για να βγούμε από τη mariadb.

Εγκατάσταση PHP 7.0

Για την εγκατάσταση της php 7.0 θα πρέπει να χρησιμοποιήσουμε το αποθετήριο του dotweb καθώς η προεπιλεγμένη έκδοση της php στο Debian 8 είναι η 5.6.

Για την εγκατάσταση του αποθετηρίου εκτελούμε:

echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list  
echo "deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list  
wget https://www.dotdeb.org/dotdeb.gpg  
apt-key add dotdeb.gpg  

Στη συνέχεια ενημερώνουμε το σύστημά μας ώστε να διαβάσει το νέο αποθετήριο

apt-get update  
apt-get dist-upgrade  

Προχωράμε με την εγκατάσταση των απαραίτητων βιβλιοθηκών και της php 7.0 με την παρακάτω εντολή

apt-get install -y php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-mbstring php7.0-mcrypt php7.0-curl php7.0-gmp  

Στο σημείο αυτό θα πρέπει να κάνουμε μία αλλαγή στις ρυθμίσεις της php. Ανοίγουμε το αρχείο /etc/php/7.0/fpm/php.ini και εντοπίζουμε τη γραμμή cgi.fix_pathinfo και την αλλάζουμε όπως παρακάτω

cgi.fix_pathinfo=0  

Την ίδια ακριβώς αλλαγή την κάνουμε και στο αρχείο /etc/php/7.0/cli/php.ini

Στη συνέχεια προχωράμε σε επανεκκίνηση της php προκειμένου να ισχύσουν οι αλλαγές που κάναμε.

systemctl restart php7.0-fpm.service  

Επίσης επιβεβαιώνουμε ότι η php θα ξεκινάει αυτόματα κατά την εκκίνηση του συστήματός μας με τη παρακάτω εντολή

systemctl enable php7.0-fpm.service  
Εγκατάσταση Invoice Ninja

Φτάσαμε στο σημείο εγκατάστασης του invoice ninja.

Αρχικά εγκαθιστούμε το unzip, καθώς και το curl που είναι απαραίτητα

apt-get install -y unzip curl  

Δημιουργούμε τον φάκελο που θα φιλοξενεί την εφαρμογή και στη συνέχεια μπαίνουμε μέσα σε αυτόν, εκτελώντας

mkdir /srv/ininja  
cd /srv/ininja  

Κατεβάζουμε την τελευταία έκδοση του invoice ninja

wget https://download.invoiceninja.com/ninja-v3.1.0.zip  

Στη συνέχεια αποσυμπιέζουμε το αρχείο, το τοποθετούμε σωστά στο web path μας και διαγράφουμε τα αρχεία της εγκατάστασης με τις παρακάτω εντολές

unzip ninja-v3.1.0.zip  
mv ninja/* .  
rm ninja-v3.1.0.zip  
rm ninja -rf  

Προχωράμε με την εγκατάσταση του Composer

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer  

Εγκαθιστούμε τις απαραίτητες βιβλιοθήκες για το invoice ninja μέσω του composer με τη παρακάτω εντολή

composer install --no-dev -o  
Ρυθμίσεις Invoice Ninja

Για τις ρυθμίσεις του invoice ninja κάνουμε χρήση του αρχείου .env εκτελώντας

cp .env.example .env  
nano .env  

Αλλάζουμε τις παρακάτω τιμές σύμφωνα με τη νέα βάση που δημιουργήσαμε

DB_DATABASE=ninjadb  
DB_USERNAME=ninja  
DB_PASSWORD=mypassword  

Μία ακόμα αλλαγή κάνουμε στο αρχείο config/database.php, το οποίο αλλάζουμε όπως στο παρακάτω παράδειγμα

'database'  => env('DB_DATABASE', 'ninjadb'),  
'username'  => env('DB_USERNAME', 'ninja'),  
'password'  => env('DB_PASSWORD', 'mypassword'),  

Στη συνέχεια δημιουργούμε τα απαραίτητα tables στην βάση δεδομένων εκτελώντας τις παρακάτω εντολές και επιλέγοντας yes

php artisan migrate  
php artisan db:seed  

Επόμενο βήμα η δημιουργία κλειδιού με την εντολή

php artisan key:generate  

Με τη παραπάνω εντολή θα μας εμφανιστεί το νέο κλειδί μας. Ανοίγουμε το αρχείο config/app.php και μέσα συμπληρώνουμε το νέο κλειδί όπως στο παρακάτω παράδειγμα

'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),  
Ρύθμιση NGINX

Τελευταίο βήμα η ρύθμιση του nginx προκειμένου να σερβίρει σωστά το invoice ninja.

Ανοίγουμε το αρχείο /etc/nginx/sites-enabled/ininja και μέσα βάζουμε

server {  
    listen      80;
    server_name ininja.gr www.ininja.gr;

    root /srv/ininja/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:/run/php/php7.0-fpm.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;
    }
}

Στη συνέχεια προχωράμε σε επανεκκίνηση του nginx προκειμένου να ενεργοποιηθούν οι αλλαγές με την εντολή

systemctl restart nginx  
Δοκιμή Λειτουργίας

Δοκιμάζουμε ότι η σελίδα λειτουργεί κανονικά ανοίγοντας το url της. Αν όλα έχουν πάει καλά θα δούμε σελίδα που θα μας ζητήσει πληροφορίες βάσης και χρήστη.

Αφού συμπληρώσουμε τα παραπάνω και κάνουμε login θα πρέπει να δούμε σελίδα, όπως παρακάτω:

Το νέο σύστημα invoice μας είναι έτοιμο προς λειτουργία.