نصب نشدن لاراول 6 بر روی هاست ها

- 2 هفته پیش
توسط Mohammadreza Ghomi آپدیت شد
mahdi khanzadi ( 49707 تجربه )
2 هفته پیش
تخصص : برنامه نویس سمت سرور

سلام. امروز برای اولین بار بعد از اینکه یکی از پروژه های قدیمی خودمو به اخرین ورژن اپدیت کردم متوجه شدم که دیگه روی هاست (هیچ هاستی) قابل نصب نیست! چون درون هاست ها متد proc_open رو غیر فعال میکنن. همچنین یه جستجو زدم متوجه شدم به خاطر اپدیت اخیر در یکی از پکیج های symfony هست.

ورژن لاراول خودم رو به ۵.۸.۲۷ تغییر دادم (اخرین ورژنی که قابل نصب بر روی هاست بود و نیاز به proc_open نداشت) و مشکل رفع شد. اما نمیتونم دیگه از اخرین ورژن لاراول برای پروژه هایی که قراره روی یه هاست معمولی واسه مشتری ران بشه استفاده کنم! یعنی مشتری برای اینکه بتونه از اخرین وژن لاارول استفاده کنه باید vps بخره!

خواستم بدونم شما این مشکل رو داشتین یا نه؟ راه حل دیگه ای اگه براش پیدا کردین (بجز دانگرید کردن لاراول که خودم انجام دادم) ممنون میشم به اشتراک بزارید.

بهترین پاسخ انتخاب شده توسط mahdi khanzadi
علی بیات
2 هفته پیش

درود

بله نسخه جدید پکیج Symfony Process مستقیما از proc_open و proc_get_status استفاده میکنه..

"symfony/process": "^4.3.4",

تا قبل از اینکه تیم لاراول فکری به حالش بکنند (البته اگر بکنند) ، احتمالا نیاز باشه این پکیج رو داون‌گرید کرد و با نسخه جدید لاراول سازگارش کرد

Alimotreb ( 167092 تجربه )
2 هفته پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@khanzadimahdi

من تقریبا از همه ورژنای لاراول استفاده کردم و روی هاست و سرور مجازی هم ران کردم!
اکثر هاستینگ ها هم این تابع رو به دلایل امنیتی میبندن .
ولی خیلی کم به این ارور خوردم ، و پروژه هام اجرا هم شده ، هم روی هاست هم روی سرور !

http://www.skyf-host.com رو بهشون پیام بدید

درخواست تست بدید قبل از خرید ، میدن بهتون ، روی سرورهاشون اجرا بگیرید!

من باهاشون کار کردم و راضی بودم .
پروژهای لاراولی رو، هاست هاشون ساپورت میکنه.

مهدی مهدوی ( 12738 تجربه )
2 هفته پیش
تخصص : توسعه دهنده PHP - لاراول- وردپرس

سلام
حدودا یک هفته پیش لاراول 6 رو روی هاست اشتراکی کاملا معمولی ران کردم ومشکلی نداره
کلا روی هاست اشتراکی لاراول زیاد ران کردم که به جز بحث task scheduling بقیه موارد اوکی بوده

علی بیات ( 191827 تجربه )
2 هفته پیش
تخصص : توسعه دهنده ارشد وب

درود

بله نسخه جدید پکیج Symfony Process مستقیما از proc_open و proc_get_status استفاده میکنه..

"symfony/process": "^4.3.4",

تا قبل از اینکه تیم لاراول فکری به حالش بکنند (البته اگر بکنند) ، احتمالا نیاز باشه این پکیج رو داون‌گرید کرد و با نسخه جدید لاراول سازگارش کرد

Alimotreb ( 167092 تجربه )
2 هفته پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@ali.bayat

توی اکثر CMS های دیگه ای که کار کردم من و از سمفونی هم استفاده شده داخلش ، با ارور مد نظر برخورد نکردم ! چون استفاده ی مستقیم از اون تابع که نداریم! خود پکیج هم بعید میدونم تو جایی بخواد از اون تایع استفاده کنه که بخواد اروری برگردونه!

حتی من روی وی پی اس ام هم توابع PHP رو بستم ! بدون مشکل دارم کار میکنم باهاشون!

mahdi khanzadi ( 49707 تجربه )
2 هفته پیش
تخصص : برنامه نویس سمت سرور

@ali.bayat
این مشکل به تازگی به وجود امده. من چندین ساله که لاراول رو روی هاست های مختلف ران کردم و مشکلی نداشت. دیروز به این مشکل خوردم. حتی اخرین ورژن از لاراول ۵٫۸ روی سرور نصب نمیشه.

Alimotreb ( 167092 تجربه )
2 هفته پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@khanzadimahdi

اگر یه پروژه نصب شده با ورژن 6 یا 5.8 دارید و ران نمیشه ، کانفیگ باید چک شه
اما اگر توی خود سرور با کامپوزر میخوایید نصب کنید و اروری دارید و اینا ، اون باید از سمت سرور چک شه!

mahdi khanzadi ( 49707 تجربه )
2 هفته پیش
تخصص : برنامه نویس سمت سرور

@Alimotreb

دلیلش کانفیگ سرور نیست. شما یه پروژه لاراول جدید نصب کنید بعدش روی سرور ران کنید متوجه میشید.

@ali.bayat
همینطور که اقای بیات گفتن و منم اشاره کردم مشکل از اپدیت پکیج process در symfony هست.

علی بیات ( 191827 تجربه )
2 هفته پیش
تخصص : توسعه دهنده ارشد وب

@Alimotreb

درود
فایل زیر رو در ریپوی پکیج چک کنید
https://github.com/symfony/process/blob/master/Process.php

لاین‌های ۱۲۱۶، ۱۲۳۹ ،۳۳۳ و چند جای دیگه از proc_open استفاده میشه:

    public static function isTtySupported(): bool
    {
        static $isTtySupported;
        if (null === $isTtySupported) {
            $isTtySupported = (bool) @proc_open('echo 1 >/dev/null', [['file', '/dev/tty', 'r'], ['file', '/dev/tty', 'w'], ['file', '/dev/tty', 'w']], $pipes);
        }
        return $isTtySupported;
    }

@khanzadimahdi
آقای خانزادی نکته خوبی رو اشاره کردند. من خودم لاراول ۵.۸ به بالا رو فقط لوکال و روی سرور نصب کرده بودم.. ولی مسلما وقتی هاستینگ‌ها این تابع رو میبندند... برای نصب روی هاست به مشکل می‌خوریم

Alimotreb ( 167092 تجربه )
2 هفته پیش
تخصص : کانفیگ سرور و برنامه نویس

فرمایشات هر 2 عزیز صحیح هست
@khanzadimahdi
@ali.bayat

ولی
همین چند شب پیش ، یه لاراول 6 روی لوکال نصب کردم ، تغییرات و چند متد نوشتم داخلش ، آپلود کردم روی هاست ! موردی نداشت کار هم میده!

دیگه طوری هست که این تابع رو چه هاستینگ های ایرانی چه خارجی میدونن موارد امنیتی ایجاد میکنه ( حتی مخصوصا در موارد ایجاد شل مخرب) ، بعید میدونم توسعه دهنده های لاراول یا بقیه فریم ورک ها طوری پیاده سازی کنند که دائما و اجبارا نیاز به اجرای اون تابع باشه!!

Mohammadreza Ghomi ( 10985 تجربه )
2 هفته پیش
تخصص : لاراول

من هم همین مشکل داشتم و این مشکل دوبار در لاراول 6 برام اتفاق افتاد اولش اونجا بود که میخواست یک ارور نشون بده و این خطا میداد که بعد از رفع ارور مشکل حل شد و دومین هم در خوندن اطلاعات از دیتابیس که اون هم به شکل زیر حل کردم :
فایل env رو به صورت زیر ادیت کردم درست شد
از

DB_HOST=127.0.0.1

به

DB_HOST=localhost
mahdi khanzadi ( 49707 تجربه )
2 هفته پیش
تخصص : برنامه نویس سمت سرور

@ghomi2018

مشکل شما مربوط به چیزی که ذکر کردم نمیشه. مشکل شما در host name دیتابیس بوده.

mahdi khanzadi ( 49707 تجربه )
2 هفته پیش
تخصص : برنامه نویس سمت سرور

@Alimotreb

امروز اخرین ورژن لاراول رو نصب کنید تست کنید. اگه جواب داد لطفا ذکر کنید هاستتون چیه تا منم از اونجا تهیه کنم.
به هر حال تابع استفاده شده درون بیشتر هاست ها غیر فعال هست چون مشکل امنیتی ایجاد میکنه! مگر سرور مجازی یا اختصاصی تهیه کنیم که اونم با توجه به هزینه هایی که مشتری میخواد انجام بده ارزش نداره.
با تشکر.

Mohammadreza Ghomi ( 10985 تجربه )
2 هفته پیش
تخصص : لاراول

همین الان آخرین ورژن نصب کردم بدون مشکل
https://mobinaweb.com/
ورژن 6.0.2

برای ارسال پاسخ باید وارد سایت شوید