PDA

View Full Version : سوال: اجرای فایل php در سرور



shahabbasic
شنبه 22 اردیبهشت 1397, 21:16 عصر
سلام. دوستان یک سئوال برام پیش اومده
فرض کنید یک فایل php نیاز به زمان تقریبی 5 میلی ثانیه برای اجرای کامل در سرور داره
حالا اگر کاربری از کلاینت ویندوز و با یک مرورگر مثلا اپرا این فایل php رو صدا بزنه و بعد از گذشت 2 میلی ثانیه اینترنت کاربر قطع بشه آیا باز هم فایل php تا آخرین خط اجرا میشه یا بصورت نصفه خاتمه پیدا میکنه؟؟
بهتر بپرسم
یک فایل php یا کلا اجرا نمیشه یا اگر صدا زده بشه تا خط آخر در سرور اجرا میشه؟؟

ممنون میشم راهنمایی کنید

مهرداد سیف زاده
سه شنبه 25 اردیبهشت 1397, 14:11 عصر
وقتی request به وب سرور میره. بسته به نوع config که برنامه رو به چه صورت اجرا کنه: cgi,fpm میتونه باشه
در هر صورت درخواست رو به برنامه handler میده و منتظر گرفتن جوا میمونه. در این جا فایل php باید اجرا بشه تا درخواست انجام بشه.
شاید ارتباط کاربر قطع بشه، ولی process توی حالت kill نرفته و تا آخرین خط اجرا میشه
تابع ignore_user_abort یه تابع کمکی هست برای حالتی که کانکشن کاربر قطع شد، برنامه ادامه پیدا نکنه
http://ir2.php.net/manual/en/function.ignore-user-abort.php

shahabbasic
سه شنبه 25 اردیبهشت 1397, 23:03 عصر
یک فایل php یا کلا اجرا نمیشه یا اگر صدا زده بشه تا خط آخر در سرور اجرا میشه

پس شما میفرمایید که این جمله صحیح هست دیگه؟

مهرداد سیف زاده
چهارشنبه 26 اردیبهشت 1397, 07:39 صبح
بله
البته تا زمانی که سرور execute time رو پایان نداده باشه
مثلا کد شما برای اجرای کامل ۳۰ ثانیه زمان لازم داره، سرور روی ۱۰ ثانیه تنظیم شده باشه. این طوری کاربر بیاد کد رو اجرا کنه و بعد کانکشن در ثانیه دوم قطع بشه. در ثانیه ۱۰ چون سرور اجازه اجرای بیشن از ۱۰ ثانیه رو نمیده، کد kill میشه.

shahabbasic
چهارشنبه 26 اردیبهشت 1397, 18:07 عصر
execute time از کجا تنظیم میشه؟

charcharkh
چهارشنبه 02 خرداد 1397, 10:10 صبح
توی php.ini البته تو لوکال میتونی بهش دسترسی داشته باشی توی سرور یا باید خودت دستی بالای صفحت بزنی یا توی سی پنل تنظیم کنی خیلی هم نره بالا خطرناک حسن:چشمک:

charcharkh
چهارشنبه 02 خرداد 1397, 14:22 عصر
اینم میتونی بزنی بالای صفحت


ini_set('max_execution_time', 'NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');