GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Memasang Invoice Ninja di CentOS 7

Invoice Ninja adalah perangkat lunak berbasis web sumber terbuka dan gratis untuk pembuatan faktur, pembayaran, pelacakan waktu, dan banyak lagi. Anda dapat membuat Faktur online dalam hitungan detik, berintegrasi dengan gateway pembayaran seperti stripe, PayPal, dan WePay. Ninja Faktur dapat menampilkan faktur langsung sebagai file PDF, Anda dapat menyiapkan logo perusahaan Anda sendiri dan menggunakan template faktur khusus. Invoice Ninja didasarkan pada PHP, dibuat dengan Laravel Framework dan dapat diinstal di Linux, Windows, dan Mac.

Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi Invoice Ninja di server CentOS 7. Saya akan menggunakan Nginx sebagai server web dan MariaDB sebagai sistem Database.

Prasyarat

  • Server CentOS 7
  • Hak istimewa root

Langkah 1 - Instal Nginx

Pada langkah ini, kita akan menginstal server web Nginx. Hubungkan ke server Anda dengan akun ssh rot Anda.

ssh [email protected]

Sebelum menginstal Nginx, Anda harus menginstal repositori Epel di sistem CentOS Anda.

yum -y install epel-release

Sekarang Anda dapat menginstal Nginx dengan perintah yum di bawah ini dari repositori epel:

yum -y install nginx

Ketika instalasi selesai, mulai Nginx dan aktifkan untuk memulai pada saat boot.

systemctl start nginx
systemctl enable nginx

Pastikan Nginx berjalan dengan memeriksa port yang digunakan oleh Nginx (port 80).

netstat -plntu

Catatan:

Jika perintah netstat tidak ditemukan, Anda dapat menginstal net-tools seperti ini:

yum -y install net-tools

Langkah 2 - Instal dan Konfigurasi Server MariaDB

Setelah menginstal Nginx, kita perlu menginstal server mariadb di sistem. Ini tersedia di repositori CentOS. Instal mariadb-server dan semua paket yang diperlukan untuk MariaDB dengan perintah di bawah ini.

yum install -y mariadb-server

Mulai layanan mariadb dan aktifkan untuk memulai saat boot dengan perintah systemctl.

systemctl start mariadb
systemctl enable mariadb

MariaDB dimulai, sekarang Anda dapat mengatur kata sandi root untuk MariaDB dengan perintah 'mysql_secure_installation'.

mysql_secure_installation

Setel kata sandi root MariaDB Anda.

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

Jika semua sudah selesai, Anda dapat mencoba menghubungkan dengan shell MySQL dan pengguna root.

mysql -u root -p
TYPE YOUR ROOT PASSWORD

Anda akan melihat shell MySQL.

Selanjutnya, kita perlu membuat database baru dan pengguna baru untuk Invoice Ninja di shell MySQL yang kita buka. Kami akan membuat database baru bernama 'ninjadb ', pengguna baru 'ninja ' dengan sandi 'aqwe123 '. Silakan pilih kata sandi aman yang berbeda untuk instalasi Anda.

Buat semuanya dengan kueri MySQL di bawah ini:buat database baru, buat pengguna dan kata sandi baru, berikan akses database ke pengguna baru dengan kata sandi.

create database ninjadb;
create user [email protected] identified by 'aqwe123';
grant all privileges on ninjadb.* to [email protected] identified by 'aqwe123';
flush privileges;

MariaDB telah diinstal dan database serta pengguna baru untuk Ninja Faktur telah dibuat.

Langkah 3 - Instal dan Konfigurasi PHP7.0-FPM

Invoice Ninja berbasis PHP, jadi kita perlu menginstalnya di sistem. Saya akan menggunakan PHP7.0-FPM untuk instalasi Invoice Ninja.

Tidak ada PHP7.0 di repositori default CentOS, jadi kita perlu menambahkan repositori PHP7.0 baru ke sistem. Saya akan menggunakan repositori webtatic.

Tambahkan repositori PHP7.0 ke sistem.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Sekarang Anda dapat menginstal PHP7.0-FPM dan ekstensi PHP lainnya yang dibutuhkan oleh Invoice Ninja dari repositori webtatic.

yum -y install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt php70w-curl php70w-gmp php70w-pdo

Setelah instalasi selesai, edit file konfigurasi php.ini dengan vim.

vim /etc/php.ini

Batalkan komentar pada baris cgi.fix_pathinfo di bawah dan ubah nilainya menjadi 0.

cgi.fix_pathinfo=0

Simpan file dan keluar dari vim.

Kemudian edit file konfigurasi PHP-FPM.

vim /etc/php-fpm.d/www.conf

Ubah pengguna dan grup pada baris 8 dan 10 menjadi 'nginx ' kelompok.

user = nginx
group = nginx

Alih-alih port, kami akan menggunakan file socket untuk php-fpm. Ubah baris pendengar menjadi '/var/run/php/php-fpm.sock '.

listen = /var/run/php/php-fpm.sock

Batalkan komentar pada konfigurasi file soket, pemilik, grup, dan izin.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Batalkan komentar variabel lingkungan php-fpm pada baris 366-370.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Simpan file dan keluar dari editor.

Sekarang kita perlu membuat direktori sesi PHP baru dan mengubah pemiliknya menjadi pengguna dan grup nginx.

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session/

Buat direktori baru untuk file soket dan ubah izin ke pengguna dan grup nginx.

mkdir -p /var/run/php/
chown -R nginx:nginx /var/run/php/

Selanjutnya, mulai PHP7.0-FPM dan tambahkan untuk memulai saat boot.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM telah dimulai. Sekarang Anda dapat memeriksanya dengan perintah di bawah ini dan Anda akan melihat file soket PHP.

netstat -pl

PHP7.0-FPM dan semua ekstensi yang diperlukan oleh Invoice Ninja telah diinstal.

Langkah 4 - Instal dan Konfigurasi Ninja Faktur

Pada langkah ini, kita akan mendownload dan mengkonfigurasi Invoice Ninja. Pertama, instal unzip di sistem Anda.

yum -y install unzip

Buat direktori baru untuk file webroot Invoice Ninja.

mkdir -p /var/www/
cd /var/www/

Unduh Invoice Ninja dengan perintah wget.

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

Ekstrak file zip Ninja Faktur dan buka 'ninja ' direktori.

unzip ninja-v3.1.0.zip
cd ninja/

Untuk proyek Laravel, kita perlu menginstal composer, Dependency Manager untuk PHP.

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

Sekarang Anda dapat menggunakan perintah komposer.

Selanjutnya, instal dependensi Invoice Ninja dengan perintah composer di bawah ini.

composer install --no-dev -o
  • --no-dev: Menonaktifkan penginstalan paket require-dev.
  • -o: Optimalkan pemuat otomatis selama pembuangan pemuat otomatis.

Ketika instalasi ketergantungan selesai, salin file .env dan edit dengan vim.

cp .env.example .env
vim .env

Ubah nilai pengaturan database di bawah ini.

DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123

Simpan dan keluar.

Selanjutnya, edit konfigurasi database di direktori config.

vim config/database.php

Kami menggunakan database MariaDB/MySQL, buka pengaturan MySQL di baris 55.

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

Simpan dan keluar.

Semua file konfigurasi diedit, selanjutnya siapkan database dengan perintah di bawah ini.

php artisan migrate

Anda akan diminta menjalankan perintah, ketik 'yes' dan tekan Enter.

Selanjutnya, seed database dengan semua record.

php artisan db:seed

Ketik 'ya' dan tekan Enter untuk mengonfirmasi.

Buat kunci aplikasi.

php artisan key:generate

Anda akan melihat kunci aplikasi.

Edit file app.php dengan vim.

vim config/app.php

Buka APP_KEY baris 85 dan tempelkan kunci yang dihasilkan (kunci di bawah ini adalah contoh, gunakan kunci yang Anda dapatkan dari perintah di atas).

'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),

Simpan dan keluar.

Terakhir, ubah pemilik direktori '/var/www/ninja' menjadi pengguna dan grup 'nginx'.

cd /var/www/
chown -R nginx:nginx ninja/

Invoice Ninja telah dikonfigurasi dan siap dipasang.

Langkah 5 - Konfigurasi SSL dan Virtual Host

Pada langkah ini, kami akan membuat file Sertifikat SSL dengan perintah openssl dan membuat konfigurasi virtual host baru untuk Invoice Ninja. Jika Anda menggunakan server langsung, Anda juga dapat menggunakan SSL gratis dari Let's Encrypt.

