PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آپلود فایل php در سرور من کار نمیکنه چرا؟



iHSG
October 11th, 2015, 16:58
سلام
دوستان آپلود هیچ گونه فایلی با PHP در سرور من کار نمیکنه.

مشخصات سرور:
دایرکت ادمین
CentOS
Apache + NginX + PHP-FPM

اول یه فرم تماس با ما php ریختم تو هاستم دیدم پیوست فایلش که فایل با PHP آپلود میکنه بدون هیچ اخطاری کار نمیکنه فکر کردم فرم تماس با ما خرابه اما تو phpMyAdmin هم آمدم یه فایل sql رو Import کنم اخطار داد No data was received to import

کلی تو سایت های خارجی گشتم هیچی پیدا نکردم.

هیچ تغییر عجیبی هم تو php.ini ندادم اکثرش تنظیمات پیش فرضش هست من فقط تابع هایی رو به disable_functions اضافه کردم و allow_url_fopen و allow_url_include رو روی Off گذاشتم.

تو یه سایت خارجی پیشنهاد داده بود upload_tmp_dir رو از خالی پیش فرضش روی /tmp بذارم که من گذاشتم اما بازم کار نکرد.

مشکل کجاست؟

- - - Updated - - -

دوستان من همچنان منتظر کمک شما هستم.
هر کی بلده لطفاً دریغ نکنه.

allbert
October 11th, 2015, 17:27
سلام

یعنی هیچ فایل php ران نمیشه و به حالت plain تکست بالا میاد ؟!

iHSG
October 11th, 2015, 18:12
سلام

یعنی هیچ فایل php ران نمیشه و به حالت plain تکست بالا میاد ؟!


سلام
ممنون که پاسخ دادی ولی آخه یه بار متن رو می خوندی حداقل.
فایل های php ران میشن آپلود فایل توسط php خرابه.
یعنی مثلاً یه فرم آپلود عکس درست میکنیم تو php بعد از ارسال فایل به سرور فایل باید در متغیر سراسری $_FILES باشه اما این متغیر همیشه خالیه.
اسکریپت خاصی هم استفاده نمیکنم که مشکل از اسکریپت باشه کلاً آپلود فایل توسط php خالی بر می گردونه.
حتی تو برنامه هایی مثل phpMyAdmin و RoundCube و... هم نمی تونم هیچ فایلی آپلود کنم.

تو کل نت گشتم و چند سایت مختلف سوال پرسیدم هیچ جا هیچ کس بلد نبود نمی دونم چرا.

allbert
October 11th, 2015, 20:23
کانفیگ php باید برسی بشه اگر میشه قرار بدید php.ini رو دوست عزیز.

iHSG
October 12th, 2015, 08:55
کانفیگ php باید برسی بشه اگر میشه قرار بدید php.ini رو دوست عزیز.

والا من طبق پیشنهاد های این لینک http://stackoverflow.com/a/3587158 چندین و چند بار فایل php.ini رو بررسی و ویرایش کردم اما باز برای شما میذارم شما بررسی کنید شاید شما مشکلو فهمیدید.
خوشبختانه فایل php.ini اخطار Syntax هم نداره من فقط موندم مشکلش چیه.

اینم فایل: http://hsgolshani.ir/test/php.txt

سروری که منظورم هست این دامنه ای که دادم نیست همینطوری رو یه هاست تست آپلود کردم.
ممنون میشم اگه کسی مشکل این فایل php.ini رو می فهمه که چرا آپلود php کار نمیکنه کمکم کنه.
خدا خیرتون بده.

allbert
October 12th, 2015, 09:11
این رو کامل کپی کنید و در php.ini کپی کنید. ببینید اوکی میشه
http://pastebin.com/Nhry7si8

ms313
October 12th, 2015, 10:09
شما چطوری فایل های خودتون رو تو هاست آپلود می کنید ؟!

iHSG
October 13th, 2015, 11:25
این رو کامل کپی کنید و در php.ini کپی کنید. ببینید اوکی میشه
http://pastebin.com/Nhry7si8

