بعد از تحریم cpanel و جایگزینی اون با plesk یکی از گلایه های مشتری ها عدم امکان باز کردن فایلهای فشرده از طریق کنترل پنل بوده.
از اونجایی که این امکان، امکان پرطرفداری بود. تصمیم گرفتم که برنامه ای برای این کار بنویسم تا کور بشه چشم هر کی که بخواد ما رو تحریم کنه
این شد که دست به کار شدم و WebExtract رو با پایتون نوشتم. این برنامه یک Daemon هست که به صورت یک سرویس نصب میشه و روی پورت 2121 سرویس میده و از یوزر و پسورد های سیستم برای احراز هویت استفاده میکنه. به عبارتی بعد از نصب این برنامه کاربر با رفتن به آدرس سایت خودش روی پورت 2121 میتونه با وارد کردن نام کاربری و رمز ftp ، فایلها و فولدرهای خودش رو ببینه و فایل های فشرده رو آنلاین باز کنه.
در ادامه نحوه نصبش رو توضیح میدم.
قبل از هر چیز این نکته رو بگم که برای نصب این برنامه باید دسترسی root به سرور داشته باشید. به عبارتی اگر میخواین این امکان رو روی هاستتون داشته باشید باید با مدیر سرورتون تماس بگیرید و ازش بخواهید که این برنامه رو براتون روی سرور نصب کنه. (که البته اگر نصب نکرد کاری از من ساخته نیست و اگر هم نصب کرد مسئولیتش با خودشه!)
اما نحوه نصب:
برای اجرای این برنامه باید پایتون 2.5 به بالا داشته باشید که اگر ندارید میتونید از سایتش دریافت، کامپایل و نصب کنید:
wget http://www.python.org/ftp/python/2.7/Python-2.7.tgz tar xvfz Python-2.7.tgz cd Python-2.7 ./configure make make install
بستهی webextract رو هم از اینجا دریافت و نصب کنید:
wget http://github.com/downloads/farhadi/webextract/webextract-1.0.tar.gz tar xvfz webextract-1.0.tar.gz cd webextract-1.0 make install
برنامه آمادست. در ضمن پورت 2121 هم باید روی فایروال سرور باز باشه.
اگر موقع باز کردن فایلهای فشرده با خطای «sorry, you must have a tty to run sudo» مواجه شدید باید دستور visudo رو اجرا کنید و دنبال خط «Default requiretty» بگردید و کامنتش کنید و ذخیرش کنید. (دیگه vi باید بلد باشید.)
در صورت لزوم پورت برنامه رو هم میتونید در فایل /etc/webextract.conf تغییر بدید. البته یادتون باشه بعد از تغییر، برنامه رو restart کنید. (/etc/init.d/webextract restart)
من این برنامه رو روی debian ، ubuntu و CentOS تستش کردم ولی باید روی همهی توزیع های بر پایه دبیان و ردهت کار کنه.
اگر به مشکلی برخوردید اینجا گزارش بدید.