خب یه سوال، چرا باید روی اندروید وب سرور نصب کنیم؟ حقیقتش تنها جواب منطقی برای افرادی هست که طراحی سایت انجام میدن و لازم دارن روی ابزار اندرویدیشون محصول رو مشتری نشون بدن. البته ممکه استفادههای دیگهای هم داشته باشه که من نمیدونم!! اما من به شخصه هدفم از این کار داشتن تفریح و اندکی گیک بودن هست. به هر حال اگه شما هم تصمیم گرفتین که رو گوشی اندرویدیتون وب سرور نصب کنین در ادامه مطلب با ما همراه باشید 🙂
نکته مهم: من مستقیم روی گوشی وب سرور رو نصب نمیکنم بلکه اول یه توزیع لینوکس رو با شبیه ساز روی گوشی نصب میکنم و بعد وب سرور رو روی اون نصب میکنم. گوشی هم باید روت شده باشه. ۴گیگ فضای خالی چه رو خود گوشی چه رو مموری وجود داشته باشه. بر اساس تست من کمتر از ۵۰۰مگ هم باید دانلود انجام بشه. و در نهایت اگه بلایی سر گوشیتون اومد من هیچ مسئولیتی رو به عهده نمیگیرم!!
من گوشیم یک عدد HTC Desire 310 هست که ۱گیگ رم داره (همین فکر کنم کافیه که نشون بده گوشی قویای نیاز ندارین) و آموزش رو براساس گوشی خودم مینویسم. ولی اگه تو این کار تجربه ندارین و یا گوشیتون هم های اند هست نگران نباشین این آموزش رو تمام گوشی ها اصولا باید جواب بده. من هم سعی میکنم تا حد امکان ساده توضیح بدم تا تازه کارها هم متوجه بشن، افرادحرفه ای هم که خودشون کامل از قضیه سر در میارن میتونن هرجا رو خواستن عوض کنن 😀
خب مرحله اول:
نصب برنامه Linux Deploy که وظیفش انجام شبیه سازی برای نصب توزیع گنو/لینوکس مورد نظر ما هست. گوگل پلی، بازار
مرحله دوم:
نصب توزیع مورد نظر، برای این کار برنامه Linux Deploy رو باز میکنیم و با همچین صفحه ای مواجه میشیم
روی منو میزنیم و بعد از اون هم گزینه Properties تا این صفحه زیبا ظاهر بشه 🙂
خب، حالا میریم سراغ انجام تنظیمات مورد نظر! بعد از انتخاب گزینه Distribution توزیع Ubuntu رو انتخاب میکنیم. بعد میریم سراغ گزینه Distribution suite. من با آزمایش و خطا به این نتیحه رسیدم رو گوشی من اوبونتو ۱۲.۰۴ جواب میده یعنی precise و انتخابش میکنیم. بعد میریم سراغ Installation path تا محلی رو برای نصب اوبونتو مشخص کنیم. من رو مموری کارت یه فولدر به اسم ubuntu ساختم و آدرسش برای من این شد:
/storage/sdcard1/ubuntu/linux.img
بعد میریم سراغ گزینه Desktop environment. از اونجایی که گوشی من سخت افزار قوی نداره و همینطور به دسکتاپ هم نیازی نیست چون میشه همه کار رو با ترمینال انجام داد، من دسکتاپ نصب نمیکنم و گزینه XTerm رو انتخاب میکنم. بعد از اون هم میریم سراغ گزینه Select components و فقط SSH server رو علامت میزنیم. و بعد هم رو OK میزنیم. خب! کار تمومه!!! حالا رو گزینه Install میزنیم و منتظر میمونیم تا اوبونتو نصب بشه!! وقتی نصب به پایان برسه با پیغام end: install متوجه میشیم که نصب به خوبی به پایان رسیده!
مرحله سوم:
اتصال به اوبونتو! خب برای اتصال به اوبونتو باید از برنامههایی که بهمون امکان اتصال از طریق SSH رو میدن رو گوشی نصب کنیم (البته قبلش باید وارد برنامه Linux Deploy بشیم و گزینه Start رو بزنیم). برای این کار اگه میخواید روی گوشی کار کنید من ترکیب JuiceSSh (بازار، گوگل پلی) و Hacker’s Keyboard (بازار، گوگل پلی) رو پیشنهاد میدم. دلیلش رو هم کمی جلوتر تو عکس میبینید! حالا باید ip اوبونتو رو بدست بیاریم که اصلا کار سختی هم نیست :)) فقط کافیه Linux Deploy رو باز کنید و میبینید که ip اوبونتو رو بهمون داده. مثلا توی عکس مرحله دو میبینین که ip اوبونتو 192.168.1.2 هست. حالا وارد برنامه JuiceSSh میشیم. روی گزینه Connections میزنم و بعد هم روی گزینه Quick Connect که سمت چپ پایین هست. Type رو دست نمیزنیم تیک گزینه Save connection for future use رو هم میذاریم سر جاش بمونه تا هر دفعه نیازی نباشه کانکشن جدید برای اتصال به اوبونتو تعریف کنیم. حالا باید یوزرنیم اوبونتو و ip اوبونتو رو بنویسیم تا بهش متصل بشیم. یوزرنیم android هست و ip رو هم که از رو Linux Deploy داریم. پس برای من باید این عبارت رو بنویسم:
android@192.168.1.2
و روی گزینه OK میزنیم. بعد از اون از ما پسورد پرسیده میشه که پسورد عبارت changeme هست.
بعد از زدن OK با این صفحه مواجه میشیم که به ما میگه به اوبونتو متصل شدیم و فکر کنم تا الآن متوجه شده باشین چرا از JuiceSSH و Hacker’s Keyboard استفاده کردیم!
حالا ما از طریق خط فرمان به اوبونتویی که نصب کردیم دسترسی کامل داریم و میتونین هر بلایی رو سرش بیاریم! 😀 برای قطع شدن از SSH هم کافیه عبارت exit رو بنویسیم تا ارتباطمون با اوبونتو قطع بشه و بعد از اون هم وارد Linux Deploy میشیم و گزینه Stop رو میزنیم. اما… اما یه مسئله کوچیک این وسط هست! اونم اینکه مطمئنم با من موافقین تایپ کردن رو صفحه گوشی خیلی اعصاب خورد کنه و تایپ کردن روی کیبرد فیزیکی یه چیز دیگست! نظرتون چیه از روی کامپیوتر به اوبونتویی که نصب کردیم متصل بشیم؟ برای این کار کافیه که یک عدد کامپیوتر داشته باشیم که چه از طریق سیم و یا وایرلس به یه مودم متصل شده باشه و گوشیمون هم باید به همون مودم متصل باشه! (اگه نفهمیدین چی شد خلاصش تقریبا میشه اینکه گوشیتون رو به وای فای مودم وصل کنید 😀 ) خب حالا باید از طریق برنامه هایی که برای اتصال به SSH وجود داره از روی کامپیوتر به گوشی متصل بشیم. اگه مثه من از گنو/لینوکس استفاده میکنین میتونین ترمینال رو باز کنین و با دستور
ssh android@ip
به گوشیتون متصل بشین. نیازی هم به گفتن نیست که ip رو باید از تو Linux Deploy ببینید. نتیجه این کار رو سیستم من:
خب به احتمال زیاد شما از گنو/لینوکس مثل من استفاده نمیکنین و کاربر ویندوز هستین. برای اتصال به SSH برنامه putty رو نصب کنید. بعد از اینکه putty رو باز کردید فقط کافیه تو صفحهای که باز میشه ip اوبونتو رو وارد کنید.
و بعد هم روی Open بزنید تا اتصال برقرار بشه. اگر با پیغام PuTTY Security Alert مواجه شدین نیازی نیست نگران چیزی باشین و فقط روی گزینه Accept بزنید. و حالا از شما یوزرنیم و پسورد پرسیده میشه که با وارد کردنشون به اوبونتو متصل میشین.
مرحله چهار:
نصب وب سرور که من Nginx رو میخوام نصب کنم. و خیلی هم سادست 😀 فکر نکنم نیازی باشه بگم که اول باید به اوبونتویی که نصب کردیم از طریق SSH متصل بشیم. حالا برای نصب Nginx از این دستورات استفاده میکنیم:
echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/nginx-stable.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C sudo apt-get update sudo apt-get install nginx
بعد از اینکه نصب به پایان رسید باید با این دستور به Nginx بگیم تا شروع به کار کنه:
sudo service nginx start
حالا برای اینکه مطمئن بشیم Nginx به خوبی کار میکنه مرورگر گوشی رو باز میکنیم و به جای آدرس مینویسیم localhost میتونیم پیغام Nginx رو ببینیم که میگه همه چی به خوبی پیش رفته!
تمام!!! وب سرور نصب شد 😛 اما چندتا کار هست که میتونید انجام بدین تا از این همه تلاشتون بهره ببرین!! مثلا من با یه ترفند ساده کاری کردم که بتونم به تمام فایلهای رو گوشیم از طریق مرورگر دسترسی داشته باشم! چجوری؟ الان میگم! اول Linux Deploy رو باز میکنیم و وارد قسمت properties میشیم و میریم به بخش Mount points. روی منو کلیک میکنیم و New رو انتخاب میکنیم. و تو پنجره باز شده این آدرس رو مینویسیم:
/storage/sdcard1
برای من که این آدرس جواب داد امیدوارم برای شما هم جواب بده 😀
خب Linux Deploy رو Start میکنیم و با SSh بهش متصل میشیم. این دستور رو میزنیم:
sudo ln -s /mnt/sdcard1 /usr/share/nginx/www
حالا تو مرورگر گوشی این آدرس رو مینویسیم و میبینیم که تمام محتویات مموری رو لیست میکنه.
localhost/sdcard1
و نیازی هم به گفتن نیست که بجای localhost میتونین ip اوبونتو رو بزنین و حتی میتونین این آدرس رو (البته زمانی که بجای localhost آی پی رو نوشتین) توی مرورگر کامپیوترتون بزنین و فایلهای رو گوشی رو روی کامپیوتر ببینین. (البته تو اسکرین شات آدرس دسترسی به فایلها فرق داره که بخاطر یه سوتی کوچیک هست که خودم دادم)
یا میتونین با دستور
sudo apt-get install vsftpd
رو گوشیتون ftp نصب کنین و از طریق ftp به محتویات گوشیتون دسترسی داشته باشین. یا کار دیگهای که میتونین انجام بدین اینه که php هم نصب کنین (که ایشالا بزودی آموزش نصب اون رو هم میذارم) و یه اسکریپت آپلود فایل نصب کنین! اینجوری میتونین به شکلی کاملا گیکی از دیگران فایل دریافت کنین! :d
پایان!
میدونم آخرش احتمالا برای تازه کارها ممکنه یکم گیج کننده باشه. ولی واقعا حسش نبود بیشتر توضیح بدم و اگر هم بیشتر توضیح میدادم احتمالا حجم مطلب ۱۰برابر میشد. اگه جایی مشکلی بود کامنت بذارین و اگه در توانم بود راهنماییتون میکنم که چیکار کنین 🙂
سلام این آموزشتون عالی بود واقعا ،
یه سوال دارم اگه ما با ssh متصل بشیم فقط
محیط ترمینالو داریم اگه روی گوشی با محیط gnome نصب کنیم بعد برنامه ای چیزی مثل teamviewer که با ویندوز راحت به لینوکس توی گوشی متصل بشیم اینحوری واقعا عالی میشه
من خودم دسکتاپ نصب نکردم چون خیلی فشار میاره رو گوشی ولی برای نصب دسکتاپ میتونین به این شکل عمل کنین، بر طبق آموزش برید جلو ولی از منوی properties گزینه desktop environment یک دسکتاپ رو به دلخواه انتخاب کنین و تیک گزینه GUI رو هم بزنید و graphical subsystem رو هم روی vnc بذارید. حالا باید یک کلاینت vnc روی گوشی نصب کنین (برای مثال vnc viewer) و از طریق این کلاینت به صورت گرافیکی به لینوکسی که روی گوشی نصب کردین متصل بشین.
ممنون .