Cara Menginstal ERPNext Open Source ERP pada CentOS 7

ERP atau Enterprise Resource Planning adalah rangkaian aplikasi perusahaan yang digunakan untuk mengelola proses bisnis inti. ERPNext adalah aplikasi ERP mandiri dan open-source yang ditulis dengan Python. Ia menggunakan Node.js untuk front end dan MariaDB untuk menyimpan datanya. ERPNext menyediakan antarmuka web yang mudah digunakan yang memungkinkan perusahaan mengelola tugas sehari-hari. Ini berisi modul untuk akuntansi, CRM, HRM, manufaktur, POS, manajemen proyek, pembelian, manajemen penjualan, manajemen gudang, dan banyak lagi. ERPNext dapat digunakan untuk mengelola berbagai industri seperti penyedia layanan, manufaktur, ritel, dan sekolah.

Dalam tutorial ini, kita akan menginstal ERPNext pada CentOS 7.

Prasyarat

Untuk tutorial ini, kita akan menggunakan erp.example.comnama domain yang menunjuk ke server. Pastikan untuk mengganti semua kemunculan erp.example.comdengan nama domain Anda yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan " Cara Memperbarui CentOS 7 ". Setelah sistem Anda diperbarui, lanjutkan untuk menginstal Python.

Instal Alat Pengembangan

ERPNext membutuhkan Python versi 2.7 untuk berfungsi. Python 2.7 diinstal secara default di semua instance server CentOS. Anda dapat memeriksa apakah versi Python yang diinstal dengan menjalankan:

python -V

Anda harus mendapatkan hasil yang serupa.

[user@vultr ~]$ python -V
Python 2.7.5

Meskipun versi yang terinstal dari Python bukan yang terbaru, ia bekerja tanpa hambatan. Mengubah versi default Python dapat merusak YUM.

Instal paket dalam Development toolsgrup yang diperlukan untuk mengkompilasi file installer.

sudo yum groupinstall -y "Development tools"

Instal beberapa dependensi lagi:

sudo yum install -y redhat-lsb-core git python-setuptools python-devel openssl-devel libffi-devel

Instal pipalat Python . Pip adalah manajer dependensi untuk paket Python.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Perintah di atas akan menginstal Pip ke sistem Anda. Untuk memastikan bahwa Anda memiliki versi terbaru pipdan setuptools, jalankan:

sudo pip install --upgrade pip setuptools

Instal Ansible menggunakan Pip. Kemungkinan mengotomatiskan penyediaan perangkat lunak, manajemen konfigurasi, dan penyebaran aplikasi.

sudo pip install ansible

Instal Server MariaDB

MariaDB adalah fork dari server database MySQL. Instal MariaDB dengan menjalankan.

sudo yum -y install mariadb mariadb-server mysql-devel

Mesin penyimpanan Barracuda diperlukan untuk pembuatan basis data ERPNext, maka Anda perlu mengonfigurasi MariaDB untuk menggunakan mesin penyimpanan Barracuda. Edit file konfigurasi MariaDB default my.cnf.

sudo nano /etc/my.cnf

Tambahkan baris berikut di bawah symbolic-links=0garis.

innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

Mulai MariaDB dan aktifkan untuk memulai secara otomatis saat boot.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Sebelum mengkonfigurasi basis data, Anda perlu mengamankan MariaDB. Anda dapat mengamankannya dengan menjalankan mysql_secure_installationskrip:

sudo mysql_secure_installation

Anda akan dimintai kata sandi root MariaDB saat ini. Secara default, tidak ada kata sandi root yang ditetapkan pada MariaDB. Tekan tombol "Enter" untuk melanjutkan. Tetapkan kata sandi yang kuat untuk pengguna root dari server MariaDB Anda dan jawab "Y" untuk semua pertanyaan lain yang ditanyakan. Pertanyaan yang diajukan cukup jelas.

Instal Nginx, Nodejs dan Redis

