تركيب نظام ERPNext

خطوات تركيب نظام ERPNext الاصدار 12 على Linux

daifمنذ شهرين

مقدمة:

تحتاج المؤسسات والمنشآت في القطاع العام والخاص إلى أنظمة تخطيط موارد المؤسسات ويرمز لها باختصار ERP وتعني بالانجليزية Enterprise resource planning ويشير إلى مجموعة من البرامج التي تستعين بها المؤسسات لإدارة أنشطة الأعمال اليومية.

ومن أشهر هذه الأنظمة  ERPNext الاصدار 12 هو نظام مفتوح المصدر ولا يحتاج الى تراخيص لتركيبة وتشغيلة في منشأتك الخاصة , كل ماعليك حجز خادم استضافة (Server) بنظام تشغيل Ubuntu 18.04 من شركة سديم او اي شركة أخرى واتباع التعليمات التالية.

 

متطلبات قبل البدء:

  1. تأكد أن المستخدم الخاص بك للاتصال بالخادم هو root او لديه صلاحيات تنفيذ اوامر الروت sudo.
  2. استخدم سطر الاوامر Terminal للاتصال بالخادم, مستخدمي وندوز عليه تركيب عميل SSH مثل Putty او Bitvise SSH Client.
  3. يجب ان يكون لديك نطاق (domain) مرتبط بعنوان الانترنت (IP) الخاص بالخادم, استخدم امر ping او nslookup لتتاكد من ذلك قبل البدء.

 

تحديث النظام:

ان اول ما نقوم به عند تركيب اي نظام تشغيل هو تحديث جميع البرمجيات الى اخر اصدارة متوفرة حيث يتم اضافة بعض المميزات او اصلاح بعض الاشكاليات , سنقوم الان بتحديث قائمة البرمجيات للنظام بشكل كامل ثم تركيبها:

apt -y update
apt -y upgrade

تحديد المنطقة الزمنية للنظام, سوف نحدد منطقة الرياض

timedatectl set-timezone Asia/Riyadh

 

مرحلة تركيب متطلبات النظام:

سنقوم الان بتركيب ادوات التطوير الخاصة بلغة python3:

apt -y install git build-essential python3 python3-setuptools python3-dev python3-pip wkhtmltopdf supervisor

تركيب نظام ادارة الحزم pip الخاص python3:

wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --force-reinstall

تحديث بعض الحزم عن طريق نظام ادارة الحزم pip:

pip install --upgrade setuptools cryptography ansible pip

 

مرحلة خادم الكاش Redis و Node.js:

تركيب خادم الكاش Redis و Node.js:

curl --silent --location https://deb.nodesource.com/setup_10.x | bash -
apt -y install gcc g++ make nodejs redis-server
npm install -g yarn

تشغيل خادم الكاش Redis وتفعيلة ليبدأ مع تشغيل النظام:

systemctl start redis-server
systemctl enable redis-server

 

مرحلة خادم الويب Nginx و قواعد البيانات Mariadb:

تركيب خادم الويب Nginx و قواعد البيانات Mariadb

apt -y install nginx
apt -y install mariadb-server mariadb-client libmysqlclient-dev

اعادة تشغيل خادم الويب Nginx  وتفعيل ليبدأ مع تشغيل النظام:

systemctl start nginx
systemctl enable nginx

 

مرحلة اعداد قواعد البيانات Mariadb:

اعداد قواعد البيانات Mariadb

nano /etc/mysql/mariadb.conf.d/50-server.cnf

اضافة المحتويات التالية او تعديلها اذا كانت موجودة وتخص طريقة تخزين الجدوال من نوع innodb و الترميز utf8mb4

[mysqld]
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

اعداد عميل قواعد البيانات Mariadb

nano /etc/mysql/mariadb.conf.d/50-client.cnf

اضافة المحتويات التالية او تعديلها اذا كانت موجودة ليستخدم ترميز utf8mb4 عند الاتصال بالخادم

[mysql]
default-character-set = utf8mb4

اعادة تشغيل خادم قواعد البيانات Mariadb وتفعيل ليبدأ مع تشغيل النظام:

systemctl restart mariadb
systemctl enable mariadb

 

تأمين قواعد البيانات عن طريق تنفيذ أمر mysql_secure_installation:

mysql_secure_installation

انشاء مستخدم خاص بنظام erpnext:

mysql -u root -p

السماح بتسجيل الدخول للمستخدم root باستخدام كلمة المرور :

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root'

