در قسمت گذشته (اول) این مقاله به بررسی برخی مفاهیم و نحوه نصب و ایجاد یک ماشین مجازی در نرمافزار ویرچوالباکس پرداختیم. در این قسمت قصد داریم تا به نحو تنظیم اساساچ «SSH» برای سیستم میزبان جهت دسترسی به سیستم مهمان و سپس تنطیم آپاچی و تنظیم این کارساز وب متنباز بپردازیم. در قسمت سوم این آموزش نیز با نصب مایاسکییوال و PHP به معرفی و اجرای چند برنامه کوچک و تنظیم و تست آنان خواهیم پرداخت.
نصب و تنظیم اوبونتو سرور به صورت سندباکس (قسمت اول)
نصب و تنظیم اوبونتو سرور به صورت سندباکس (قسمت دوم)
نصب و تنظیم اوبونتو سرور به صورت سندباکس (قسمت سوم)
نصب و تنظیم اوبونتو سرور به صورت سندباکس (قسمت چهارم)
نصب و تنظیم اوبونتو سرور به صورت سندباکس (قسمت پنجم)
نصب و تنظیم اوبونتو سرور به صورت سندباکس (قسمت آخر)
نصب و تنظیم اوبونتو سرور به صورت سندباکس (قسمت آخر) – به زودی
بعد از انجام آموزش قسمت اول، حال ما دارای یک سیستمعامل سرور هستیم که دارای نرمافزارهای پایهای برای اجرای یک سرور محلی هستیم. برای مدیریت و پیکربندی این سرور نیاز به برخی تنظیمات و تغییرات نیز هست تا بتوانیم از این سرور استفاده کنیم. کارسازهای وب محلی در ابتدا نیاز به کمی تغییرات و تنظیمات دارند؛ مخصوصا اگر در ویرچوالباکس نصب شده باشند که علاوه بر کارهای عادی باید برخی تنظیمات را نیز انجام دهیم. تنظیمات مورد نیاز برای اجرای اوبونتو مخصوص کارساز وب را در ویرچوالباکس و ماشین مجازی مورد نظر، تنظیم کردهایم. اما در خود اوبونتو سرور نیاز به نصب راهانداز و استفاده از آن داریم. علاوه بر نصب گرداننده و راهاندازهای مورد نیاز برای استفاده در اوبونتو ابتدا باید بتوانیم از طریق سیستم خود و یا حتی از راه دور، به خط فرمان سیستمعامل ماشین مهمان دسترسی داشته باشیم. برای اینکار باید از SSH استفاده کنیم.
به دلیل آنکه ممکن است شما یک توسعهدهنده وب باشید و در برخی مواقع ممکن است سیستمعامل مورد استفاده شما گنو/لینوکس نباشد و از مک یا ویندوز استفاده کنید؛ طریقه نصب و تنظیم اساساچ را در سیستمعاملهای اواس ده و ویندوز نیز آموزش خواهیم داد به هر حال ذهنیت پیشفرض برای ما این موضوع است که شما کاربر گنو/لینوکس هستید؛ اما استفاده از این آموزش در ماشینمجازی برای نصب اوبونتو و پیکربندی LAMP تقریبا در هر سیستمعاملی که ویرچوالباکس در آن نصب شود نیز قابل انجام است. بنابراین اگر کاربر ویندوز و مک هم هستید، هرگز نباید نگران این موضوع باشید؛ زیرا ما هر دو سیستمعامل فوق را نیز در این آموزش پوشش دادهایم. سیستمعامل اواس 10 هم که در اکثر نکات همانند گنو/لینوکس است.
در اینجا ما برخی تنظیمات را به گونهای در نظر میگیریم که شما در استفاده از سندباکس راحت باشید و نیازی به وارد کردن رمز عبور و … در هر مرتبه و هر بار ورود نباشید؛ همچنین دیگر تنظیمات برای راحتی کار شما در استفاده از سندباکس است. با وجود این تمامی موارد فوق، فقط در سندباکس عقلانی است و برای یک سرور واقعی توصیه نمیشود که چنین کارهایی انجام شود. بنا بر این در هر آموزش کاملا تاکید میشود که این کار را فقط در سندباکس توصیه میکنیم که در سرور واقعی چنین تنظیماتی را اعمال نکنید؛ زیرا ممکن است امنیت سرور شما را به خطر بیندازند.
اتصال به 127.0.0.1 با نامی دیگر
سیستمعامل گنو/لینوکس و اواس ده؛
برای اتصال به یک سرور معمولا ما به یک آدرس و یا یک آیپی «IP» نیاز داریم. آیپی یک میزبان محلی همواره 127.0.0.1 است که با نام «localhost» نیز شناخته میشود. ما میتوانیم در سیستم خود در فایلی که میزبانها را نگاهداری می کند، نامی دلخواه را به IP مورد نظر نسبت دهیم. مثلا برای آدرس آیپی 127.0.0.1 میتوانیم هر نام دیگری را به دلخواه خود به این آدرس آیپی نسبت دهیم. برای آزمایش دسترسی به این IP میبایست از دستور زیر استفاده کنید:
ping -c 3 127.0.0.1
خوب حال ما میخواهیم این IP را به یک نام بهتر متصل کنیم، مثلا در این مورد ما میخواهیم در صورت نوشتن آدرس sandbox.dev:8080 به صفحه اصلی میزبانی شده توسط ماشین مهمان و کارساز وب آپاچی دسترسی داشته باشیم. طبیعتا این نام بسیار زیبا تر از یک عدد است. برای این کار دستور زیر را در ترمینال سیستم میزبان (سیستم اصلی خودتان) وارد میکنید.
sudo nano /etc/hosts
در مثال بالا ما از نام sandbox.dev استفاده خواهیم کرد که نامی کاملا مناسب برای یک سندباکس مورد استفاده برای توسعه و برنامهنویسی یهشمار میآید. برای این کار در فایل باز شده توسط دستور بالا مقادیر زیر را به انتهای آن میافزاییم تا در هنگام نوشتن sandbox.dev به همراه درگاههای مورد نظر خود به سندباکس ایجاد شده خود در ماشین مجازی دسترسی داشته باشیم. گفتنی است که دربین مقادیر وارد شده مثلا بین آدرس آیپی 127.0.0.1 و sandbox.dev برای زیبایی، کلید TAB زده شدهاست تا یک فضای سفید و خالی بین آنان به وجود آید؛ همانند مقادیر دیگر در آن فایل.
127.0.0.1 sandbox.dev
حال اگر عبارت sandbox.dev را نیز توسط ping آزمایش کنید؛ همان خروجی که برای 127.0.0.1 مشاهده کردید را مشاهده خواهید کرد.
PING sandbox.dev (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.108 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0.080 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=3 ttl=64 time=0.079 ms
— sandbox.dev ping statistics —
در سیستمعامل ویندوز؛
در سیستمعامل ویندوز این فایل در درایو C شاخه ویندوز / سیستم 32 و پوشه drivers/etc قرار دارد که با گشودن فایل توسط Notepad و سپس افزودن مقدار زیر و ذخیره آن، میتوانید این نام را به آیپی 127.0.0.1 نسبت دهید. فرآیند کامل اینکار در زیر آمده است.
1. بر روی دکمه استارت ویندوز کلیک کنید:
2. بر روی برنامه ‘Notepad’ راست کلیک کنید؛
3. بر روی گزینه “Run As Administrator” کلیک کنید؛
4. بر روی دکمه “Continue” در کادر پیغام نمایش داده شده کلیک کنید؛
5. با کلیک بر روی گزینه «Open» در منوی فایل کادر محاورهای گشودن فایل باز خواهد شد که در کادر باز شده فایل hosts واقع شده در آدرس زیر را باید باز کنید:
C:\WINDOWS\system32\drivers\etc\
6. سپس بعد از باز شدن فایل متنی فوق، مقدار زیر را در پایان و خط آخر آن وارد کنید و سپس بر روی گزینه «Save» در منوی فایل کلیک کرده تا فایل ذخیره شود. گفتنی است برای ایجاد فضای سفید و زیبایی بیشتر مابین مقادیر کلید TAB زده شود بهتر است.
127.0.0.1 sandbox.dev
استفاده از یک میزبان محلی مزایای زیر را دارد؛
- سریعتر از یک میزبان اینترنتی بوده و به سرعت اینترنت شما بستگی ندارد.
- به اتصال به اینترنت و برخط بودن نیازی نیست و به صورت محلی میتوانید برنامه خود را توسعه دهید.
- نیازی به خرید و مدیریت یک میزبان واقعی ندارید و به این ترتیب در هزینهها صرفه جویی میشود.
- برای تست پایگاه وب خود نیازی به خرید یک دامنه اینترنتی منحصر به فرد و با معنی نخواهید داشت.
- اتصال به سندباکس با استفاده از اساساچ «SSH»
بعد ز آنکه توانستیم به سیستم بفهمانیم که sandbox.dev را به آدرس آیپی 127.0.0.1 نسبت دهد؛ وقت آن رسیده است که به نصب و تنظیم اساساچ بپردازیم. ما این ابزار را در هنگام نصب اوبونتو سرور نصب کردهایم؛ بنا بر این نگرانی از این بابت نخواهیم داشت. اگر از گنو/لینوکس استفاده میکنید که باید این ابزار را توسط مدیر بستههای نرمافزاری خود نصب کنید.
نکته: پوشش تمامی این دستورات در توزیعهای مختلف با روشهای خاص خود کمی طولانی خواهد بود که از این موضوع صرف نظر میکنیم با این حال نصب آن بسیار آسان خواهد بود و حتی ممکن است در توزیع شما از پیش نصب باشد. در سیستمعامل اواس ده که به صورت پیشفرض نصب است.
همانطور که در ابتدای مطلب به آن اشاره داشتیم، ابزار اساساچ برای دسترسی به رایانهای از راه دور کاربرد دارد. ما در این مورد قصد داریم تا با استفاده از سیستم خود سندباکس موجود در ویرچوالباکس را مدیریت کنیم. در قسمت قبلی و پیش از این، درگاه مورد نیاز این کار را به درگاه دلخواه 2020 انتقال دادهایم که در قسمت قبل به طور مفصل به آموزش آن پرداختیم. پس برای دسترسی به سیستم مهمان میبایست از sandbox.dev و درگاه شماره 2020 استفاده کنیم.
به دو روش میتوان در اتصال به یک سیستم از راه دور از طریق اساساچ، هویت خود را احراز کنید. اولین گزینه این است که از طریق نام کاربری و گذرواژه یکی از کاربران سیستم مقصد، هویتتان احراز شود و دومین روش با استفاده از یک کلید مشترک ایجاد شده است که باعث میشود تا مادامی که آن کلید را دارید؛ بدون نیاز به وارد کردن گذرواژه به سیستم مورد نظر دسترسی داشته باشید.
در سیستمعامل اواس ده اساساچ به راحتی قابل دسترسی است. فقط باید به ترمینال رفته و دستور را اجرا کنید. اما سیستمعامل ویندوز تنها سیستمعامل مطرح است که از اساساچ بیبهره است و برای نصب آن باید از ابزار PuTTY استفاده کرد. با این حال روش زیر نیز یکی از روشهای نصب اساساچ در ویندوز است.
از پیوند مقابل OpenSSH for Windows v3.8.1p1-1، این برنامه را بارگیری کنید که یک پیوند مستقیم است. آن را از حالت فشرده خارج کرده که به صورت یک فایل آرشیو و فشرده است سپس باید فایل مقابل را که نصاب برنامه است را اجرا کنید؛ «setupssh.exe».
مسیر نصب برنامه را از مسیر پیشفرض به مسیر “C:\OpenSSH” تغییر دهید تا دسترسی به تنظیمات و … برایتان راحت باشد.
تنظیمات در شاخه فوق و در زیر شاخه /etc واقع شدهاند.
گفتنی است خبرهایی مطرح شده است که امکان دارد در ویندوز 10 از اساساچ به طور پیشفرض استفاده شود.
سپس بعد از انجام دادن کامل کارهای فوق، در هر یک از سیستمعاملها خط فرمان را باز کنید و دستور زیر را وارد کنید.
ssh –p2222 user@sandbox.dev
در دستور بالا شماره درگاه بعد از کلید «p-» و نامکاربری قبل از نام دامنه سفارشی نوشته شده است که با واژه اتساین «@» از نام میزبان «sandbox.dev» جدا شده است. سپس پیغام زیر نمایش داده خواهد شد که برای تایید آن کلمه بله «yes» را از وارد کنید و سپس کلید اینتر را از صفحهکلید بفشارید تا پیغام بسته شود.
The authenticity of host ‘[sandbox.dev]:2222 ([127.0.0.1]:2222)’ can’t be established.
ECDSA key fingerprint is SHA256:C49qusdFkjRB6dx/X3zccYA4zmzBbc7LjCtNO85nExs.
Are you sure you want to continue connecting (yes/no)?
سپس گذرواژه نام کاربری را وارد کرده و منتظر ورود به خط فرمان سیستم مهمان شوید. بعد از آن هر دستوری را که بخواهید میتوانید در داخل اوبونتو اجرا کنید. کار بعدی ما این است که یک کلید خاص و مختص به خود را برای استفاده ایجاد نماییم. این مورد را فقط یک بار انجام خواهید داد و دیگر نیازی به انجام آن در هر بار دسترسی نخواهید داشت. ابتدا دستور زیر را در خط فرمان اجرا کنید که هرچه در بین جفت کوتیشن درج شده است را به عنوان یک پیغام «کامنت» در نظر خواهد گرفت و کلید ایجاد شده نیز «rsa» خواهد بود.
ssh-keygen -t rsa -C “[email protected]”
سپس بعد از آن، از ما مکانی برای ذخیره شدن کلید درخواست میشود که پیشفرض گزینهای مناسب است. در پیغام بعدی از شما درخواست میشود تا یک گذرواژه برای احراز هویت خود با این کلید انتخاب کنید. ما در سندباکس گذرواژهای در نظر نمیگیریم. اما اگر خواستید میتوانید برای رمز خود یک گذرواژه در نظر بگیرید. سپس کلید ساخته شده و در خروجی برای شما به نمایش در خواهد آمد.
ssh-keygen -t rsa -C “[email protected]”
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:99/mhovrhDP0Pbh6kb7V03S9w/ZCCz/Nq90ynh6RcGY [email protected]
The key’s randomart image is:
+—[RSA 2048]—-+
| |
| |
| . E |
| = ..|
| S o .o +|
| o ++oo++|
| +.===@o|
| +o=@=X|
| .+**B%*|
+—-[SHA256]—–+
بعد از آن باید پوشه مخفی ssh. را در رایانه مجازی مهمان ایجاد کنید. برای اینکار دستور اساساچ را به همراه دستور ساخت پوشه «mkdir» اجرا میکنیم. بعد از اجرای دستور زیر، اساساچ اجرا شده اما بعد از اجرای این دستور، اساساچ مجددا بسته خواهد شد.
ssh -p2222 [email protected] mkdir -p .ssh
سپس ما کلید خصوص ایجاد شده توسط دستور کَت «cat» را به کلیدهای احراز هویت در مقصد یعنی رایانه مهمان منتقل میکنیم. برای این کار دستور زیر را اجرا کنید که خروجی دستور کت را با دستور کت دیگر به یک فایل در ماشین مهمان میریزد.
cat ~/.ssh/id_rsa.pub | ssh -p2222 [email protected] ‘cat >> .ssh/authorized_keys’
سپس بعد از اجرای دستور بالا، و نوشتن گذرواژه، فایل فوق در سیستم مهمان با محتوای کلید ایجاد شده توسط سیستم میزبان پر خواهد شد. اگر دستور بالا برایتان مشکل است نگران نباشید؛ زیرا دستور فوق طولانی ترین دستوری بود که تا آخر این آموزش با آن مواجه خواهید شد. با وجود این دستور فوق با وجود طولانی بودن ساختار آسانی دارد. سپس بعد از انجام عملیات فوق، اگر بخواهید وارد سیستم مهمان شوید؛ دیگر نیازی به گذرواژه نخواهید داشت. البته اگر در هنگام ساخت کلید عمومی گذرواژهای را در نظر گرفته بودید؛ باید آن گذرواژه را در هر بار اتصال به رایانه مجازی یا سیستم مهمان وارد کنید، زیرا کلید شما نیز خود نیاز به یک گذرواژه دارد. به همین دلیل پیشنهاد ما این بود که از گذرواژه در سندباکس استفاده نکنید؛ مگر آنکه به یک شبکه عمومی متصل باشید و از جهات امنیتی شبکه خود نگران هستید.
ssh -p2222 [email protected]
اگر دقت کرده باشید، هنگام نوشتن دستور فوق کمی خسته خواهید شد و حتماً باید شماره درگاه و نام کاربری را وارد کنید که در هربار اتصال یکسان است. حال که از نوشتن گذرواژه آسوده شدیم، بهتر است از موارد نیز خود را برهانیم. در این هنگام با دستور خارج شدن «logout» از اساساچ خارج شوید و در سیستم میزبان دستور زیر را وارد کنید تا فایل مورد نظر برای انجام این کار ویرایش شود.
cat ~/.ssh/config
آنگاه بعد از باز شدن ویرایشگر متن نانو، متن زیر را وارد کنید و با کلیدهای Ctrl+X و نوشتن واژه «Y»، فایل را ذخیره کنید.
Host sandbox.dev
Port 2222
User username Shoma
در ابتدای خط دوم و سوم یک بار کلید Tab را فشار دهید. بعد از آن با دستور زیر به راحتی به سیستم مهمان متصل خواهید شد.
ssh sandbox.dev
اتصال SSH در ویندوز:
نکته: اگر کاربر سیستمعاملهای شبه یونیکس، اواس ده و گنو/لینوکس هستید این قسمت را مطالعه نکنید.
برای اتصال به سیستم مهمان از طریق اساساچ، ابتدا نرمافزار PuTTY را از این پیوند دریافت و بارگیری کنید. سپس بعد از نصب برنامه فوق آن را از طریق منوی استارت اجرا کرده و در قسمت تنظیمات PuTTY موارد مورد نیاز و وارد شده در قسمتهای قبلی را به صورتی که در تصویر زیر مشاهده میکنید؛ وارد کنید. و سپس بر روی دکمه Save کلیک کنید.
بعد از آن بقیه قسمتها مانند کامنت «Comment» و … را نیز پر کنید. در این قسمت آدرس رایانامه خود را وارد کنید.
در مقابل کادر «Passphrase» میتوان گذرواژهای دلخواه را بنویسید. ما در سندباکس گذرواژهای در نظر نمیگیریم. اما اگر خواستید میتوانید برای رمز خود یک گذرواژه در نظر بگیرید. برای ذخیره کلید بر روی دکمه «Save private key» کلیک کرده و مکان مناسبی را برای ذخیره آن در نظر بگیرید. به عنوان نمونه آن را در میزکار و با نام private ذخیره کنید. سپس هر آنچه در کادر بزرگ بالای پنجره ایجاد شده را کپی کرده و سپس مجدد PuTTY را اجرا کنید و با نوشتن گذرواژه وارد سیستم مهمان شوید. بعد از وارد شدن به سیستم مهمان دستورات زیر را در خط فرمان وارد کنید.
mkdir .ssh
و بعد از آن دستور زیر را اجرا کنید؛ فقط به جای متن نوشته شده بین “” متن کپی شده از کادر فوق را جایگزین کنید.
echo “Copied Text from mentioned box” >> .ssh/authorized_keys
سپس هنگامی ;i از سیستم خارج شدید؛ کلید ذخیره شده در میزکار را اجرا کنید تا PAgent اجرا شود و در این هنگام اگر بخواهید مجدداً به وسیله PuTTY وارد سیستم مهمان شوید، دیگر نیازی به نوشتن گذرواژه نخواهید داشت.
نصب چند نرمافزار مورد نیاز برای پیکربندی سندباکس
برنامهها در اوبونتو سرور با استفاده از خط فرمان و دستور ایپیتی «APT» انجام میشود. این ابزار میتواند لیست برنامههای نصب شده را با لیست موجود در اینترنت همگام کند و سپس بستههای نرمافزاری را بر اساس آن به روز کند. همچنین با این ابزار میتوان نرمافزارها را نصب و حذف نمود. به طور کلی برای مدیریت بستههای نرمافزاری به کار میرود.
در /etc/apt/sources.list آدرس منابع نرمافزار قرار گرفتهاند. این منابع میتوانند سیدی، دیویدی، فایل تحت شبکه یا پوشههای افتیپی یا اچتیتیپی باشند. اگر بستهای در پوشهها یا دیسک سخت موجود باشد خودکار دریافت شده و نصب میگردد. تمامی بستهها با فرمت دب (قالب پرونده) میباشند و پیشنیازها به صورت خودکار شناسایی شدهاند، برای همین ممکن است در هنگام نصب برنامهای کتابخانههای مورد نیاز هم دریافت و نصب گردند. نرمافزار ایپیتی یا اپت از روی دیپیکیجی کار میکند. (ویکیپدیا)
ابتدا سیستم خود را با استفاده از ایپیتی به روز کنید. برای این کار ابتدا باید لیست نرمافزارهای موجود با لیست نرمافزار در سرور و ویرایشهای بهروز شده در آن همگام شود؛ سپس بعد از همگام شدن لیست با دستور بهروزرسانی سیستم، هر نرمافزاری که ویرایش جدید از آن در دسترس است را نصب خواهد کرد؛ یعنی اگر ویرایش نرمافزار از ۱٫۰٫۱ به ۱٫۰٫۲ تغییر کرده است ویرایش جدید آن نرمافزار یعنی ویرایش جدیتر ۱٫۰٫۲ را به جای قبلی نصب و جایگزین خواهد کرد.
sudo apt-get update
sudo apt-get upgarade
یا برای به روز کردن کل توزیع
sudo apt-get upgarade
بعد از نصب تمامی بهروزرسانیها حال باید ماشین مجازی را با دستور زیر راهاندازی مجد کنید. بعد از راهاندازی مجدد باید دوباره از طریق اساساچ به آن متصل شوید. فرآیند بهروزرسانی حدود 5 دقیقه از زمان شما را خواهد گرفت.
sudo reboot
ssh sandbox.dev
اولین نرمافزاری که قرار است نصب کنیم، زیشل نام دارد که جایگزینی برای BASH به شمار میرود. زیشل و تنظیمات و برخی ابزارهای مرتبط با آن را نصب میکنیم تا بتوانیم راحتتر دستورات را بنویسیم در این پوسته خط فرمان اگر چند حرف دستوری را بنویسید و کلید TAB را بفشارید، آن دستور را برای شما کامل خواهد کرد. به طور کلی سرعت شما را در نوشتن دستورات خط فرمان بلا خواهد برد.
امکانات آن از صفحه زیشل ویکیپدیا؛
- مکمل خط فرمان قابل برنامهریزی که میتواند به نوشتن آپشنها و آرگومانها برای بیشتر دستورها کمک کنند و دارای پشتیبانی از چند صد دستور بدون نیاز به تنظیم خاصی است.
- به اشتراکگذاری تاریخچه دستورها بین همه پوستهها؛
- الگوهای توسعهیافتهای که توصیف پرونده را بدون نیاز به برنامهای خارجی مانند find است.
- متغیر/آرایه بهبودیافته؛
- ویرایش دستورهای چندخطی در یک بافر؛
- غلطیاب؛
- حالتهای سازگاری مختلف، برای مثال zsh میتواند بهمانند Bourne shell رفتار کند اگر بهعنوان /bin/sh اجرا گردد.
- واسط خط فرمان قابل پوستهبندی، شامل توانایی قراردادن اطلاعات در سمت
- راست صفحه و داشتن آن به صورت مخفی به صورت خودکار مخفی هنگام نوشتن یک دستور طولانی؛
- ماژولهای قابل بارگیری، فراهمکنندهٔ قابلیتهای از حمله: کنترلکنندهٔ TCP و Unix domain socket کامل، یک کلاینت افتیپی و توابع ریاضی توسعهیافته؛
- کاملاً قابل تنظیم؛ (ویکیپدیا)
برای نصب زیشل و دیگر ابزار مرتبط دستور زیر را اجرا کنید. در دستور تغییر شل «chsh» هنگام پرسیدن مسیر شل مورد نظر نیز همان مسیر نوشته شده در زیر را وارد کنید. ‘گفتنی است که اگر بخواهید برنامهای را نیز توسط ایپیتی نصب نماید در هنگام نوشتن نام بستهها اگر چند حرف از آن را بنویسید و کلید «TAB» را بزنید؛ نام نرمافزارها کامل خواهد شد.
sudo apt-get install zsh zshdb zsh-lovers grm-zsh-config
chsh
Password:
Changing the login shell for user
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /usr/bin/zsh
بعد از اجرای دستور بالا، در خط فرمان با نوشتن زیشل به شکل لاتین «zsh» شل مذکور را اجرا کرده و در سوالی که پرسیده میشود؛ عدد 0 را تایپ کرده و کلید اینتر را از صفحه کلید فشار دهید. سپس تمامی نرمافزارهای مورد نیاز برای موارد بعدی در آینده را نصب خواهیم کرد. برای این کار دستور زیر را اجرا کنید.
sandbox% sudo apt-get install build-essential linux-headers-virtual dkms nano -y
sandbox% sudo apt-get install zip unzip rar unrar p7zip wget curl aria2 axel lynx-cur lynx man-db acpid -y
اتصال پوشه اشتراکی در ویرچوالباکس
بعد از نصب ابزار مورد نیاز نوبت به اتصال پوشه اشتراک گذاشته شده در ویرچوالباکس میشود. برای اینکار شما باید پوشهای با نام Sandbox را در جایی در سیستم میزبان ایجاد کنید. سپس از طریق روش اشاره شده در قسمت اول آن را با ویرچوالباکس در سیستم مهمان به اشتراک بگذارید. بعد از آن اگر تیک اتصال خودکار فعال باشد در هر بار اجرای سیستم آن پوشه برای سیستم شناخته شده خواهد بود. پوشه فوق در شاخه media/sf_sandbox/ اتصال یافته است. اما در اوبونتو سرور برای دسترسی کامل به آن پوشه باید راهانداز و ابزار اضافی ویرچوالباکس در اوبونتو نصب شود که شامل موارد متعددی است. برای نصب آن از منوی Devices گزینه Insert Guest Additions CD image را انتخاب کنید تا تصویر این ابزار در سیستم مهمان به عنوان دیسک مجازی شناخته میشود.
بعد از انجام عمل فوق، می بایست که دیسک را نیز به پوشهای در شاخه media متصل کنید؛ برای این کار باید دستور mount را به شکل زیر استفاده کنید.
sandbox% sudo mount /dev/cdrom /media/cdrom
اگر پیغامی نمایش داده شد نگران نشوید زیرا مرتبط با این موضوع است که دیسک فوق به صورت فقط خواندنی است. سپس دستور زیر را برای نصب این ابزار در گنو/لینوکس در ترمینال سیستم مهمان وارد کنید.
sandbox% sudo sh /media/cdrom/VBoxLinuxAdditions.run
Verifying archive integrity… All good.
Uncompressing VirtualBox 4.3.28 Guest Additions for Linux…………
VirtualBox Guest Additions installer
Copying additional installer modules …
Installing additional modules …
Removing existing VirtualBox DKMS kernel modules …done.
Removing existing VirtualBox non-DKMS kernel modules …done.
Building the VirtualBox Guest Additions kernel modules …done.
Doing non-kernel setup of the Guest Additions …done.
Starting the VirtualBox Guest Additions …done.
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
اخطار آخر برای این نمایش داده شده است که در اوبونتو سرور ابزار گرافیکی برای نمایش پنجرهها و … که X نام دارد نصب نیست که نیازی به این ابزار هم وجود ندارد. سپس ماشین مجازی را مجددا راهاندازی مجدد کنید. (طبق دستوراتی که در نوشتههای قبلی ذکر شد.) حال اگر دستور زیر را اجرا کنید؛ خواهید فهمید که ماژولهای مورد نظر در اوبونتو به خوبی بالا آمدهاند. ماژولهای فوق با کلمه «vbox» آغاز شدهاند.
sandbox% lsmod
Module Size Used by
vboxsf 43786 1
ppdev 17671 0
vboxguest 249045 2 vboxsf
video 19476 0
parport_pc 32701 0
serio_raw 13462 0
lp 17759 0
parport 42348 3 lp,ppdev,parport_pc
psmouse 106647 0
e1000 145227 0
ahci 34091 2
libahci 32716 1 ahci
برای دسترسی به پوشه اشتراکی باید به مسیر media/sf_sandbox/ بروید.
sandbox% cd /media/sf_sandbox
cd: permission denied: /media/sf_sandbox
که همانطور که میبینید با پیغام خطای عدم اجازه برای دسترسی مواجه خواهید شد. برای اینکه بتوانید به این مجوز لازم را به کاربر جاری یعنی خودتان بدهید باید خودتان را برای دسترسی به آن مجاز کنید. ابتدا بیایید بررسی کنیم این فایل چه مجوز دسترسی خاصی دارد.
sandbox% ls -l /media
total 8
drwxr-xr-x 2 root root 4096 Jul 9 20:48 cdrom
drwxrwx— 1 root vboxsf 4096 Jul 9 18:49 sf_sandbox
این فایل برای کاربرانی که عضو گروه vboxsf هستند مجاز است. حال بیایید ببینیم آیا ما در این گروه عضو هستیم یا خیر؛ برای اینکار دستور زیر را اجرا کنید تا تمامی گروههایی که شما در آنان عضو هستید را نمایش دهد.
uid=1000(User) gid=1000(User) groups=1000(User),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),110(sambashare)
شما در گروههای زیادی عضو هستید. این گروهها یک مشخصه خاصی نیز به همراه خود دارند. اگر به این لیست دقت کنید؛ هیچ یک از این گروهها vboxsf نیستند. پس کدام حساب کاربری در این گروه عضو است؟ برای فهم این موضوع دستور زیر را اجرا کنید.
sandbox% getent group vboxsf
vboxsf:x:999:
در دستور بالا با استفاده از ابزار getent و مشخص کردن نام گروه و جستجوی گروهها در بانکاطلاعاتی گروههای کاربری، مشاهده میشود که هیچ کاربر خاصی در این گروه حضور ندارد. پس چارهای نمیماند جز اینکه با دستور زیر حساب کاربری خود را به عضویت این گروه درآورید. دستور مورد استفاده دستور usermod خواهد بود. برای اجرای دستور فوق نیز مانند دستورات سیستمی مورد استفاده در موارد قبلی باید از sudo استفاده کنیم تا دسترسی بیشتری داشته باشیم.
sandbox% sudo usermod -a -G vboxsf User
با وجود این اگر یکبار از حساب خود خارج و مجدد وارد حساب خود نشوید؛ قادر نیستید که به این پوشه دسترسی یابید. برای اعمال تغییرات کاربری و افزودن و حذف از گروهی خاص، باید یکبار از حساب خود خارج شوید و سپس وارد حساب کاربری خود شوید. همچنین بعد از انجام تغییرات فوق، دقت داشته باشید که آپاچی نیز قرار است به این پوشه دسترسی داشته باشد. برای اینکه بتواند محتوای آن را نمایش دهد؛ باید حساب کاربری www-data نیز بتواند به این پوشه اجازه دسترسی داشته باشد. خوب اگر دستور زیر نیز اجرا شود این دسترسی تخصیص خواهد یافت که این دستور مطابق دستور بالا عمل کرده با این تفاوت که به جای نام کاربری خود نام کاربری www-data جایگزین شده است.
sandbox% sudo usermod -a -G vboxsf www-data
تنظیم و پیکربندی آپاچی
آپاچی یک کارساز وب متنباز و آزاد است که توسط بنیاد آپاچی توسعهداده میشود؛ اطلاعات بیشتر در این مورد را میتوانید در قسمت اول این مقاله مطالعه کنید. اکثر فایلهای پیکربندی نرمافزارها و ابزار در گنو/لینوکس در شاخه etc/ قرار دارد. اگر به پوشه مخصوص تنظیمات آپاچی واقع در پوشه apache2 در شاخه etc/ بروید،پوشههای زیر را در آن خواهید دید.
sandbox% ls -la /etc/apache2
total 88
drwxr-xr-x 8 root root 4096 Jul 19 18:44 .
drwxr-xr-x 85 root root 4096 Jul 19 20:52 ..
-rw-r–r– 1 root root 7115 Jan 7 2014 apache2.conf
drwxr-xr-x 2 root root 4096 Jul 19 18:44 conf-available
drwxr-xr-x 2 root root 4096 Jul 9 20:56 conf-enabled
-rw-r–r– 1 root root 1782 Jan 3 2014 envvars
-rw-r–r– 1 root root 31063 Jan 3 2014 magic
drwxr-xr-x 2 root root 12288 Jul 19 18:44 mods-available
drwxr-xr-x 2 root root 4096 Jul 9 20:56 mods-enabled
-rw-r–r– 1 root root 320 Jan 7 2014 ports.conf
drwxr-xr-x 2 root root 4096 Jul 19 18:44 sites-available
drwxr-xr-x 2 root root 4096 Jul 9 20:56 sites-enabled
برای ان که آپاچی به درگاه و آدرس مورد نظر ما پاسخ دهد باید در تنظیماتی که در sites-available هستند را به پوشه site-enabled منتقل کنید؛ اما اکثرا این کار را با ایجاد یک میانبر از پوشه در دسترسها به پوشه فعالها انجام میدهیم. اگر به داخل پوشه تنظیمات sites-available بنگریم تنظیمات پیشفرض را مشاهده خواهیم کرد. ما به این تنظیمات نیازی نداریم. بنابراین تنظیمات خود را با استفاده از nano ایجاد میکنیم؛ اگر بدون تنظیمات خاصی آپاچی را اجرا کنید، با صفحه فوق مواجه میشوید.
ویرایش فایلها توسط sudoedit؛
یکی از دستوراتی که برای ویرایش فایلهای سیستمی به کار میرود دستور sudoedit است که ابتدا یک کپی از فایل در شاخه موقتی tmp کپی کرده و بعد از ویرایش کامل روی همان فایل میریزد. این ویرایشگر از ویرایشگر نانو استفاده میکند. با استفاده از این ویرایشگر متنی فایل تنظیمات مورد نیاز خود را برای اجرای سرور و کارساز وب آپاچی ایجاد میکنیم.
sandbox% sudoedit /etc/apache2/sites-available/vboxsf.conf
در داخل آن محتویات زیر را نوشته و سپس فایل را ذخیره میکنیم.
<VirtualHost *:80 *:8080>
ServerName sandbox
ServerAlias *.dev
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/dev-error.log
CustomLog ${APACHE_LOG_DIR}/dev-access.log combined
RewriteEngine On
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /media/>
Order allow,deny
Allow from all
Require all granted
</Directory>
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from all
Require all granted
</Location>
UseCanonicalName Off
VirtualDocumentRoot /media/sf_%1
</VirtualHost>
سپس باید آن درگاهی را که از مهمان به میزبان منتقل کردهایم و آن را به 8080 تغییر دادهایم را به کارساز وب آپاچی بشناسانیم. برای این کار باید از دستور زیر استفاده کرد که فایل را ویرایش کرده و تنظیمات مورد نیاز را در آن وارد میکنیم.
sandbox% sudoedit /etc/apache2/ports.conf
در آن فایل بعد از کلمه Listen 80 و خط بعدی باید Listen 8080 را وارد کرد. بعد از آن فایل فوق باید مشابه زیر باشد.
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 8080
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
با استفاده از دستورات «a2ensite» و «a2dissite» میتوانید سایتی را فعال و یا غیر فعال کنید، این دستورات میانبری از فایل تنظیمات مورد نظر در «sites-available» پوشه «sites-enabled» ایجاد خواهد کرد. برای فعال کردن تنظیماتی که خودمان وارد کردیم؛ باید با استفاده از دستورات فوق آنان را فعال کنیم؛ برای این کار باید دستور زیر را اجرا کنیم.
sandbox% sudo a2ensite vboxsf.conf
دستورات «a2dissite» را نیز برای غیر فعال کردن تنظیمات پیشفرض به کار میگیریم.
sandbox% sudo a2dissite 000-default.conf
همچنین تا زمانیکه برخی ماژولها را فعال نکردهاید؛ آپاچی را نمیتوانید اجرا کنید. زیرا با خطا مواجه خواهید شد. برای فعال یا غیر فعال کردن ماژول در آپاچی 2 از دستورات «a2enmod» و «a2dismod» استفاده میشود. با استفاده از دستور زیر ماژول «rewrite» را فعال میکنیم.
sandbox% sudo a2enmod rewrite
ماژولهای بعدی که باید فعال شوند؛ ماژولهای «vhost_alias» و «status» هستند که این ماژولها را نیز با دستور زیر میتوانید فعال کنید.
sandbox% sudo a2enmod vhost_alias
sandbox% sudo a2enmod status
بعد از آنکه با موفقیت توانستید تمامی ماژولهای فوق را فعال کنید؛ قادر خواهید بود تا آپاچی را مجددا راهاندازی کنید و سرویس فوق را از نو اجرا کنید. این کار در هر بار تنظیم آپاچی باید صورت گیرد.
sandbox% sudo service apache2 restart
* Restarting web server apache2
بعد از انجام تمامی مراحل فوق و برای آزمودن تنظیم بودن آپاچی ۲ و همچنین آزمودن صحت تنظیمات انجام شده در بالا، فایلی با نام «phpinfo.php» را در پوشه «Sandbox» (پوشهای است مورد استفاده در ویرچوالباکس، برای اشتراک گزاری در ماشین مجازی) ایجاد کنید و مقادیر زیر را در آن وارد کنید.
<?php phpinfo();
سپس در مرورگر آدرس زیر را وارد کنید تا صفحهای مشابه تصویر زیر را مشاهده کنید. اگر همهچیز به خوبی اجرا شد و صفحه مشابهی را مشاهده کردید؛ تنظیمات به خوبی انجام شده و آپاچی به درستی در حال کار است.
http://sandbox.dev:8080/phpinfo.php
در این قسمت به تنظیم آپاچی و اتصال به سندباکس از طریق اساساچ پرداختیم. در قسمت بعدی یعنی قسمت سوم این آموزش به تنظیمات نهایی و نصب برخی ابزارها و نرمافزارهای مورد نیاز خواهیم رسید که برای یک توسعهدهنده وب مورد نیاز هستند. تا اینجای کار قادر خواهید بود که اکثر کارهایی قابل انجام در یک کارساز وب را انجام دهید؛ با وجود این برخی نکات کاربردی دیگر نیز وجود دارند که در قسمت بعدی به موارد بیشتری اشاره خواهم کرد.
منبع: salam-donya