Karena repositori EPEL diinstal secara default di semua instance Vultr CentOS 7, Anda dapat langsung menginstal Redis dan Nginx. Tetapi untuk menginstal versi terbaru Node.js, Anda perlu menambahkan repositori Nodesource ke sistem Anda.

Tambahkan repositori Nodesource untuk Node.js 8.x.

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Instal Nginx, Nodejs dan Redis:

sudo yum -y install nginx nodejs redis

Mulai Nginx dan aktifkan untuk memulai saat boot dengan menjalankan:

sudo systemctl start nginx
sudo systemctl enable nginx

Mulai Redis dan aktifkan untuk memulai saat boot dengan menjalankan:

sudo systemctl start redis
sudo systemctl enable redis

Instal PDF Converter

The wkhtmltopdfProgram adalah alat baris perintah yang mengubah HTML ke PDF menggunakan mesin rendering WebKit QT. Instal dependensi yang diperlukan:

sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

Unduh versi terbaru dari wkhtmltopdf.

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

Ekstrak arsip dengan menjalankan:

sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt

Perintah di atas akan mengekstrak arsip ke /opt/wkhtmltox. Buat softlink sehingga wkhtmltopdfdan wkhtmltoimagedapat dieksekusi secara global sebagai perintah.

sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage

Anda sekarang dapat menjalankan wkhtmltopdf -Vperintah untuk memeriksa apakah itu berfungsi, Anda akan melihat:

[user@vultr ~]$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)

Pada titik ini, kami telah menginstal semua dependensi yang diperlukan. Anda sekarang dapat melanjutkan untuk menginstal Bench.

Pasang Bench

Benchadalah utilitas baris perintah yang disediakan oleh Frappe untuk menginstal dan mengelola aplikasi ERPNext pada sistem berbasis Unix untuk keperluan pengembangan dan produksi. Bench juga dapat membuat dan mengelola konfigurasi Nginx dan pengawas.

Buat pengguna baru untuk menjalankan proses Bench di lingkungan yang terisolasi.

sudo adduser bench -d /opt/bench

Ubah kata sandi pengguna.

sudo passwd bench

Berikan sudoizin kepada benchpengguna.

sudo usermod -aG wheel bench

Masuk sebagai pengguna yang baru dibuat bench:

sudo su - bench

Klon repositori Bench di /opt/bench:

cd /opt/bench
git clone https://github.com/frappe/bench bench-repo

Instal Bench menggunakan pip.

sudo pip install -e bench-repo

Setelah Bench diinstal, lanjutkan untuk menginstal ERPNext menggunakan Bench.

Instal ERPNext menggunakan Bench

Inisialisasi direktori bangku dengan kerangka kerja frappe yang diinstal. Agar semuanya rapi, kami akan bekerja di bawah /opt/benchdirektori. Bench juga akan mengatur pencadangan rutin dan pembaruan otomatis sekali sehari.

cd /opt/bench
bench init erpnext && cd erpnext

Buat situs Frappe baru:

bench new-site erp.example.com

Perintah di atas akan meminta Anda untuk kata sandi root MySQL. Berikan kata sandi yang telah Anda tentukan untuk pengguna root MySQL sebelumnya. Ia juga akan meminta Anda untuk menetapkan kata sandi baru untuk akun administrator. Anda akan memerlukan kata sandi ini nanti untuk masuk ke dasbor administrator.

Unduh file instalasi ERPNext dari repositori git jarak jauh menggunakan Bench.

bench get-app erpnext https://github.com/frappe/erpnext

Instal ERPNext di situs Anda yang baru dibuat:

bench --site erp.example.com install-app erpnext

ERPNext diinstal di server Anda. Anda dapat segera memulai aplikasi untuk memeriksa apakah aplikasi berhasil dijalankan:

bench start

Namun, Anda harus menghentikan eksekusi dan melanjutkan untuk mengatur aplikasi untuk penggunaan produksi.

Setup Supervisor dan Nginx

Secara default, aplikasi ERPNext mendengarkan pada port 8000, tidak ke port HTTP standar 80. Juga, menjalankan server web bawaan untuk penggunaan produksi tidak dianjurkan karena kami akan mengekspos server ke dunia. Oleh karena itu, Anda harus menggunakan server web produksi sebagai proxy terbalik seperti Apache atau Nginx. Dalam tutorial ini, kita akan menggunakan Nginx sebagai proxy terbalik karena dapat dikonfigurasi secara otomatis menggunakan Bench. Bench dapat secara otomatis membuat dan menginstal konfigurasi sesuai dengan pengaturan ERPNext.

Meskipun kita dapat memulai aplikasi menggunakan perintah di atas, eksekusi ERPNext akan berhenti segera setelah Anda menutup terminal. Untuk mengatasi masalah ini, saya sarankan untuk menggunakan Supervisor yang sangat membantu dalam menjalankan aplikasi secara terus menerus dalam lingkungan produksi. Supervisor adalah sistem kontrol proses yang memungkinkan Anda memantau dan mengontrol sejumlah proses pada sistem operasi Linux. Setelah Supervisor dikonfigurasikan, itu akan secara otomatis memulai aplikasi pada saat boot maupun pada kegagalan. Bench dapat secara otomatis mengonfigurasi Supervisor untuk aplikasi ERPNext.

Instal Pengawas:

sudo yum -y install supervisor

Mulai Supervisor dan aktifkan untuk memulai secara otomatis saat boot:

sudo systemctl start supervisord
sudo systemctl enable supervisord

Setup Bench untuk penggunaan produksi:

 sudo bench setup production bench

Perintah di atas mungkin meminta Anda sebelum mengganti file konfigurasi default Supervisor yang ada dengan yang baru. Pilih yuntuk melanjutkan. Bench menambahkan sejumlah proses ke file konfigurasi Supervisor. Perintah di atas juga akan menanyakan apakah Anda ingin mengganti konfigurasi Nginx saat ini dengan yang baru. Masuk yuntuk melanjutkan. Setelah Bench selesai menginstal konfigurasi, berikan pengguna lain untuk mengeksekusi file di direktori home Anda dari pengguna Bench.

chmod o+x /opt/bench/

Jika Anda menjalankan firewall di server Anda, Anda harus mengkonfigurasi firewall untuk menetapkan pengecualian untuk layanan HTTP. Izinkan Nginx membalikkan proxy untuk tersambung dari luar jaringan.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Anda sekarang dapat mengakses situs pada http://erp.example.com.

Anda dapat memeriksa status proses dengan menjalankan:

sudo supervisorctl status all

Anda akan melihat output berikut:

[bench@vultr ~]$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache                 RUNNING   pid 2554, uptime 1:06:58
erpnext-redis:erpnext-redis-queue                 RUNNING   pid 2553, uptime 1:06:58
erpnext-redis:erpnext-redis-socketio              RUNNING   pid 2555, uptime 1:06:58
erpnext-web:erpnext-frappe-web                    RUNNING   pid 2559, uptime 1:06:58
erpnext-web:erpnext-node-socketio                 RUNNING   pid 2556, uptime 1:06:58
erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 2549, uptime 1:06:58
erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 2551, uptime 1:06:58
erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 2550, uptime 1:06:58
erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 2552, uptime 1:06:58

Untuk menghentikan semua proses ERPNext, gunakan:

sudo supervisorctl stop all

Untuk memulai semua proses ERPNext, gunakan:

sudo supervisorctl start all

Menyiapkan SSL Menggunakan Let's Encrypt

Let's Encrypt memberikan sertifikat SSL gratis kepada pengguna. SSL dapat diinstal secara manual atau otomatis melalui Bench. Bench dapat secara otomatis menginstal klien Let's Encrypt dan mendapatkan sertifikat. Selain itu, secara otomatis memperbarui konfigurasi Nginx untuk menggunakan sertifikat.

