سلام. امروز برای اولین بار بعد از اینکه یکی از پروژه های قدیمی خودمو به اخرین ورژن اپدیت کردم متوجه شدم که دیگه روی هاست (هیچ هاستی) قابل نصب نیست! چون درون هاست ها متد proc_open رو غیر فعال میکنن. همچنین یه جستجو زدم متوجه شدم به خاطر اپدیت اخیر در یکی از پکیج های symfony هست.
ورژن لاراول خودم رو به ۵.۸.۲۷ تغییر دادم (اخرین ورژنی که قابل نصب بر روی هاست بود و نیاز به proc_open نداشت) و مشکل رفع شد. اما نمیتونم دیگه از اخرین ورژن لاراول برای پروژه هایی که قراره روی یه هاست معمولی واسه مشتری ران بشه استفاده کنم! یعنی مشتری برای اینکه بتونه از اخرین وژن لاارول استفاده کنه باید vps بخره!
خواستم بدونم شما این مشکل رو داشتین یا نه؟ راه حل دیگه ای اگه براش پیدا کردین (بجز دانگرید کردن لاراول که خودم انجام دادم) ممنون میشم به اشتراک بزارید.
درود
بله نسخه جدید پکیج Symfony Process مستقیما از proc_open و proc_get_status استفاده میکنه..
"symfony/process": "^4.3.4",
تا قبل از اینکه تیم لاراول فکری به حالش بکنند (البته اگر بکنند) ، احتمالا نیاز باشه این پکیج رو داونگرید کرد و با نسخه جدید لاراول سازگارش کرد
سلام
@khanzadimahdi
من تقریبا از همه ورژنای لاراول استفاده کردم و روی هاست و سرور مجازی هم ران کردم!
اکثر هاستینگ ها هم این تابع رو به دلایل امنیتی میبندن .
ولی خیلی کم به این ارور خوردم ، و پروژه هام اجرا هم شده ، هم روی هاست هم روی سرور !
http://www.skyf-host.com رو بهشون پیام بدید
درخواست تست بدید قبل از خرید ، میدن بهتون ، روی سرورهاشون اجرا بگیرید!
من باهاشون کار کردم و راضی بودم .
پروژهای لاراولی رو، هاست هاشون ساپورت میکنه.
سلام
حدودا یک هفته پیش لاراول 6 رو روی هاست اشتراکی کاملا معمولی ران کردم ومشکلی نداره
کلا روی هاست اشتراکی لاراول زیاد ران کردم که به جز بحث task scheduling بقیه موارد اوکی بوده
درود
بله نسخه جدید پکیج Symfony Process مستقیما از proc_open و proc_get_status استفاده میکنه..
"symfony/process": "^4.3.4",
تا قبل از اینکه تیم لاراول فکری به حالش بکنند (البته اگر بکنند) ، احتمالا نیاز باشه این پکیج رو داونگرید کرد و با نسخه جدید لاراول سازگارش کرد
سلام
@ali.bayat
توی اکثر CMS های دیگه ای که کار کردم من و از سمفونی هم استفاده شده داخلش ، با ارور مد نظر برخورد نکردم ! چون استفاده ی مستقیم از اون تابع که نداریم! خود پکیج هم بعید میدونم تو جایی بخواد از اون تایع استفاده کنه که بخواد اروری برگردونه!
حتی من روی وی پی اس ام هم توابع PHP رو بستم ! بدون مشکل دارم کار میکنم باهاشون!
@ali.bayat
این مشکل به تازگی به وجود امده. من چندین ساله که لاراول رو روی هاست های مختلف ران کردم و مشکلی نداشت. دیروز به این مشکل خوردم. حتی اخرین ورژن از لاراول ۵٫۸ روی سرور نصب نمیشه.
سلام
@khanzadimahdi
اگر یه پروژه نصب شده با ورژن 6 یا 5.8 دارید و ران نمیشه ، کانفیگ باید چک شه
اما اگر توی خود سرور با کامپوزر میخوایید نصب کنید و اروری دارید و اینا ، اون باید از سمت سرور چک شه!
دلیلش کانفیگ سرور نیست. شما یه پروژه لاراول جدید نصب کنید بعدش روی سرور ران کنید متوجه میشید.
@ali.bayat
همینطور که اقای بیات گفتن و منم اشاره کردم مشکل از اپدیت پکیج process در symfony هست.
درود
فایل زیر رو در ریپوی پکیج چک کنید
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
آقای خانزادی نکته خوبی رو اشاره کردند. من خودم لاراول ۵.۸ به بالا رو فقط لوکال و روی سرور نصب کرده بودم.. ولی مسلما وقتی هاستینگها این تابع رو میبندند... برای نصب روی هاست به مشکل میخوریم
فرمایشات هر 2 عزیز صحیح هست
@khanzadimahdi
@ali.bayat
ولی
همین چند شب پیش ، یه لاراول 6 روی لوکال نصب کردم ، تغییرات و چند متد نوشتم داخلش ، آپلود کردم روی هاست ! موردی نداشت کار هم میده!
دیگه طوری هست که این تابع رو چه هاستینگ های ایرانی چه خارجی میدونن موارد امنیتی ایجاد میکنه ( حتی مخصوصا در موارد ایجاد شل مخرب) ، بعید میدونم توسعه دهنده های لاراول یا بقیه فریم ورک ها طوری پیاده سازی کنند که دائما و اجبارا نیاز به اجرای اون تابع باشه!!
من هم همین مشکل داشتم و این مشکل دوبار در لاراول 6 برام اتفاق افتاد اولش اونجا بود که میخواست یک ارور نشون بده و این خطا میداد که بعد از رفع ارور مشکل حل شد و دومین هم در خوندن اطلاعات از دیتابیس که اون هم به شکل زیر حل کردم :
فایل env رو به صورت زیر ادیت کردم درست شد
از
DB_HOST=127.0.0.1
به
DB_HOST=localhost
امروز اخرین ورژن لاراول رو نصب کنید تست کنید. اگه جواب داد لطفا ذکر کنید هاستتون چیه تا منم از اونجا تهیه کنم.
به هر حال تابع استفاده شده درون بیشتر هاست ها غیر فعال هست چون مشکل امنیتی ایجاد میکنه! مگر سرور مجازی یا اختصاصی تهیه کنیم که اونم با توجه به هزینه هایی که مشتری میخواد انجام بده ارزش نداره.
با تشکر.
میهن هاست : هاست گرفتم و تا الان تمام نسخه 6 رو بدون مشکل نصب کردم (منظورم از تمام نسخه هینه که هروقت اپدیت جدیدی میود سریع پروژه رو بروز رسانی و سپس اپلودش میکردم)
الانم به نسخه 7 سویچ کردم (بماند بعضی پیکیچ ها بروزرسانی نکردن) ولی با این حال دارم با 7 کار میکنم
من هم در لوکال با نسخه 6 کار کردم و مشکلی نبود. وقتی آپلود کردم چنین مشکلی پیش اومد. خدا رو شکر تا اونموقع نسخه 7 اومده بود و بدون هیچ تغییری روی کدهای خودم و صرفا با بروزرسانی به نسخه 7 مشکل رفع شد.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