ERP atau Perancangan Sumber Perusahaan adalah rangkaian aplikasi perusahaan yang digunakan untuk menguruskan proses perniagaan teras. ERPNext adalah aplikasi ERP bebas dan sumber terbuka yang dihoskan sendiri yang ditulis dalam Python. Ia menggunakan Node.js untuk bahagian depan dan MariaDB untuk menyimpan datanya. ERPNext menyediakan antara muka web yang mudah digunakan yang membolehkan perniagaan menguruskan tugas dari hari ke hari. Ia mengandungi modul untuk perakaunan, CRM, HRM, pembuatan, POS, pengurusan projek, pembelian, pengurusan penjualan, pengurusan gudang, dan banyak lagi. ERPNext boleh digunakan untuk menguruskan industri yang berbeza seperti penyedia perkhidmatan, pembuatan, peruncitan dan sekolah.
Prasyarat
- Contoh pelayan Vultr Ubuntu 17.04.
- Pengguna sudo .
Catatan: Untuk tutorial ini, kami akan menggunakan erp.example.com
sebagai nama domain yang ditunjuk ke pelayan. Pastikan untuk mengganti semua kejadian erp.example.com
dengan nama domain sebenar anda .
Sebelum kita memulakan, pastikan pelayan anda dikemas kini.
sudo apt update
sudo apt -y upgrade
ERPNext memerlukan Python versi 2.7 untuk berfungsi. Pasang Python 2.7.
sudo apt -y install python-minimal
Anda seharusnya dapat mengesahkan versi.
python -V
Anda akan melihat output berikut.
user@vultr:~$ python -V
Python 2.7.13
Pasang beberapa lagi kebergantungan.
sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev
Pasang pip
alat Python . Pip adalah pengurus pergantungan untuk pakej Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Pastikan bahawa anda mempunyai versi pip
dan setuptools
.
sudo pip install --upgrade pip setuptools
Pasang Ansible menggunakan Pip. Ansible mengautomasikan penyediaan perisian, pengurusan konfigurasi, dan penerapan aplikasi.
sudo pip install ansible
Pasang MariaDB Server
Tambahkan repositori MariaDB ke dalam sistem.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
Pasang MariaDB.
sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev
Berikan kata laluan yang kuat untuk pengguna root MariaDB ketika ditanya.
Enjin penyimpanan Barracuda diperlukan untuk pembuatan pangkalan data ERPNext, jadi anda perlu mengkonfigurasi MariaDB untuk menggunakan mesin penyimpanan Barracuda. Edit fail konfigurasi MariaDB lalai my.cnf
.
sudo nano /etc/mysql/my.cnf
Tambahkan baris berikut di bawah [mysqld]
garis.
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
Juga, tambahkan baris berikut di bawah [mysql]
garis.
default-character-set = utf8mb4
Restart MariaDB dan aktifkannya secara automatik pada waktu boot.
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Sebelum mengkonfigurasi pangkalan data, anda perlu mengamankan MariaDB. Anda boleh mendapatkannya dengan menjalankan mysql_secure_installation
skrip.
sudo mysql_secure_installation
Anda akan diminta kata laluan root MariaDB semasa. Berikan kata laluan yang telah anda tetapkan semasa pemasangan. Anda akan ditanya sama ada anda ingin menukar kata laluan pengguna root sedia ada pelayan MariaDB anda. Anda boleh melangkau menetapkan kata laluan baru, kerana anda telah memberikan kata laluan yang kuat semasa pemasangan. Jawab "Y" untuk semua soalan lain yang diajukan.
Pasang Nginx, Node.js dan Redis
Tambahkan repositori Nodesource untuk Node.js 8.x.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Pasang Nginx, Node.js dan Redis.
sudo apt -y install nginx nodejs redis-server
Mulakan Nginx dan aktifkan pada waktu boot.
sudo systemctl start nginx
sudo systemctl enable nginx
Mulakan Redis dan aktifkan pada waktu boot.
sudo systemctl start redis-server
sudo systemctl enable redis-server
Pasang Penukar PDF
The wkhtmltopdf
program ialah baris arahan alat yang mualaf HTML ke PDF menggunakan enjin rendering QT Webkit. Pasang kebergantungan yang diperlukan.
sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base
Muat turun versi terkini wkhtmltopdf
.
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
Ekstrak arkib.
sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt
Perintah di atas akan mengeluarkan arkib ke /opt/wkhtmltox
. Buat softlink sehingga wkhtmltopdf
dan wkhtmltoimage
dapat dilaksanakan 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 kini boleh berjalan wkhtmltopdf -V
untuk memeriksa sama ada ia berfungsi, anda akan melihatnya.
user@vultr:~$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)
Pada ketika ini, kami telah memasang semua pergantungan yang diperlukan. Anda sekarang boleh terus memasang Bench.
Pasang Bangku
Bench
adalah utiliti baris perintah yang disediakan oleh Frappe untuk memasang dan mengurus aplikasi ERPNext pada sistem berasaskan Unix untuk tujuan pembangunan dan pengeluaran. Bangku juga dapat membuat dan mengurus konfigurasi Nginx dan penyelia.
Buat pengguna baru untuk menjalankan proses Bench di persekitaran terpencil.
sudo adduser bench --home /opt/bench
Berikan sudo
kebenaran kepada bench
pengguna.
sudo usermod -aG sudo bench
Log 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
Pasang Bangku menggunakan pip
.
sudo pip install -e bench-repo
Setelah Bench dipasang, teruskan pemasangan ERPNext menggunakan Bench.
Pasang ERPNext menggunakan Bench
Memulakan direktori bangku dengan rangka frappe dipasang. Untuk memastikan semuanya kemas, kami akan bekerja di bawah /opt/bench
direktori. Bangku juga akan menyediakan sandaran biasa dan kemas kini automatik sekali sehari.
cd /opt/bench
bench init erpnext && cd erpnext
Buat laman web Frappe baru.
bench new-site erp.example.com
Perintah di atas akan meminta kata laluan root MySQL. Berikan kata laluan yang telah anda tetapkan untuk pengguna root MySQL sebelumnya. Ia juga akan meminta anda menetapkan kata laluan baru untuk akaun pentadbir. Anda memerlukan kata laluan ini kemudian untuk log masuk ke papan pemuka pentadbir .
Muat turun fail pemasangan ERPNext dari repositori git jauh menggunakan Bench.
bench get-app erpnext https://github.com/frappe/erpnext
Pasang ERPNext di laman web anda yang baru dibuat.
bench --site erp.example.com install-app erpnext
Anda boleh memulakan aplikasi dengan segera untuk memeriksa apakah aplikasi berjaya dipasang.
bench start
Walau bagaimanapun, anda harus menghentikan pelaksanaannya dan melangkah lebih jauh untuk menyiapkan aplikasi untuk penggunaan produksi.
Penyelia Persediaan dan Nginx
Secara lalai, aplikasi ERPNext mendengarkan di port 8000
, bukan port HTTP standard 80
. Selain itu, menjalankan pelayan web bawaan untuk penggunaan pengeluaran tidak digalakkan kerana kami akan mendedahkan pelayan ke seluruh dunia. Anda harus menggunakan pelayan web pengeluaran sebagai proksi terbalik seperti Apache atau Nginx. Kami akan menggunakan Nginx sebagai proksi terbalik kerana ia dapat dikonfigurasi secara automatik menggunakan Bench. Bangku boleh menghasilkan dan memasang konfigurasi secara automatik mengikut persediaan ERPNext.
Walaupun kami dapat memulakan aplikasi menggunakan perintah 'bench start', pelaksanaan ERPNext akan berhenti sebaik sahaja anda menutup terminal. Untuk mengatasi masalah ini, anda harus menggunakan Penyelia, yang sangat membantu dalam menjalankan aplikasi secara berterusan dalam lingkungan produksi. Penyelia adalah sistem kawalan proses yang membolehkan anda memantau dan mengawal sejumlah proses pada sistem operasi Linux. Setelah Penyelia dikonfigurasi, ia akan memulakan aplikasi secara automatik pada waktu boot dan juga kegagalan. Bangku boleh mengkonfigurasi Penyelia secara automatik untuk aplikasi ERPNext.
Pasang Penyelia.
sudo apt -y install supervisor
Mulakan Penyelia dan aktifkan secara automatik pada waktu boot.
sudo systemctl start supervisor
sudo systemctl enable supervisor
Bangku Persediaan untuk kegunaan pengeluaran.
sudo bench setup production bench
Perintah di atas mungkin meminta anda sebelum mengganti fail konfigurasi lalai Penyelia yang ada dengan yang baru. Pilih y
untuk meneruskan. Bench menambah sebilangan proses ke fail konfigurasi Penyelia. Perintah di atas juga akan menanyakan kepada anda jika anda ingin mengganti konfigurasi Nginx semasa dengan yang baru. Masukkan y
untuk meneruskan. Setelah Bench selesai memasang konfigurasi, sediakan pengguna lain untuk melaksanakan fail di direktori utama pengguna Bench anda.
chmod o+x /opt/bench/
Anda kini boleh mengakses laman web di http://erp.example.com
.
Anda boleh menyemak status proses dengan menjalankan.
sudo supervisorctl status all
Anda mesti melihat output berikut.
bench@vultr:~/erpnext$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache RUNNING pid 13852, uptime 0:00:54
erpnext-redis:erpnext-redis-queue RUNNING pid 13851, uptime 0:00:54
erpnext-redis:erpnext-redis-socketio RUNNING pid 13853, uptime 0:00:54
erpnext-web:erpnext-frappe-web RUNNING pid 13856, uptime 0:00:54
erpnext-web:erpnext-node-socketio RUNNING pid 13855, uptime 0:00:54
erpnext-workers:erpnext-frappe-default-worker-0 RUNNING pid 13862, uptime 0:00:54
erpnext-workers:erpnext-frappe-long-worker-0 RUNNING pid 13870, uptime 0:00:54
erpnext-workers:erpnext-frappe-schedule RUNNING pid 13869, uptime 0:00:54
erpnext-workers:erpnext-frappe-short-worker-0 RUNNING pid 13875, uptime 0:00:54
Untuk menghentikan semua proses ERPNext.
sudo supervisorctl stop all
Untuk memulakan semua proses ERPNext.
sudo supervisorctl start all
Menyiapkan SSL menggunakan Let's Encrypt
Let's Encrypt memberikan sijil SSL percuma kepada pengguna. SSL boleh dipasang secara manual atau automatik melalui Bench. Bangku boleh memasang klien Let's Encrypt secara automatik dan mendapatkan sijil. Selain itu, ia secara automatik mengemas kini konfigurasi Nginx untuk menggunakan sijil.
Nama domain yang anda gunakan untuk mendapatkan sijil dari Let's Encrypt CA mesti dihalakan ke arah pelayan. Pelanggan mengesahkan pihak berkuasa domain sebelum mengeluarkan sijil .
Dayakan DNS multi-tenancy untuk aplikasi ERPNext.
bench config dns_multitenant on
Jalankan Bench untuk menyediakan Let's Encrypt di laman web anda.
sudo bench setup lets-encrypt erp.example.com
Semasa pelaksanaan skrip, klien Let's Encrypt akan meminta anda menghentikan pelayan web Nginx buat sementara waktu. Secara automatik akan memasang pakej yang diperlukan dan klien Let's Encrypt. Pelanggan akan meminta alamat e-mel anda. Anda juga perlu menerima terma dan syarat. Setelah sijil dibuat, Bench juga akan menghasilkan konfigurasi baru untuk Nginx yang menggunakan sijil SSL. Anda akan diminta sebelum mengganti konfigurasi yang ada. Bangku juga membuat crontab
entri untuk memperbaharui sijil secara automatik setiap bulan.
Akhirnya, aktifkan penjadual untuk menjalankan tugas yang dijadualkan secara automatik.
bench enable-scheduler
Anda mesti melihat output ini.
bench@vultr:~/erpnext$ bench enable-scheduler
Enabled for erp.example.com
Kesimpulannya
Setelah proses selesai, anda boleh mengakses aplikasi anda di https://erp.example.com
. Log masuk dengan nama pengguna Administrator
dan kata laluan yang telah anda tetapkan semasa pemasangan. Anda akan dibawa ke meja di mana anda perlu memberikan maklumat untuk menetapkan ERPNext ERP mengikut syarikat anda. Anda kini boleh menggunakan aplikasi untuk menguruskan syarikat anda.
Tahniah, anda telah memasang aplikasi ERPNext yang berfungsi sepenuhnya pada pelayan Ubuntu 17.04 anda.