Golzar
3 سال پیش توسط Golzar مطرح شد
4 پاسخ

مشکل اتصال FTP لاراول

سلام دوستان!
من میخوام با استفاده از لاراول کانکشن FTP ایجاد کنم برای Storageام.
اپلیکیشن لاراول رو که روی لوکال هاست ران کردم کاملا عالی و بدون مشکل به FTP متصل میشه.
ولی وقتی همین اپلیکیشن رو روی هاست cPanel آپلود میکنم. با ارور زیر مواجه میشم.
ftp_rawlist(): php_connect_nonb() failed: Operation now in progress (115)
همچنین خط های :

'passive' => false,
'ignorePassiveAddress' => true,

رو هم به فایل filesystems.php اضافه کردم. اتفاقی که افتاد این بود که، ارور بالا از بین رفت ولی با مشکل تایم اوت مواجه میشم.
در صورتی که روی لوکال هاست با سرعت بسیار عالی متصل میشه و دایرکتوری رو برام لیست میکنه.


ثبت پرسش جدید
محسن میرحسینی
تخصص : توسعه دهنده وب
@mohsen.mirhosseini 3 سال پیش مطرح شد
0

سلام
تونستیانی مشکل رووبرطرف کنی؟
منم دقیقا همین مشکل رو دارم
رو لوکال (Ubuntu 20 و php 7.4) هیچ مشکلی نداره
ولی روی سرور (Centos 8 و php 7.4) کار نیمکنه، همین خطایی که گفتی روو میده و وقتی کانفیگ رو تغییر میدم بعد از گشت یه مدت زمان تقریبا طولانی خطای Can't create directory: File exists رو میده.
هیچ راهکاری هم به ذهنم نمیرسه


Golzar
@ErfaNEP 3 سال پیش مطرح شد
0

@mohsen.mirhosseini سلام وقتتون بخیر
مشکل من از فایروال cPanel بود.
به پشتیبانی هاستینگ پیام دادم، دستشون درد نکنه سریع درست کردن.
باید رنج پورت passive سرور FTP رو به فایروال هاست اضافه کنن.


محسن میرحسینی
تخصص : توسعه دهنده وب
@mohsen.mirhosseini 3 سال پیش مطرح شد
0

@ErfaNEP سلام
ببخشید من این پیام رو خیلی دیر دیدم
بله مشکل من هم همین بود
دیتاسنتر اجازه دسترسی از سرورهای مجازی رو به سرورهای اشتراکی نمیداد.
من میخواستم از سرور مجازی خودم به یک هاست اشتراکی متصل بشم و همین تنظیمات فایروال جلوی من رو میگرفت که خوشبختانه برطرف شد.

ممنون از پاسخگوییت


فرزاد
تخصص : یه کم برنامه نویسی بلدم :)
@farzad40301 9 ماه پیش آپدیت شد
0

سلام دوستان
با وجودی که از زمان طرح این سوال مدت زیادی گذشته، ولی شاید شما هم مثل من از طریق سرچ گوگل وارد این صفحه شده باشید.
بنابراین تجربه خودم رو در این زمینه مینویسم، شاید بتونه مشکل یکی رو حل کنه.
مشکل رو اینطوری بازنویسی میکنم:

من یک هاست اصلی دارم و یک هاست دانلود. میخوام از هاست اصلی خودم به هاست دانلود، متصل بشم و یک فایل رو آپلود کنم. چون هاست دانلود من، با پروتکل ftp کار میکنه، میخوام برای Storage هاست اصلی، یک کانکشن ftp تعریف کنم و با دستورات مربوط به Storage ، فایلم رو به هاست دانلود، ارسال کنم. برای این کار در فایل filesystems.php یک درایو ftp تعریف می کنم و آدرس، یوزرنیم و پسورد هاست دانلود رو داخلش قرار میدم و بعد داخل کنترلر مورد نظرم ، از متد storage برای آپلود فایلم استفاده میکنم. ولی :
اگر در تعریف درایو ftp ، نوع کانکشن رو passive تعریف کنم، خطای زیر رو میگیرم:
ftprawlist(): phpconnectnonb() failed: Operation now in progress (115)
و اگر نوع کانکشن رو به active تغییر بدم، به جای خطای بالا، خطای زیر رو میگیرم:
ftpfput(): Could not open data connection to port xxxxx: Connection timed out
باید چه کار کنم؟

اگر در اینترنت سرچ کرده باشید، احتمالا متوجه شده اید، در بیشتر موارد، اعلام شده ایراد از فایروال هاست مقصده (در اینجا هاست دانلود)
برای رفع خطای اول، توصیه شده کانکشن رو از حالت پسیو به اکتیو تغییر بدید
و براری رفع خطای دوم، توصیه شده کانکشن رو از حالت اکتیو به پسیو تغییر بدید
ولی همونطوری که میدونید، حالتی وجود داره که نه کانکشن اکتیو جواب میده ، نه کانکشن پسیو. یعنی همون چیزی که در بالا توضیح دادم.
علت این وضعیت چیه؟
مشکل اصلی در ذهنیت اشتباهیه که برای ما پیدا شده و فکر میکنیم، ریشه مشکل در فایروال هاست مقصده. در صورتی که اینطور نیست. تا جایی که بنده تجربه کردم، در هاست دانلودهای ایرانی ، هم کانکشن اکتیو و هم کانکشن پسیو، بازه و قابل استفاده است.
مشکل از هاست مبدا است !
معمولا این اشکال برای کسانی ظاهر میشه که میخوان با اسکریپت خودشون، از هاست مبدا به هاست مقصد ، آپلود انجان بدن.
بر خلاف تصور، چیزی که جلوی این ارسال رو میگیره ، تنظیمات فایروال در هاست مبدا است.
برای این که مطمین بشید ریشه مشکل همینه، کافیه در هاست مبدا، موقتا فایروال رو خاموش کنید و ببینید که مشکل رفع میشه.
برای خاموش کردن فایروال ، اگر از کنترل پنل دایرکت ادمین استفاده میکنید، در قسمت Extra Features ، وارد ConfigServer Security & Firewall بشید و کلید Firewall Disable روپیدا کنید و کلیک کنید.
بعد از خاموش کردن فایروال، یک تست بگیرید. اگر مشکلتون حل شد، کار های زیر رو انجام بدید:
1- مجددا در همون صفحه قبلی ، فایروال رو Enable کنید.
2- در همون صفحه ، یک کلیددیگه بنام firewall Configuration وجود داره . کلیکش کنید و وارد صفحه جدید بشید.
در صفحه جدید، دنبال آیتم USEFTPHELPER بگردید و مقدار 21 رو براش وارد کنید و در انتهای صفحه، کلید change رو بزنید تا تغییرات ذخیره بشه.
با این کار، در عین حالی که فایروال شما روشنه، مانع ارسال فایل هاتون هم نخواهد شد.
یک بار دیگه تست بگیرید. امیدوارم مشکلتون حل شده باشه.
موفق باشید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام