Εισαγωγή
Προαπαιτούμενα
Βήμα 1: Ενημερώστε το σύστημα
Βήμα 2: Εγκαταστήστε το διακομιστή LEMP.
Βήμα 3: Διαμόρφωση βάσης δεδομένων
Βήμα 4: Διαμόρφωση PHP-FPM
Βήμα 5: Λήψη και διαμόρφωση Invoice Ninja
Βήμα 6: Διαμορφώστε το Nginx για Invoice Ninja
Βήμα 7: Πρόσβαση στο Invoice Ninja
Εισαγωγή
Το Invoice Ninja είναι ένα δωρεάν και ανοιχτού κώδικα λογισμικό εφαρμογής διαδικτυακών βάσεων που μπορεί να χρησιμοποιηθεί για τιμολόγηση, πληρωμές, παρακολούθηση χρόνου και πολλά άλλα. Είναι η καλύτερη λύση για τιμολόγηση και χρέωση πελατών. Μπορείτε εύκολα να δημιουργήσετε και να στείλετε τιμολόγια ηλεκτρονικά μέσα σε δευτερόλεπτα. Το Invoice Ninja σάς επιτρέπει να δημιουργήσετε το δικό σας προσαρμοσμένο τιμολόγιο και να εμφανίσετε ζωντανά το τιμολόγιο ως αρχείο PDF.
Σε αυτό το σεμινάριο, θα σας εξηγήσω πώς να εγκαταστήσετε το Invoice Ninja στον διακομιστή CentOS 7.
Προαπαιτούμενα
- Μια παρουσία CentOS 7 x64 με εγκατεστημένη 2 GB RAM.
- Ένας χρήστης sudo .
Βήμα 1: Ενημερώστε το σύστημα
Πριν εγκαταστήσετε οποιοδήποτε πακέτο σε μια παρουσία διακομιστή CentOS, συνιστάται να ενημερώσετε το σύστημα. Συνδεθείτε στον διακομιστή σας μέσω SSH ως χρήστης sudo και εκτελέστε την ακόλουθη εντολή:
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Βήμα 2: Εγκαταστήστε το διακομιστή LEMP.
Πριν ξεκινήσετε, θα χρειαστεί να εγκαταστήσετε το LEMP (Nginx, MariaDB και PHP) στον διακομιστή σας.
Πρώτα, εγκαταστήστε το Nginx και το MariaDB με την ακόλουθη εντολή:
sudo yum install nginx mariadb-server -y
Μόλις ολοκληρωθεί η εγκατάσταση, ξεκινήστε την υπηρεσία Nginx και MariaDB και ενεργοποιήστε την εκκίνηση κατά την εκκίνηση:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mariadb
sudo systemctl enable mariadb
Στη συνέχεια, θα χρειαστείτε PHP7 και PHP7.0-FPM για την εγκατάσταση του Invoice Ninja.
Πρώτα, προσθέστε το αποθετήριο PHP7.0 στο σύστημα με την ακόλουθη εντολή:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Στη συνέχεια, εγκαταστήστε το PHP7.0-FPM και άλλες απαιτούμενες επεκτάσεις PHP με την ακόλουθη εντολή:
sudo yum install install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-curl php70w-gmp php70w-pdo php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt -y
Μόλις ολοκληρωθεί η εγκατάσταση, θα χρειαστεί να τροποποιήσετε το αρχείο διαμόρφωσης php.ini:
sudo nano /etc/php.ini
Αλλάξτε την ακόλουθη γραμμή:
cgi.fix_pathinfo=0
Αποθηκεύστε και κλείστε το αρχείο.
Από προεπιλογή, η εγκατάσταση του MariaDB δεν είναι ασφαλής, επομένως θα πρέπει πρώτα να την ασφαλίσετε. Μπορείτε να το κάνετε αυτό εκτελώντας το σενάριο ασφαλούς εγκατάστασης mysql :
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:
Στη συνέχεια, δημιουργήστε μια νέα βάση δεδομένων και έναν νέο χρήστη για το 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 pool για χρήστη Nginx:
sudo nano /etc/php-fpm.d/www.conf
Αλλάξτε τις ακόλουθες γραμμές:
user = nginx
group = nginx
listen = /var/run/php/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Αποθηκεύστε και κλείστε το αρχείο όταν τελειώσετε.
Στη συνέχεια, θα χρειαστεί να δημιουργήσετε έναν νέο κατάλογο για την περίοδο λειτουργίας PHP και το αρχείο υποδοχής:
sudo mkdir -p /var/lib/php/session
sudo mkdir -p /var/run/php/
sudo chown -R nginx:nginx /var/lib/php/session/
sudo chown -R nginx:nginx /var/run/php/
Τέλος, ξεκινήστε την υπηρεσία PHP7.0-FPM και προσθέστε την για να ξεκινήσει κατά την εκκίνηση:
sudo systemctl start php-fpm
systemctl enable php-fpm
Μπορείτε να κάνετε λήψη της πιο πρόσφατης σταθερής έκδοσης του Invoice Ninja από το αποθετήριο GitHub με την ακόλουθη εντολή:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
Θα χρειαστεί επίσης να εγκαταστήσετε το Dependency Manager για PHP (composer). Μπορείτε να το εγκαταστήσετε με την ακόλουθη εντολή:
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 nginx:nginx /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.15.23;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 default;
server_name 192.168.15.23;
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/php-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;
}
}
Αποθηκεύστε και κλείστε το αρχείο και επανεκκινήστε τον διακομιστή web Nginx:
sudo systemctl restart nginx
Βήμα 7: Πρόσβαση στο Invoice Ninja
Πριν αποκτήσετε πρόσβαση στη διεπαφή ιστού Invoice Ninja, θα πρέπει να επιτρέψετε την υπηρεσία http και https μέσω του τείχους προστασίας. Εκτελέστε τις παρακάτω εντολές για να ανοίξετε τις θύρες:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Τέλος, ανοίξτε το πρόγραμμα περιήγησής σας και πληκτρολογήστε τη διεύθυνση URL και https://192.168.15.23, στη συνέχεια, ολοκληρώστε τα απαιτούμενα βήματα για να ολοκληρώσετε την εγκατάσταση.
Συγχαρητήρια! εγκαταστήσαμε με επιτυχία το Invoice Ninja με το Nginx και το MariaDB στον διακομιστή CentOS 7.