مرسال إكسبرس

دليل التثبيت الشامل على cPanel

1 إنشاء قاعدة بيانات MySQL
ملاحظة مهمة: سنقوم بإنشاء قاعدة بيانات MySQL وتكوينها للعمل مع نظام الشحن.
معلومات قاعدة البيانات
خطوات إنشاء قاعدة البيانات في cPanel:
  1. ادخل إلى cPanel واختر "MySQL Databases"
  2. أنشئ قاعدة بيانات جديدة باسم "shipping_system"
  3. أنشئ مستخدم جديد مع كلمة مرور قوية
  4. اربط المستخدم بقاعدة البيانات مع صلاحيات كاملة
  5. احفظ معلومات الاتصال للخطوة التالية
2 رفع ملفات التطبيق
تنبيه: تأكد من رفع جميع الملفات إلى المجلد الصحيح في cPanel.
الملفات المطلوبة:
app.py - ملف التطبيق الرئيسي
main.py - نقطة بداية التطبيق
models.py - نماذج قاعدة البيانات
routes.py - مسارات التطبيق
translations.py - ترجمات النظام
templates/ - قوالب HTML
static/ - ملفات CSS و JS
instance/shipping.db - قاعدة البيانات الأولية
خطوات رفع الملفات:
  1. ادخل إلى File Manager في cPanel
  2. انتقل إلى مجلد public_html
  3. أنشئ مجلد جديد للتطبيق (مثل: shipping)
  4. ارفع جميع الملفات إلى المجلد الجديد
  5. تأكد من الحفاظ على هيكل المجلدات
3 تكوين التطبيق
إنشاء ملف .htaccess:
.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ main.py [QSA,L] # Environment Variables SetEnv SESSION_SECRET "your-secure-random-session-key-here" SetEnv DATABASE_URL "mysql+pymysql://username:password@localhost/database_name" # Python Configuration PassengerPython /home/cpanelusername/virtualenv/public_html/shipping/3.11/bin/python PassengerAppRoot /home/cpanelusername/public_html/shipping PassengerStartupFile main.py PassengerAppType wsgi
إنشاء ملف passenger_wsgi.py:
passenger_wsgi.py
import sys import os # Add your project directory to the sys.path sys.path.insert(0, os.path.dirname(__file__)) from app import app as application if __name__ == "__main__": application.run()
تحديث app.py لدعم MySQL:
إضافة إلى app.py
# MySQL Database Configuration for cPanel database_url = os.environ.get("DATABASE_URL") if not database_url: # Default MySQL connection for cPanel database_url = "mysql+pymysql://username:password@localhost/database_name" # Ensure MySQL format if database_url.startswith("mysql://"): database_url = database_url.replace("mysql://", "mysql+pymysql://", 1) app.config["SQLALCHEMY_DATABASE_URI"] = database_url app.config["SQLALCHEMY_ENGINE_OPTIONS"] = { "pool_recycle": 3600, "pool_pre_ping": True, "pool_size": 3, "max_overflow": 2, "echo": False, "connect_args": { "charset": "utf8mb4", "init_command": "SET sql_mode='STRICT_TRANS_TABLES'", } }
نصيحة: استبدل username، password، database_name بالقيم الصحيحة من قاعدة البيانات التي أنشأتها.
4 اختبار التثبيت
خطوات الاختبار:
  1. تثبيت المكتبات المطلوبة:
    pip install Flask Flask-SQLAlchemy Flask-Login pymysql cryptography
  2. زيارة موقعك:

    اذهب إلى: https://yourdomain.com/shipping/

  3. تسجيل الدخول:
    بيانات الدخول الافتراضية:
    اسم المستخدم: admin
    كلمة المرور: admin123
  4. اختبار إنشاء شحنة جديدة
  5. اختبار طباعة الفواتير
  6. اختبار تتبع الشحنات
علامات النجاح:
  • صفحة تسجيل الدخول تظهر بشكل صحيح
  • يمكن تسجيل الدخول بنجاح
  • لوحة التحكم تحمل بدون أخطاء
  • يمكن إنشاء شحنات جديدة
  • طباعة الفواتير تعمل
مشاكل شائعة وحلولها:
  • خطأ قاعدة البيانات: تحقق من معلومات الاتصال في .htaccess
  • خطأ 500: تحقق من مسار Python في PassengerPython
  • ملفات لا تحمل: تحقق من أذونات الملفات (755 للمجلدات، 644 للملفات)
  • CSS لا يعمل: تحقق من مسار مجلد static