Nama domain yang Anda gunakan untuk mendapatkan sertifikat dari Let's Encrypt CA harus diarahkan ke server. Klien memverifikasi otoritas domain sebelum menerbitkan sertifikat.

Aktifkan DNS multi-tenancy untuk aplikasi ERPNext.

bench config dns_multitenant on

Jalankan Bench untuk menyiapkan Let's Encrypt di situs Anda:

sudo bench setup lets-encrypt erp.example.com

Selama eksekusi skrip, klien Let's Encrypt akan meminta Anda untuk menghentikan sementara server web Nginx. Ini akan secara otomatis menginstal paket yang diperlukan dan Let's Encrypt client. Klien akan meminta alamat email Anda. Anda juga harus menerima syarat dan ketentuan. Setelah sertifikat dibuat, Bench juga akan menghasilkan konfigurasi baru untuk Nginx yang menggunakan sertifikat SSL. Anda akan ditanya sebelum mengganti konfigurasi yang ada. Bench juga membuat crontabentri untuk secara otomatis memperbarui sertifikat setiap bulan.

Akhirnya, aktifkan penjadwal untuk secara otomatis menjalankan pekerjaan terjadwal:

bench enable-scheduler

Anda harus melihat:

[bench@vultr erpnext]$ bench enable-scheduler
Enabled for erp.example.com

Membungkus

Setelah proses selesai, Anda dapat mengakses aplikasi Anda di https://erp.example.com. Login dengan nama pengguna Administratordan kata sandi yang Anda tetapkan selama instalasi. Anda akan dibawa ke meja di mana Anda harus memberikan informasi untuk mengatur ERPNext ERP sesuai dengan perusahaan Anda. Anda sekarang dapat menggunakan aplikasi untuk mengelola perusahaan Anda.

Selamat, Anda memiliki aplikasi ERPNext yang berfungsi penuh diinstal pada server CentOS 7 Anda.



Cara Memasang Graylog Server pada CentOS 7

Cara Memasang Graylog Server pada CentOS 7

Menggunakan Sistem yang Berbeda? Graylog server adalah perangkat lunak manajemen log sumber terbuka siap pakai perusahaan. Ia mengumpulkan log dari berbagai sumber dan menganalisis

Atur Akun Pengguna khusus SFTP di CentOS 7

Atur Akun Pengguna khusus SFTP di CentOS 7

Pada kesempatan tertentu, Administrator Sistem mungkin perlu membuat akun pengguna dan membatasi akses mereka untuk hanya mengelola file mereka sendiri melalui sFTP, tetapi tidak

Cara Memasang Chamilo 1.11.8 pada CentOS 7

Cara Memasang Chamilo 1.11.8 pada CentOS 7

Menggunakan Sistem yang Berbeda? Chamilo adalah sistem manajemen pembelajaran (LMS) gratis dan open source yang banyak digunakan untuk pendidikan online dan kolaborasi tim

Menginstal Komunitas Odoo 9 di CentOS 7

Menginstal Komunitas Odoo 9 di CentOS 7

Odoo, sebelumnya dikenal sebagai OpenERP, adalah platform bisnis ERP open source yang terkenal. Perusahaan dengan ukuran berapa pun dapat mengambil manfaat dari Odoo, berkat lisnya yang berlimpah

Cara Memasang CMS CMS 2.0 pada CentOS 7 LAMP VPS

Cara Memasang CMS CMS 2.0 pada CentOS 7 LAMP VPS

Menggunakan Sistem yang Berbeda? Couch CMS adalah Content Management System (CMS) sederhana dan fleksibel, gratis dan open source yang memungkinkan desainer web untuk mendesain

Cara Memasang NextCloud 9 pada CentOS 7

Cara Memasang NextCloud 9 pada CentOS 7

NextCloud, seperti namanya, adalah alternatif yang menjanjikan dari solusi hosting file sumber terbuka lainnya OwnCloud. Dalam artikel ini, saya akan menunjukkan kepada Anda ho

