Update codebase

This commit is contained in:
Hamza-Ayed
2026-08-09 16:56:13 +03:00
parent 95e2e4f35d
commit b64debaa88
1058 changed files with 164327 additions and 113928 deletions
+10
View File
@@ -0,0 +1,10 @@
# صورة معزولة لخدمة Mawasalati (transit) — لا composer، لا vendor مشترك
# نفس الامتدادات الأساسية فقط. لا صلة بـ backend الرئيسي أو payment v2.
ARG PHP_VERSION=8.2
FROM php:${PHP_VERSION}-fpm
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && \
install-php-extensions mysqli pdo_mysql redis opcache gd
WORKDIR /var/www
+16
View File
@@ -0,0 +1,16 @@
; حوض fpm لوحدة الطعام — معزول عن حوض الرحلات الرئيسي
[www]
pm = dynamic
pm.max_children = 24
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests = 1000
pm.status_path = /status
slowlog = /proc/self/fd/2
request_slowlog_timeout = 3s
catch_workers_output = yes
decorate_workers_output = no
php_admin_value[error_log] = /proc/self/fd/2
php_admin_flag[log_errors] = on
+37
View File
@@ -0,0 +1,37 @@
; ============================================================
; إعدادات PHP للإنتاج — تُركَّب على كل حاويات fpm
; ============================================================
;
; ‏صورة php الرسمية لا تشحن php.ini إطلاقاً (تترك php.ini-production
; ‏و php.ini-development جانباً بلا تفعيل)، فتسري قيم PHP المدمجة:
; ‏display_errors مُفعّل. أي أن كل تحذير أو إشعار يُطبع **داخل جسم
; ‏الردّ** قبل الـ JSON.
;
; ‏وهذا ليس تنظيراً: شاشة رصيد الكابتن كانت تسقط بـ
; ‏"FormatException: Unexpected character (at character 1) <br />"
; ‏لأن getAllPayment.php أخرج تحذيراً قبل الـ JSON فصار الردّ غير قابل
; ‏للتحليل. العطل يبدو في التطبيق بينما مصدره سطر تحذير في PHP.
;
; ‏والأسوأ أمنياً: نص التحذير يحمل المسار المطلق للملف وأحياناً جزءاً من
; ‏الاستعلام — يُسلَّم للعميل مباشرة.
;
; ‏القاعدة: تُسجَّل الأخطاء ولا تُعرض. www-pool.conf يوجّه error_log إلى
; ‏مخرج الحاوية، فتُقرأ بـ `docker compose logs php`.
display_errors = Off
display_startup_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
; ‏لا تكشف نسخة PHP في ترويسة X-Powered-By.
expose_php = Off
; ‏رفع صور المستندات (رخصة، هوية) — متوافق مع client_max_body_size 25m
; ‏في nginx. تركهما على الافتراضي (2m) كان يقطع رفع صور الكاميرا بصمت.
upload_max_filesize = 25M
post_max_size = 25M
max_execution_time = 60
memory_limit = 256M
date.timezone = UTC
+17
View File
@@ -0,0 +1,17 @@
; حوض fpm صغير — ترافيك Mawasalati أقل بكثير من الباك إند الرئيسي
; حصة الحاوية 512m، ما في داعي لنفس حجم pool الرئيسي (48 عامل)
[www]
pm = dynamic
pm.max_children = 16
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.max_requests = 1000
pm.status_path = /status
slowlog = /proc/self/fd/2
request_slowlog_timeout = 3s
catch_workers_output = yes
decorate_workers_output = no
php_admin_value[error_log] = /proc/self/fd/2
php_admin_flag[log_errors] = on