Buat direktori 'sertifikat' baru untuk file SSL.

mkdir -p /etc/nginx/cert/

Jalankan perintah OpenSSL di bawah ini untuk menghasilkan file sertifikat.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key

Ubah izin file sertifikat menjadi '600'.

chmod 600 /etc/nginx/cert/*

Selanjutnya, masuk ke direktori Nginx dan buat file konfigurasi virtual host baru bernama 'ninja.conf '.

cd /etc/nginx/
vim conf.d/ninja.conf

Tempel konfigurasi host virtual di bawah.

server {
    # Your Domain Name - hakase-labs.co
    listen      80;
    server_name ninja.co www.ninja.co;

    # Rewrite redirect to https
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    # Your Domain Name - hakase-labs.co
    listen      443 default;
    server_name ninja.co www.ninja.co;

    # Enable SSL for Invoice Ninja
    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;

    # Invoice Ninja web root files
    root /var/www/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;
    }
}

Simpan dan keluar.

Sekarang uji konfigurasi Nginx dan pastikan tidak ada kesalahan.

nginx -t

Mulai ulang server web Nginx.

systemctl restart nginx

Konfigurasi virtual host Invoice Ninja telah dibuat.

Langkah 6 - Konfigurasi SELinux dan Firewalld

Jika SELinux Anda mati, Anda dapat melewati langkah ini dan mulai mengkonfigurasi Firewalld. Pada langkah ini, kita akan mengkonfigurasi SELinux dan Firewalld untuk Invoice Ninja. Periksa status SELinux Anda dan pastikan firewalld terpasang.

Periksa status SELinux dengan perintah di bawah ini.

getenforce

Jika SELinux Anda aktif, Anda akan melihat hasil 'Enforcing' atau 'Permissive'.

Sekarang instal alat manajemen SELinux dari repositori.

yum -y install policycoreutils-python

Dan jalankan perintah di bawah ini untuk mengizinkan Invoice Ninja berjalan di bawah SELinux dalam mode Enforcing.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/tests(/.*)?'
restorecon -Rv '/var/www/ninja/'

Selanjutnya kita perlu membuka port server agar Invoice Ninja bisa diakses dari luar.

Pastikan firewalld diinstal pada sistem Anda, atau Anda dapat menginstalnya dengan perintah yum.

yum -y install firewalld

Mulai firewalld dan aktifkan untuk memulai waktu boot.

systemctl start firewalld
systemctl enable firewalld

Sekarang kita perlu membuka port HTTP dan HTTPS untuk Invoice Ninja. Jalankan perintah di bawah ini untuk membuka port.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

SELinux dan Firewalld dikonfigurasi.

Langkah 7 - Pengujian

Buka browser web Anda dan ketik URL Ninja Faktur, dalam kasus saya:ninja.co.

Anda akan dialihkan ke koneksi https dan halaman penyiapan.

Masukkan detail konfigurasi yang diminta, Pengaturan Aplikasi, Koneksi Basis Data, Pengaturan Email, Detail Pengguna, dan periksa TOS Ninja Faktur.

Klik 'Kirim ' dan Anda akan diarahkan ke halaman login Ninja Faktur.

Ketik email dan kata sandi Anda, lalu tekan 'LOGIN '.

Anda akan melihat Dasbor Ninja Faktur.

Halaman Pengaturan Ninja Faktur.

Invoice Ninja telah diinstal dengan Nginx dan MariaDB di CentOS 7.

Referensi

  • https://calyrium.org/post/install-invoiceninja-archlinux-nginx/
  • https://github.com/Lykegenes/vps-toolkit/blob/master/apps/invoice-ninja-nginx

Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara Menginstal Nginx di CentOS 7

  3. Cara Memasang Invoice Ninja di Debian 9

  1. Cara Menginstal R di CentOS 7

  2. Cara Instal phpMyAdmin dengan Nginx di CentOS 7

  3. Cara Menginstal Nginx di CentOS 8

  1. Cara Menginstal R di CentOS 8

  2. Cara Menginstal Magento 2.1 di CentOS 7

  3. Cara Menginstal SuiteCRM dengan Nginx di CentOS 7