دروس تقنية ومقالات

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

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

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

ERPNext الاصدار 12 يعتبر نظامًا مفتوح المصدر وغير مرتبط بأي إجراءات ترخيص لتركيبه وتشغيله في مؤسستك الخاصة. عليك فقط حجز خادم للمضيف (Server) بنظام Ubuntu 18.04 واتباع التعليمات التالية:

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

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

  1. تأكد من أن مستخدم الاتصال بالخادم الخاص بك هو root أو لديه صلاحيات sudo لتنفيذ الأوامر.
  2. قم باستخدام Terminal للاتصال بالخادم، ولتنفيذ ذلك، يجب على مستخدمي نظام التشغيل ويندوز تثبيت عميل SSH مثل  Putty  او  Bitvise SSH Client  .
  3. ينبغي امتلاك دومين متصل بعنوان 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 erpnext@localhost 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: 

قد يهمك أيضا:  أفضل برامج تحرير PDF للويندوز والماك

سنقوم بإنشاء حساب مستخدم داخل نظام 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

تكوين الملفات الخاصة بإعدادات المشرف ونجنكس.

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

إنشاء اختصار لإعدادات المشرف و 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

تمكين خدمة تعدد الأنظمة على الخادم الواحد، ما يمكّن إنشاء نظام منفصل لكل نطاق أو نطاق فرعي.

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) في خادم الإنترنت الجديد.

قد يهمك أيضا:  التخصص في تطوير تطبيقات الويب والهاتف المحمول.. ما الفرق؟

بالإمكان تنزيل الملف وتنفيذه بهذه الطريقة، ولكن تأكد من تعديل البيانات الموجودة في الملف وفقًا لنطاقك الخاص (domain).

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

محمد النبراوي

🧰 مستشار مالي ، محلل نظم ، 🛠️صانع محتوى ، 🌐مترجم. 💾أحب التكنولوجيا والعلوم ، وشغوف ✍️ بالكتابة.

مقالات ذات صلة

اترك رد

زر الذهاب إلى الأعلى