ببخشید دیر جواب میدم اینترنتم خرابه هی پشت سر هم قطع میشه.الانم شانسکی وصل شده دارم جواب میدم.
ببینید من الان فایلی که شما گذاشتید رو با فایل خودم توسط نرم افزار رایگان WinMerge مقایسه کردم.
تنها تفاوت ها این بود که شما 1.توابع disable_functions رو حذف کردید 2.من به upload_tmp_dir آدرس /tmp رو داده بودم که شما اونو با قرار دادن علامت ; به کامنت تبدیل کردید 3.ویژگی های allow_url_fopen و allow_url_include رو من غیرفعال کرده بودم که شما فعالش کردید.

هر 3 تغییری که شما داده بودید هم امتحان کردم اما درست نشد.
بازم مشکل هست.

allbert
October 13th, 2015, 11:27
شما بعد از هر تغییر اپاچی رو هم ریستارت میکنید ؟! اگر تمایل دارید بدید براتون برسی کنم

iHSG
October 13th, 2015, 11:39
شما بعد از هر تغییر اپاچی رو هم ریستارت میکنید ؟! اگر تمایل دارید بدید براتون برسی کنم

بله بعد از هر تغییر علاوه بر restart آپاچی و nginx یه بار هم دستورات زیر رو اجرا میکنم:

cd /usr/local/directadmin/custombuild
./build rewrite_confs
service directadmin restart

allbert
October 13th, 2015, 12:02
البته اجرای این دستورات نیاز نیست.
cd /usr/local/directadmin/custombuild
./build rewrite_confs
service directadmin restart

اما به این دو لینک هم یک نگاه بندازید :

https://forum.directadmin.com/showthread.php?t=51897
http://help.directadmin.com/item.php?id=561

iHSG
October 21st, 2015, 16:18
البته اجرای این دستورات نیاز نیست.
cd /usr/local/directadmin/custombuild
./build rewrite_confs
service directadmin restart

اما به این دو لینک هم یک نگاه بندازید :

https://forum.directadmin.com/showthread.php?t=51897
http://help.directadmin.com/item.php?id=561

ممنون لینک دوم که نوشته برای CentOS 7 است اما برای من CentOS 6.7 است.
لینک اول هم خوندم ولی هیچی متوجه نشدم.تا اون جایی که فهمیدم میگه ممکنه از ویژگی اسکن آپلود ماژول suhosin باشه.تو سرور من ماژول امنیتی suhosin نصب و فعال است اما من هیچ تغییری تو تنظیماتش ندادم و همون تنظیمات پیش فرضش است که کاستوم بیلد دایرکت ادمین برام نصبش کرده.
حالا به نظرتون مشکل از کجاست؟
به خدا اعصابم خورد شد 3 روزه درگیر این مشکل آپلود هستم که در همه فرم های آپلود حتی در اسکریپت های معروفی مثل وردپرس متغیر سراسری $_FILES خالی بر می گرده و رسماً هیچی آپلود نمیشه.
پوشه tmp هم چک کردم هیچی توش آپلود نمیشه سطح دسترسی این پوشه هم روی 1777 هم گذاشتم (البته بود خودش از قبل) اما بازم درست نشد.

- - - Updated - - -

دوستان مشکل من هنوز حل نشده.
درسته مبتدی هستم اما دوست ندارم به کسی دسترسی بدم اگر فکر میکنید جایی از سرور باید چک بشه مثل این دوستمون allbert (http://www.webhostingtalk.ir/member.php?u=20784) راهنمای دستورات رو بگید خودم انجام میدم.
می خوام مدیریت سرور رو یاد بگیرم به همین دلیل از اول سرور مدیریت نشده خریدم و نمی خوام به هیچ کس بدم مدیریتش کنه.
خیلی ممنون.

- - - Updated - - -

مشکل حل شد.
مشکل از ماژول suhosin بود که وقتی این ماژول رو غیرفعال کردم مشکل حل شد.
فقط من شنیدم این ماژول برای امنیت عالیه به نظرتون نمیشه کاری کرد که این ماژول فعال باشه و مشکل آپلود در php نداشته باشم؟

- - - Updated - - -

دوباره suhosin رو فعال کردم اما این بار رفتم تو فایل usr/local/php55/lib/php.conf.d/10-directadmin.ini و خط suhosin.upload.verification_script رو اولش یه کاراکتر ; اضافه کردم که به کامنت تبدیل بشه و بعد یه بار سرور رو کلاً ری استارت کردم و خدا رو شکر درست شد.
خیلی ممنون از رسیدگی شما.