يمكن ايضا انشاء مستخدم اخر باسم erpnext لاستخدامه لاحقا بدلا من استخدام root عبر تنفيذ تعليمات SQL التالية:

  1. إنشاء قاعدة بيانات باسم erpnext
  2. إنشاء مستخدم باسم erpnext ويعمل على localhost فقط
  3. إعطاء المستخدم erpnext الصلاحيات للوصول الى قاعدة البيانات erpnext
  4. إعطاء المستخدم erpnext الصلاحيات للوصول جميع قواعد البيانات , استخدم هذا الامر اذا كنت تريد استخدام erpnext بدلا من root
  5. اعادة تحميل الصلاحيات لتصبح فعال.
  6. خروج.
CREATE DATABASE erpnext;
CREATE USER [email protected] IDENTIFIED BY 'erpnext-password'; 
GRANT ALL ON erpnext.* TO 'erpnext'@'localhost' with grant option; 
GRANT ALL ON *.* TO 'erpnext'@'localhost' with grant option; // إعطاء صلاحيات كاملة
FLUSH PRIVILEGES;
QUIT;

 

مرحلة Bench و ERPNext:

سنقوم بانشاء مستخدم في النظام خاص بـ ERPNext وتمكينة من تنفيذ امر sudo:

useradd -m -s /bin/bash erpnext
passwd erpnext
usermod -aG sudo erpnext

 

استخدام اسم المستخدم erpnext لتنفيذ الاوامر

su erpnext
cd /home/erpnext/

تنزيل نسخة من مخزن bench ثم تركيبه عبر نظام ادارة الحزم pip

git clone https://github.com/frappe/bench bench-repo
pip install --user -e bench-repo

انشاء اختصار لبعض البرمجيات لتكون متوفرة في سطر الاوامر:

sudo ln -s /home/erpnext/.local/bin/virtualenv /usr/local/bin/virtualenv
sudo ln -s /home/erpnext/.local/bin/honcho /usr/local/bin/honcho
sudo ln -s /home/erpnext/.local/bin/bench /usr/local/bin/bench

تركيب بيئة العمل frappe :

bench init frappe-bench

الدخول الى مسار بيئة العمل frappe:

cd frappe-bench

انشاء ملفات الاعدادات الخاصة supervisor و Nginx

bench setup supervisor --yes
bench setup nginx --yes

انشاء اختصار الى اعدادات  supervisor و Nginx

sudo ln -s `pwd`/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf
sudo ln -s `pwd`/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf

اعادة تشغيل خدمات bench:

sudo supervisorctl reread
sudo supervisorctl restart all
sudo service supervisor restart
bench restart

تفعيل خدمة تعدد الانظمة على خادم (server) واحد  مما يتيح انشاء نظام منفصل لكل نطاق (domain) او نطاق فرعي (subdomain)

bench config dns_multitenant on

اضافة نظام ERPNext الاصدار 12 الى قائمة الأنظمة ثم تركيب المتطلبات, حتى نقوم بتركيبها في اي موقع نحدده:

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

 

مرحلة انشاء موقع جديد:

انشاء موقع جديد باسم site1.local  :

bench new-site site1.local

تركيب نظام ERPNext على موقع site1.local :

bench --site site1.local install-app erpnext

اعادة انشاء ملف اعدادات Nginx ثم اعادة تشغيلة لتفعيل الموقع الجديد   :

bench setup nginx --yes
sudo service nginx reload

لتفعيل https تأكد من اضافة سجل DNS يؤشر الى الموقع الخاص بك والي سيكون مختلف عن site1.local

sudo bench setup lets-encrypt site1.local # عنوان الموقع الخاص بك مختلف عن site1.local
sudo service nginx reload

 

الخلاصة:

جميع الاوامر السابقة تم كتابتها على شكل ملف يتم تنفيذة بالمستخدم root على خادم انترنت جديد من شركة سديم او دجيتل أوشن او اي شركة أخرى.

https://gist.github.com/daif/8f0eac798a289b140f9fa39d90e5335f

يمكن تحميل وتنفيذ الملف بهذا الشكل , ولاكن تأكد من تعديل الملف حسب بيانات النطاق (domain) الخاص بك.

wget https://gist.githubusercontent.com/daif/8f0eac798a289b140f9fa39d90e5335f/raw/c342ace3c59974a2a43eb069375b0ff396b7e1ed/erpnext-installer.sh
chmod +x erpnext-installer.sh
./erpnext-installer.sh

 

كلمات دليلية: erp erpnext
2
إعجاب
189
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !