مقدمة:
تحتاج المؤسسات والمنشآت في القطاع العام والخاص إلى أنظمة تخطيط موارد المؤسسات ويرمز لها باختصار ERP وتعني بالانجليزية Enterprise resource planning ويشير إلى مجموعة من البرامج التي تستعين بها المؤسسات لإدارة أنشطة الأعمال اليومية.
ومن أشهر هذه الأنظمة ERPNext الاصدار 12 هو نظام مفتوح المصدر ولا يحتاج الى تراخيص لتركيبة وتشغيلة في منشأتك الخاصة , كل ماعليك حجز خادم استضافة (Server) بنظام تشغيل Ubuntu 18.04 من شركة سديم او اي شركة أخرى واتباع التعليمات التالية.
متطلبات قبل البدء:
- تأكد أن المستخدم الخاص بك للاتصال بالخادم هو root او لديه صلاحيات تنفيذ اوامر الروت sudo.
- استخدم سطر الاوامر Terminal للاتصال بالخادم, مستخدمي وندوز عليه تركيب عميل SSH مثل Putty او Bitvise SSH Client.
- يجب ان يكون لديك نطاق (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 التالية:
- إنشاء قاعدة بيانات باسم erpnext
- إنشاء مستخدم باسم erpnext ويعمل على localhost فقط
- إعطاء المستخدم erpnext الصلاحيات للوصول الى قاعدة البيانات erpnext
- إعطاء المستخدم erpnext الصلاحيات للوصول جميع قواعد البيانات , استخدم هذا الامر اذا كنت تريد استخدام erpnext بدلا من root
- اعادة تحميل الصلاحيات لتصبح فعال.
- خروج.
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:
سنقوم بانشاء مستخدم في النظام خاص بـ 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
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !