Εισαγωγή
Προαπαιτούμενα
Βήμα 1: Ενημερώστε το σύστημα
Βήμα 2: Εγκαταστήστε τη στοίβα LEMP
Βήμα 3: Διαμόρφωση βάσης δεδομένων
Βήμα 4: Διαμόρφωση PHP-FPM
Βήμα 5: Λήψη και διαμόρφωση του Invoice Ninja
Βήμα 6: Διαμορφώστε το Nginx για Invoice Ninja
Βήμα 7: Πρόσβαση στο Invoice Ninja
Εισαγωγή
Το Invoice Ninja είναι μια δωρεάν και ανοιχτού κώδικα διαδικτυακή εφαρμογή που μπορεί να χρησιμοποιηθεί για τιμολόγηση, πληρωμές, παρακολούθηση χρόνου και πολλά άλλα. Είναι η καλύτερη λύση για τιμολόγηση και χρέωση πελατών. Μπορείτε εύκολα να δημιουργήσετε και να στείλετε τιμολόγια ηλεκτρονικά μέσα σε δευτερόλεπτα. Το Invoice Ninja σάς επιτρέπει να δημιουργείτε προσαρμοσμένα τιμολόγια και να εμφανίζετε ζωντανά τιμολόγια ως αρχείο PDF.
Σε αυτό το σεμινάριο, θα εξηγήσω πώς να εγκαταστήσετε το Invoice Ninja στον διακομιστή Ubuntu 16.04.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Ubuntu 16.04 με εγκατεστημένη 2 GB RAM.
- Ένας χρήστης sudo με δικαιώματα root.
- Θα πρέπει να γνωρίζετε την κύρια IP της παρουσίας του διακομιστή σας. Σε αυτό το σεμινάριο, θα χρησιμοποιήσω
192.168.0.227.
Βήμα 1: Ενημερώστε το σύστημα
Πριν εγκαταστήσετε οποιοδήποτε πακέτο σε παράδειγμα διακομιστή Ubuntu, συνιστάται να ενημερώσετε το σύστημα. Συνδεθείτε στον διακομιστή σας μέσω SSH ως χρήστης sudo και εκτελέστε την ακόλουθη εντολή:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Βήμα 2: Εγκαταστήστε τη στοίβα LEMP
Πριν ξεκινήσετε, θα χρειαστεί να διαμορφώσετε μια στοίβα LEMP (Nginx, MariaDB και PHP) στον διακομιστή σας.
Πρώτα, εγκαταστήστε το Nginx και το MariaDB με την ακόλουθη εντολή:
sudo apt-get install nginx mariadb-server -y
Μόλις ολοκληρωθεί η εγκατάσταση, ξεκινήστε τις υπηρεσίες Nginx και MariaDB και ενεργοποιήστε τις να ξεκινήσουν κατά την εκκίνηση:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql
Στη συνέχεια, θα χρειαστείτε PHP 7 και PHP-FPM για την εγκατάσταση του Invoice Ninja.
Μπορείτε να εγκαταστήσετε το PHP-FPM και τις άλλες απαιτούμενες επεκτάσεις PHP με την ακόλουθη εντολή:
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
Μόλις ολοκληρωθεί η εγκατάσταση, θα χρειαστεί να τροποποιήσετε το php.iniαρχείο ρυθμίσεων:
sudo nano /etc/php/7.0/fpm/php.ini
Αλλάξτε την ακόλουθη γραμμή:
cgi.fix_pathinfo=0
Αποθηκεύστε και κλείστε το αρχείο.
Από προεπιλογή, η εγκατάσταση του MariaDB δεν έχει ασφαλιστεί. Θα χρειαστεί να το ασφαλίσετε. Μπορείτε να το κάνετε αυτό τρέχοντας mysql_secure_installation script.
sudo mysql_secure_installation
Απαντήστε σε όλες τις ερωτήσεις όπως φαίνεται παρακάτω:
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
Όταν ολοκληρωθούν όλα, συνδεθείτε χρησιμοποιώντας το κέλυφος MySQL με την ακόλουθη εντολή:
mysql -u root -p
Εισαγάγετε τον κωδικό πρόσβασης root και πατήστε "enter", θα δείτε το κέλυφος MySQL (MariaDB).
Δημιουργήστε μια νέα βάση δεδομένων και έναν νέο χρήστη για το 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
Διαμορφώστε το χώρο συγκέντρωσης PHP-FPM για τον χρήστη Nginx:
sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf
Προσθέστε τις ακόλουθες γραμμές:
[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 = /
Αποθηκεύστε και κλείστε το αρχείο όταν τελειώσετε και μετά επανεκκινήστε το PHP-FPM για να εφαρμόσετε αυτές τις αλλαγές.
systemctl restart php7.0-fpm
Μπορείτε να κάνετε λήψη της πιο πρόσφατης σταθερής έκδοσης του Invoice Ninja από το αποθετήριο GitHub με την ακόλουθη εντολή:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
Θα χρειαστεί επίσης να εγκαταστήσετε το Composer, έναν διαχειριστή εξαρτήσεων για την PHP. Μπορείτε να το εγκαταστήσετε με την ακόλουθη εντολή:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Στη συνέχεια, εγκαταστήστε όλες τις εξαρτήσεις Invoice Ninja χρησιμοποιώντας την composerεντολή όπως φαίνεται παρακάτω:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Μόλις ολοκληρωθεί η εγκατάσταση, μετονομάστε το .envαρχείο και κάντε κάποιες αλλαγές.
sudo mv .env.example .env
sudo nano .env
Αλλάξτε τις γραμμές όπως φαίνεται παρακάτω:
DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password
Αποθηκεύστε το αρχείο όταν τελειώσετε και, στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να προετοιμάσετε τη βάση δεδομένων:
sudo php artisan migrate
Θα σας ζητηθεί να εκτελέσετε την εντολή, πληκτρολογήστε "ναι" και πατήστε "enter".
Στη συνέχεια, δημιουργήστε τη βάση δεδομένων με εγγραφές όπως φαίνεται παρακάτω:
sudo php artisan db:seed
Πληκτρολογήστε "ναι" και πατήστε "enter".
Στη συνέχεια, αλλάξτε την ιδιοκτησία του /var/www/html/ninjaκαταλόγου:
sudo chown -R www-data:www-data /var/www/html/ninja/
Στη συνέχεια, θα χρειαστεί να δημιουργήσετε ένα πιστοποιητικό SSL και να δημιουργήσετε μια νέα διαμόρφωση εικονικού κεντρικού υπολογιστή για το Invoice Ninja.
Πρώτα, δημιουργήστε έναν κατάλογο για SSL:
sudo mkdir -p /etc/nginx/cert/
Στη συνέχεια, δημιουργήστε ένα πιστοποιητικό SSL με την ακόλουθη εντολή:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Δώστε τα κατάλληλα δικαιώματα στο αρχείο πιστοποιητικού.
sudo chmod 600 /etc/nginx/cert/*
Δημιουργήστε ένα νέο αρχείο διαμόρφωσης εικονικού κεντρικού υπολογιστή μέσα στον /etc/nginx/κατάλογο.
sudo nano /etc/nginx/conf.d/ninja.conf
Προσθέστε τις ακόλουθες γραμμές:
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;
}
}
Αποθηκεύστε και κλείστε το αρχείο. Στη συνέχεια, ενεργοποιήστε τον εικονικό κεντρικό υπολογιστή με την ακόλουθη εντολή.
sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
Τέλος, επανεκκινήστε τον διακομιστή ιστού Nginx.
sudo systemctl restart nginx
Βήμα 7: Πρόσβαση στο Invoice Ninja
Πριν αποκτήσετε πρόσβαση στη διεπαφή ιστού Invoice Ninja, θα πρέπει να επιτρέψετε τις υπηρεσίες HTTP και HTTPS μέσω του τείχους προστασίας UFW. Εκτελέστε τις ακόλουθες εντολές για να ανοίξετε αυτές τις θύρες:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Τέλος, ανοίξτε το πρόγραμμα περιήγησής σας και αποκτήστε πρόσβαση στη διεύθυνση URL https://192.168.0.227. Στη συνέχεια, μπορείτε να ολοκληρώσετε τα απαιτούμενα βήματα για να ολοκληρώσετε την εγκατάσταση.
Συγχαρητήρια! Εγκαταστήσαμε με επιτυχία το Invoice Ninja με το Nginx και το MariaDB στον διακομιστή Ubuntu 16.04.