Update codebase
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user