Menginstal Netdata di CentOS 7

Menginstal Netdata di CentOS 7

Menggunakan Sistem yang Berbeda? Netdata adalah bintang yang naik di bidang pemantauan metrik sistem waktu-nyata. Dibandingkan dengan alat lain dengan jenis yang sama, Netdata:

Menyiapkan SA-MP San Andreas Multiplayer Server pada CentOS 6

Menyiapkan SA-MP San Andreas Multiplayer Server pada CentOS 6

Selamat datang di tutorial Vultr lainnya. Di sini, Anda akan belajar cara menginstal dan menjalankan server SAMP. Panduan ini ditulis untuk CentOS 6. Prasyarat Anda akan tahu

Instal Elgg pada CentOS 7

Instal Elgg pada CentOS 7

Menggunakan Sistem yang Berbeda? Elgg adalah mesin jejaring sosial open source yang memungkinkan penciptaan lingkungan sosial seperti jejaring sosial kampus

Menginstal Bolt CMS pada CentOS 7

Menginstal Bolt CMS pada CentOS 7

Bolt adalah CMS open source yang ditulis dalam PHP. Kode sumber baut di-host di GitHub. Panduan ini akan menunjukkan kepada Anda cara menginstal Bolt CMS pada CentOS 7 Vult yang baru

Cara Memasang Bugzilla 5.0.x di CentOS 7

Cara Memasang Bugzilla 5.0.x di CentOS 7

Bugzilla adalah sistem pelacakan bug sumber bebas dan terbuka yang banyak digunakan oleh berbagai vendor untuk terus meningkatkan softwar mereka

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada

Setup Sails.js untuk Pengembangan pada CentOS 7

Setup Sails.js untuk Pengembangan pada CentOS 7

Menggunakan Sistem yang Berbeda? Pendahuluan Sails.js adalah kerangka kerja MVC untuk Node.js, mirip dengan Ruby on Rails. Itu membuat untuk mengembangkan aplikasi modern ver

Menyiapkan Server Half Life 2 Pada CentOS 6

Menyiapkan Server Half Life 2 Pada CentOS 6

Tutorial ini akan membahas proses pemasangan server game Half Life 2 pada Sistem CentOS 6. Langkah 1: Menginstal prasyarat Untuk mengatur ou

Alat Pemantauan Yang Lebih Baik Untuk Ubuntu Dan CentOS

Alat Pemantauan Yang Lebih Baik Untuk Ubuntu Dan CentOS

Pendahuluan Sistem Linux dilengkapi dengan alat pemantauan secara default seperti top, df, dan du yang membantu memonitor proses dan ruang disk. Namun sering kali, mereka ar

Cara Memasang Kolab Groupware di CentOS 7

Cara Memasang Kolab Groupware di CentOS 7

Menggunakan Sistem yang Berbeda? Kolab Groupware adalah aplikasi groupware berbasis web gratis dan open source. Fitur-fiturnya terdiri dari komunikasi email, acara

Cara Memasang Koel di CentOS 7

Cara Memasang Koel di CentOS 7

Menggunakan Sistem yang Berbeda? Koel adalah aplikasi streaming audio pribadi sederhana berbasis web yang ditulis dalam Vue di sisi klien dan Laravel di sisi server. Koe

Cara Memasang GDB pada CentOS 6

Cara Memasang GDB pada CentOS 6

GDB adalah debugger untuk C, C ++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada, dan Modula-2. CentOS didasarkan pada RHEL (Red Hat Enterprise Linux). Salah satu th

Menginstal Akaunting di CentOS 7

Menginstal Akaunting di CentOS 7

Menggunakan Sistem yang Berbeda? Akaunting adalah perangkat lunak akuntansi sumber terbuka dan gratis yang dirancang untuk usaha kecil dan freelancer. Itu dibangun kecerdasan

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut