Apache یک نرمافزار وبسرور متنباز است که از زمان شروع به کار خود در سال ۱۹۹۵ میلادی (۱۳۷۴ شمسی) تا کنون توانسته نقش بسیار مهمی در رشد و گسترش دنیای وب داشته باشد. این نرمافزار وبسرور توسط بنیاد نرمافزاری آپاچی توسعه یافته است و امروزه تبدیل به پرکاربردترین نرمافزار وبسرور شده است که بیش از نیمی از وبسایتهای فعال در سراسر جهان از آن استفاده میکنند. عملکرد اصلی آپاچی ارائه محتوا وب در قالب فایلهای HTML، تصاویر و اسکریپتها به مرورگرهای کاربران از طریق اینترنت است. بر همین اساس در مطلب پیشِرو از مجله فرادرس یاد خواهیم گرفت که Apache چیست و چه کاربردهایی دارد.
همچنین، در این مطلب ویژگیها، قابلیتها، امکانات و مزایای این وبسرور نیز مورد بررسی قرار گرفته است. با مطالعه این مطلب هر آنچه برای شروع کار با Apache نیاز است از ویژگیها و امکانات گرفته تا نحوه نصب و راهاندازی آن را فرا خواهید گرفت. علاوه بر این، سعی شده است تا در این مطلب راهکارهای افزایش امنیت وبسرور Apache نیز مورد بررسی قرار گیرد.
Apache چیست؟
آپاچی یک نرمافزار وبسرور رایگان و متنباز است که به طور گسترده برای ارائه محتوای وب در سراسر اینترنت مورد استفاده قرار میگیرد. Apache پرکاربردترین و محبوبترین نرمافزار وبسرور در جهان است که بیش از ۵۰ درصد سهم بازار وبسرورهای تجاری را در اختیار دارد. این نرمافزار وبسرور بیشتر در سیستمعاملهای شبه یونیکس نظیر لینوکس مورد استفاده قرار میگیرد، اما با این وجود در سایر پلتفرمها نظیر ویندوز، مک، OS X و سایر موارد نیز پشتیبانی میشود.
آپاچی یک نرمافزار وبسرور ماژولار و مبتنی بر فرایند است که با هر اتصال همزمان یک « نخ | رشته» (Thread) جدید ایجاد میکند. این نرمافزار وبسرور قابلیتهای متعددی را ارائه میدهد. بسیاری از این قابلیتها به صورت ماژولهای جداگانه کامپایل شدهاند و عملکرد اصلی نرمافزار را ارتقا میدهند. این ماژولهای جداگانه میتوانند هر چیزی از پشتیبانی از زبانهای برنامه نویسی سمت سرور گرفته تا مکانیزمهای احراز هویت را به آپاچی اضافه کنند. به عنوان مثال، «میزبانی مجازی» (Virtual Hosting) یکی از ویژگیهایی است که به وبسرور آپاچی امکان میدهد تا به صورت همزمان به چندین وبسایت مختلف سرویس دهد.
وبسرور چیست؟
بالاتر گفتیم که Apache چیست اما در رابطه با وبسرور صحبت نکردیم. «سرورهای فایل» (File Servers)، «سرورهای پایگاه داده» (Database Servers)، «سرورهای پست الکترونیکی» (Mail Servers) و وبسرورها هر کدام از نرمافزارهای سرور متفاوتی استفاده میکنند. هر کدام از این برنامهها میتوانند به فایلهای ذخیره شده بر روی یک سرور فیزیکی دسترسی داشته باشند و از آنها برای اهداف مختلفی استفاده کنند. برای یادگیری بیشتر در مورد راهاندازی و نحوه کار سرور میتوانید فیلم آموزش رایگان راهاندازی سرور در خانه و اتصال از راه دور فرادرس که لینک آن در ادامه آورده شده است را مشاهده کنید.
در این بین وظیفه یک وبسرور ارائه خدمات به وبسایتهای مختلف در اینترنت است. برای این منظور وبسرور به عنوان واسطه بین سرور و دستگاههای کاربران قرار میگیرد. با هر درخواست کاربر وبسرور محتوا درخواستی را از سرور استخراج میکند و آن را به وب تحویل میدهد. بزرگترین چالش برای یک وبسرور ارائه خدمات به تعداد زیادی از کاربران به صورت همزمان است که هر کدام از این کاربران نیز صفحات مختلفی را درخواست میکنند.
وبسرورها فایلهای نوشته شده با زبانهای برنامه نویسی مختلف همچون PHP، پایتون، جاوا و سایر موارد را پردازش میکنند. سپس، این فایلها را به سندهای ثابت HTML تبدیل میکنند و در انتها این فایلها را در مرورگر برای کاربران وب ارائه میدهند. در نهایت، با شنیدن کلمه وبسرور آن را به عنوان ابزاری در نظر بگیرید که مسئول برقراری ارتباط صحیح بین سرور و کلاینت است.
Apache چگونه کار می کند؟
گفتیم Apache چیست و نحوه عملکرد آن را در ادامه بررسی میکنیم. که عبارت وبسرور Apache در بسیاری از مقالات و گفتگوهای روزمره کاربرد دارد و Apache به عنوان یک وبسرور شناخته میشود. در حقیقت اما Apache یک سرور فیزیکی نیست، بلکه نرمافزاری است که بر روی یک سرور HTTP اجرا میشود. بنابراین، Apache یک نرمافزار وبسرور است. وظیفه اصلی Apache برقراری ارتباط بین سرور و مرورگرهای بازدیدکنندگان وبسایت و فراهم ساختن امکان تبادل فایل بین آنها است.
هنگامی که کاربر میخواهد صفحهای از یک وبسایت به عنوان مثال صفحه اصلی یا صفحه درباره ما را مشاهده کند. مرورگر کاربر درخواستی را به سرور ارسال میکند و آپاچی پاسخ مورد نظر را همراه با تمام فایلهای جانبی در قالب یک سند HTML بر میگرداند. سرور و کلاینت از طریق پروتکل HTTP با یکدیگر ارتباط برقرار میکنند و در این بین وبسرور Apache مسئولیت برقراری ارتباط ایمن بین این دو را بر عهده دارد. Apache به دلیل متنباز بودن قابلیت سفارشیسازی بسیار بالایی دارد. به همین دلیل، توسعه دهندگان وب و کاربران با توجه به نوع وبسایت خود میتوانند کد منبع آپاچی را تغییر دهند. برای پیکربندی آپاچی باید به فایل.htaccess دسترسی داشته باشید. در ادامه نوشته Apache چیست به بررسی نحوه نصب و پیکربندی این نرمافزار وبسرور خواهیم پرداخت.
مزایا و معایب Apache چیست؟
Apache یکی از قدیمیترین و در عین حال محبوبترین وبسرورهای موجود در دنیای وب است. بنابراین، این وبسرور میتواند انتخابی مطمئن برای اجرای وبسایت بر روی یک پلتفرم پایدار و همه کاره باشد. در فهرستهای زیر، میبینیم که مزایا و معایب Apache چیست و در فهرست اول، مزایای آن را بررسی کردهایم.
- متنباز و رایگان، حتی در استفادههای تجاری
- قابل اعتماد با پایداری بالا
- قابلیتهای امنیتی متعدد
- انعطاف پذیری بالا به دلیل ساختار ماژولار
- پیکربندی آسان و مناسب برای افراد مبتدی
- سازگاری با سیستمعاملهای مختلف
- سازگاری با زبانهای برنامه نویسی مختلف
- جامعه توسعه دهندگی بزرگ
آپاچی با وجود داشتن قابلیتهای متعدد معایبی نیز دارد که در ادامه مهمترین نقاط ضعف این وبسرور آورده شده است.
- آپاچی در وبسایتهای با ترافیک بسیار بالا مشکلات عملکردی خواهد داشت.
- وجود ماژولهای متعدد در پیکربندی میتواند این وبسرور را از نظر امنیتی آسیب پذیر کند.
مهم ترین ویژگی های Apache چیست؟
تا اینجا یاد گرفتیم که Apache چیست اما در ادامه میخواهیم در رابطه با ویژگیهای آن صحبت کنیم. آپاچی قدیمیترین وبسرور موجود در جهان است که پیدایش آن به سالهای اولیه شکلگیری شبکه جهانی وب بر میگردد. این وبسرور به دلیل ساختار ماژولار خود از ماژولهای مختلف برای گسترش امکانات خود استفاده میکند. البته بیشتر ویژگیهای اولیه مورد نیاز برای یک سایت در این وبسرور قرار گرفته است و برای بهرهمندی از ویژگیهای بیشتر میتوان از ماژولهای متنوع موجود در این وبسرور استفاده کرد. مهمترین ویژگیهای وبسرور آپاچی در ادامه آورده شده است.
- متنباز
- «چند پلتفرمی» (Cross Platform)
- ماژولار
- سرعت و امنیت بالا
- کارایی بالا
- انعطاف پذیری
- مقیاس پذیری
- جامعه توسعه دهندگی پویا
- «ردیابی نِشستها» (Sessions Tracking)
در ادامه این بخش به منظور پاسخ به این سوال که مهمترین ویژگیهای Apache چیست هر کدام از موارد ارائه شده در بالا به شکل کاملتری توضیح داده شده است.
متنباز
Apache یک نرمافزار متنباز و رایگان است. بنابراین، میتوان از این نرمافزار به عنوان پایه یا وابستگی برای توسعه پروژههای مختلف استفاده کرد. علاوه بر این، میتوان این نرمافزار را متناسب با نیاز پروژه با سایر ماژولها ترکیب کرد. یکی از محبوبترین ترکیبها LAMP است که از ترکیب ۴ ابزار رایگان و متنباز Linux ،Apache ،MySQL و PHP شکل میگیرد. از این ترکیب برای طراحی و پیادهسازی سایتهای پویا در دنیای وب استفاده میشود.
چند پلتفرمی
وبسرور آپاچی با بیشتر سیستمعاملهای موجود همچون یونیکس، لینوکس، ویندوز، مک و سایر موارد سازگار است. این سازگاری آپاچی را به یک وبسرور همه کاره تبدیل کرده است.
ماژولار
از دیگر ویژگیهای مهم وبسرور آپاچی به ماژولار بودن آن میتوان اشاره کرد. ماژولار بودن آپاچی به توسعه دهندگان امکان میدهد تا بتوانند ویژگیهای مورد نیاز خود را در قالب ماژولهای مختلف به پروژه اضافه کنند. در واقع، با استفاده از ویژگی ماژولار بودن میتوان بدون نیاز به تغییر کد اصلی عملکردهای مورد نیاز را گسترش داد.
سرعت و امنیت بالا
وبسرور Apache به منظور ارتقا امنیت وبسایتها قابلیتهای امنیتی مختلفی همچون پشتیبانی از پروتکل رمزگذاری SSL و TLS، کنترل دسترسی و مکانیزمهای احراز هویت را ارائه میدهد.
کارایی بالا
آپاچی به دلیل قابلیت اطمینان و کارایی بالا خود شناخته شده است و میتواند تعداد زیادی از درخواستها را به طور موثر مدیریت کند. این وبسرور به منظور ارتقا سطح کارایی خود از قابلیتهای جدیدی همچون پروکسی، کش کردن اطلاعات در حافظه نهان و «متعادل کننده بارگزاری» (Load Balancing) پشتیبانی میکند. با انجام پیکربندی مناسب وبسرور آپاچی توانایی مدیریت ۱۰ هزار اتصال را دارد.
انعطاف پذیری
آپاچی از طیف گستردهای از ویژگیها همچون میزبانی مجازی، بازنویسی URL، ثبت لاگ سفارشی و موارد دیگر پشتیبانی میکند. در نتیجه، این ابزار انعطاف پذیری بالایی را برای پیکربندی وبسایتها ارائه میدهد.
مقیاس پذیری
وبسرور آپاچی از مقیاس پذیری بالایی برخوردار است و میتواند سطوح مختلفی از نیازهای سرور را پوشش دهد.
جامعه توسعه دهندگی پویا
از دیگر ویژگیهای مثبت آپاچی دارا بودن جامعه بسیار بزرگی از توسعه دهندگان و کاربران است. با توجه به متنباز بودن این وبسرور توسعه دهندگان مختلف در توسعه آن مشارکت دارند. همچنین، انجمنها، مستندات و منابع آموزشی مختلف در خصوص این وبسرور در اختیار توسعه دهندگان قرار دارد که میتوانند از آنها برای برطرف کردن مشکلات احتمالی استفاده کنند.
ردیابی نِشستها
Apache در درجه اول یک نرمافزار وبسرور است که درخواستهای HTTP را مدیریت میکند. آپاچی با استفاده از ماژولها و ابزارهای داخلی خود امکان مدیریت نِشستها را فراهم میکند. مکانیزمهای ردیابی نِشستها به حفظ ارتباط با کاربران در چندین درخواست مختلف کمک میکند و به وبسایتها امکان ارائه تجربهها و خدمات شخصیسازی شده به کاربران را میدهد.
کدام وب سرور بهتر است؟
حالا که میدانیم Apache چیست باید سایر وبسرورها را نیز بررسی کنیم. علاوه بر Apache گزینههای متعددی برای انتخاب وبسرور وجود دارد. هر کدام از برنامههای وبسرور برای هدف متفاوتی ایجاد شدهاند. با وجود این که آپاچی بیشترین میزان استفاده را در بین وبسرورها دارد، اما چندین رقیب و گزینه جایگزین برای این وبسرور نیز وجود دارد. توسعه دهندگان با توجه به نیاز خود و اهداف پروژه میتوانند مناسبترین وبسرور را انتخاب کنند.
در ادامه این بخش از نوشته دو مورد از وبسرورهای موجود را از نظر امکانات، قابلیتها و موارد استفاده با وبسرور Apache مقایسه خواهیم کرد و به این سوال پاسخ خواهیم داد که تفاوت سایر وبسرورها با Apache چیست.
مقایسه Apache و NGINX
Nginx یک نرمافزار وبسرور رایگان و متنباز است. این وبسرور در سال ۲۰۰۴ میلادی (۱۳۸۳ شمسی) عرضه شد و در مقایسه با Apache از سابقه کمتری برخوردار است. هدف اصلی از پیدایش Nginx حل چالش C10K بوده است. چالش C10K به مدیریت بیش از ۱۰ هزار اتصال به طور همزمان اشاره دارد. پیش از پیدایش Nginx وبسرورهای موجود در مدیریت بیش از ۱۰ هزار اتصال به طور همزمان دچار مشکلات عملکردی میشدند و Nginx توانست این مشکل را حل کند.
تفاوت های NGINX و Apache چیست؟
Nginx و Apache هر دو گزینههای جذابی برای انتخاب به عنوان وبسرور هستند. در ادامه مهمترین تفاوتهای این دو وبسرور مورد بررسی قرار گرفته است.
- وبسرور Apache از معماری مبتنی بر «نخ | رشته» (Thread) استفاده میکند. بنابراین، صاحبان وبسایتهای پربازدید در صورت استفاده از این وبسرور ممکن است با مشکلات عملکردی مواجه شوند. Nginx با توجه به استفاده از معماری رویداد محور توانسته مشکل C10K را حل کند و احتمالاً گزینه مناسبی برای وبسایتهای پربازدید است.
- Nginx یک معماری رویداد محور دارد که برای هر درخواست فرایند جدیدی ایجاد نمیکند. در عوض این وبسرور تمام درخواستهای جدید را در قالب یک رشته مدیریت میکند. مدل مبتنی بر رویداد در Nginx درخواستهای کاربران را به شکلی کارآمد مدیریت میکند. بنابراین، این وبسرور از مقیاس پذیری بسیار خوبی برخوردار خواهد بود.
- برای مدیریت وبسایتهای پربازدید Nginx بهترین انتخاب است، زیرا این وبسرور با حداقل منابع میتواند بهرهوری بالایی داشته باشد. بسیاری از وبسایتهای پربازدید نظیر Pinterest ،Airbnb ،Netflix و Hulu از این وبسرور استفاده میکنند.
- Apache در مقایسه با Nginx به دلیل پیکربندی آسان، ماژولهای متعدد و محیط مناسب برای مبتدیان گزینه بهتری برای کسب و کارها و وبسایتهای کوچک و متوسط است.
تفاوت Tomcat و Apache چیست؟
Tomcat یک وبسرور محبوب است که توسط بنیاد نرمافزاری آپاچی با هدف تقویت برنامههای جاوا توسعه پیدا کرده است. این وبسرور توانایی اجرای چندین برنامه مختلف جاوا همچون Java Servlet ،JavaServer Pages ،Java EL و وب سوکت را دارد. در ادامه مهمترین تفاوتهای وبسرور Apache و Tomcat مورد بررسی قرار گرفته است.
- Tomcat به طور خاص برای ارائه محتوا وب بر روی برنامههای جاوا ایجاد شده است. در حالی که Apache یک سرور HTTP همه منظوره است. با استفاده از ماژولهای مختلف میتوان وبسرور آپاچی را همراه با زبانهای برنامه نویسی مختلف همچون Perl، پایتون، PHP و سایر موارد استفاده کرد.
- Tomcat در مقایسه با وبسرور آپاچی کارایی کمتری دارد.
- Tomcat در مقایسه با آپاچی و سایر وبسرورها از امکان شخصیسازی کمتری برخوردار است. به عنوان مثال، برای اجرای وردپرس بهترین انتخاب یک سرور HTTP همه منظوره مانند Apache یا Nginx است.
چگونه برنامه نویسی php را یاد بگیریم؟
اگر قصد ورود به دنیای برنامه نویسی وب را دارید، زبان php بهترین گزینه برای ورود به این حوزه است. php پرکاربردترین و در عین حال محبوبترین زبان برنامه نویسی سمت سرور است که توسط طیف گستردهای از وبسایتها مورد استفاده قرار میگیرد. برای یادگیری این زبان برنامه نویسی در گام نخست باید اصول اولیه و مفاهیم پایه این زبان را یاد بگیرید. در گام بعدی برای اجرای کدهای php بدون نیاز به سرور واقعی نیاز است تا بر روی سیستمعامل خود یک نرمافزار شبیهساز وبسرور نصب کنید.
بعد از آشنایی با مقدمات زبان php باید با انجام تمرینها و پروژههای متعدد مهارت خود را در زمینه کار با این زبان برنامه نویسی افزایش دهید. به عنوان مثال، میتوانید یک وبلاگ شخصی را با استفاده از زبان php و پایگاه داده MySQL توسعه دهید. در گامهای بعدی میتوانید پروژههای پیچیدهتری همچون فروشگاه آنلاین، شبکه اجتماعی و سایر موارد را توسعه دهید.
خوشبختانه در پلتفرم فرادرس آموزشهای موضوع محور و پروژه محور متعددی در حوزه زبان برنامه نویسی php منتشر شده است. برای شروع یادگیری زبان برنامه نویسی php میتوانید فیلم آموزش برنامه نویسی PHP فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
به منظور ارتقا مهارتهای کدنویسی خود و انجام پروژههای برنامه نویسی مختلف با زبان PHP نیز دورههای زیر از مجموعه آموزش برنامه نویسی PHP فرادرس پیشنهاد میشود که لینک آنها در ادامه آورده شده است.
آموزش نصب آپاچی
برای نصب نرمافزارها و ابزارهای توسعه روشهای متعددی وجود دارد. در یک دستهبندی کلی روشهای نصب نرمافزار به دو دسته زیر تقسیم میشود.
- نصب از طریق فایل نصبی: یکی از ویژگیهای جذاب وبسرور متنباز آپاچی این است که هر کسی با توجه به محیط خود میتواند فایل نصبی جداگانهای برای این وبسرور ایجاد کند. این قابلیت به شرکتهای تولید کننده نرمافزار نظیر Debain ،Red Hat ،Suse ،FreeBSD و سایر فعالان این حوزه امکان میدهد تا محل نصب و نحوه پیکربندی آپاچی را با در نظر گرفتن سایر برنامههای نصب شده و سیستمعامل پایه شخصیسازی کنند.
- نصب از طریق کد منبع: فارغ از امکان نصب آپاچی از طریق فایل نصبی جداگانه با توجه به سیستمعامل مورد استفاده، همواره میتوان این وبسرور را از طریق کد منبع آن نیز نصب کرد. نصب آپاچی از طریق فایل منبع فرایندی مستقل از پلتفرم است و برای همه سیستمعاملها قابل استفاده است.
آپاچی یک برنامه کاملاً ماژولار است که مدیر سیستم میتواند عملکردهای مورد نیاز خود را انتخاب کرده و با توجه به آن ماژولهای مورد نیاز را نصب کند. تمام ماژولهای آپاچی به عنوان شی جداگانه در نظر گرفته میشوند و جدا از فایل اصلی آپاچی کامپایل میشوند. این رویکرد فرایند اضافه کردن، حذف و بروزرسانی ماژولها را بسیار آسان میکند. در ادامه این بخش از نوشته به این سوال پاسخ داده خواهد شد که نحوه نصب Apache چیست و چگونه میتوان این وبسرور را در سیستمعاملهای مختلف راهاندازی و اجرا کرد.
آموزش نصب آپاچی در لینوکس
توزیعهای مختلف لینوکس همچون Suse ،CentOs ،Fedora و Red Hat از ابزار RPM یا «Red Hat Package Manager» به عنوان ابزار مدیریت پکیچ استفاده میکنند. پیشتر در مطلب زیر از مجله فرادرس توزیعهای مختلف لینوکس به طور کامل معرفی شدهاند.
امکان نصب آپاچی از طریق این ابزار مدیریت پکیچ در توزیعهای مختلف لینوکس وجود دارد. برای شروع نصب آپاچی در لینوکس باید دستور زیر را در ترمینال وارد کنید.
1[root@amsterdam ~]# yum install httpd
در گام بعدی باید کد منبع آپاچی را با استفاده از دستور زیر به فایل rpm تبدیل کرد.
1[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2
برای تبدیل کد منبع آپاچی به فایل rpm باید پکیج-devel بر روی سرور نصب شود. بعد از تبدیل کد منبع آپاچی به فایل rpm با استفاده از دستور زیر میتوان آپاچی را نصب کرد.
1[root@amsterdam ~]# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
بعد از نصب آپاچی این وبسرور به صورت خودکار اجرا نمیشود. به منظور راهاندازی وبسرور آپاچی در توزیعهای لینوکسی CentOS، Fedora و Red Hat به ترتیب باید از دستورات زیر استفاده کرد.
1[root@amsterdam ~]# /usr/sbin/apachectl start
2
3[root@amsterdam ~]# service httpd start
4
5[root@amsterdam ~]# /etc/init.d/httpd start
آموزش نصب آپاچی در اوبونتو
نصب وبسرور آپاچی بر روی توزیعهای اوبونتو و دبیان با سایر توزیعهای لینوکس کمی تفاوت دارد. برای نصب آپاچی بر روی اوبونتو و دبیان در نخستین گام باید با استفاده از دستور زیر سیستم را بروزرسانی کرد.
سپس با وارد کردن دستور زیر در ترمینال لینوکس نصب آپاچی شروع خواهد شد.
1sudo apt-get install apache2
بعد از نصب آپاچی دستور زیر این وبسرور را اجرا خواهد کرد.
1sudo systemctl start apache2
به منظور بررسی وضعیت اجرای این وبسرور دستور زیر را باید در ترمینال لینوکس وارد کرد.
1sudo systemctl status apache2
در نهایت برای فعال کردن اجرای خودکار وبسرور آپاچی همزمان با راهاندازی سیستم باید از دستور زیر استفاده کرد.
1sudo systemctl enable apache2
آموزش نصب آپاچی در ویندوز
نصب آپاچی در ویندوز بسیار آسان است و تنها با طی کردن چند مرحله میتوان این وبسرور را بر روی ویندوز نصب کرد.
گام ۱: دانلود نسخه ویندوز وبسرور آپاچی
در گام نخست باید نسخه مربوط به ویندوز این وبسرور را از سایت رسمی آن دانلود کرد. لینک مربوط به صفحه دانلود وبسرور آپاچی در ادامه آورده شده است.
- لینک صفحه دانلود سایت آپاچی: «+»
گام ۲: اجرا فایل نصبی
بعد از دانلود فایل نصبی این وبسرور باید این فایل را تحت عنوان مدیر سیستم اجرا کرد.
گام ۳: دنبال کردن مراحل نصب
همانند نصب سایر نرمافزارها باید مراحل نصب وبسرور آپاچی را طبق توضیحات ارائه شده دنبال کرد.
آموزش نصب آپاچی در مک
برای نصب وبسرور آپاچی در سیستمعامل مک میتوان از ابزار مدیریت بسته Homebrew استفاده کرد. کاربران سیستمعامل مک با استفاده از این ابزار رایگان و متنباز میتوانند نرمافزارها و برنامههای مورد نیاز خود را بر روی این سیستمعامل نصب کنند. در ادامه این بخش نحوه نصب وبسرور آپاچی بر روی سیستمعامل مک با استفاده از ابزار Homebrew توضیح داده شده است.
گام ۱: نصب Homebrew
در گام نخست در صورت نصب نبودن Homebrew باید این ابزار را بر روی سیستمعامل نصب کرد. برای نصب این ابزار باید دستور زیر را در ترمینال مک وارد کنید.
1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
همچنین، امکان نصب Homebrew از طریق لینک زیر نیز امکان پذیر است.
- لینک دانلود Homebrew برای مک: «+»
گام ۲: نصب آپاچی
با وارد کردن دستور زیر در ترمینال سیستمعامل مک فرایند نصب آپاچی شروع خواهد شد.
گام ۳: راهاندازی سرویس آپاچی
بعد از نصب وبسرور آپاچی با وارد کردن دستور زیر در ترمینال مک این وبسرور راهاندازی و شروع به کار خواهد کرد.
1brew services start httpd
گام ۴: بررسی اجرا بودن وب سرویس
بعد از راهاندازی وبسرور آپاچی با وارد کردن دستور زیر در ترمینال میتوان از وضعیت اجرای این وبسرور اطلاع پیدا کرد.
نصب آپاچی از طریق پکیجهای All in One
در پاسخ به این سوال که بهترین روش برای نصب Apache چیست باید عنوان کرد که یکی از آسانترین روشها برای نصب وبسرور آپاچی استفاده از پکیجهای همهکارهای است که چندین ابزار مختلف را در قالب یک فایل نصبی ارائه میدهند. به عنوان مثال، نرمافزار «زمپ» (XAMPP) به عنوان یک ابزار شبیهساز وبسرور چندین سرویس کاربردی را به همراه وب سرویس آپاچی در قالب یک پکیج ارائه میدهد. علاوه بر این، ابزار نرمافزار WAMP SERVER نیز موجود است که همانند این ابزار نصب سرویسهای مختلف را امکان پذیر میکند. برای یادگیری بیشتر در خصوص XAMPP و نحوه نصب آن میتوانید فیلم آموزش رایگان نصب WAMP و XAMPP فرادرس را مشاهده کنید.
میزبانی مجازی در آپاچی چیست؟
وبسرور آپاچی توانایی میزبانی از چندین وبسایت یا به عبارت بهتر میزبانی از چندین دامنه مختلف را در یک سرور فیزیکی دارد. در این شرایط برای هر وبسایت نیازی به سرور جداگانه و نرمافزار آپاچی نیست. این قابلیت در وبسرور آپاچی تحت عنوان «میزبانی مجازی» (Virtual Host | VHost) شناخته میشود.
به این نکته نیز باید توجه داشت که برای میزبانی از هر دامنه مجزا بر روی وبسرور باید ورودی جداگانهای در فایل پیکربندی آپاچی وارد کرد. میزبانی مجازی در وبسرور آپاچی به دو شکل زیر قابل پیادهسازی است.
- «میزبانی مجازی مبتنی بر نام» (Name-based Virtual Host)
- «میزبانی مجازی مبتنی بر آدرس» (Adress-based Virtual Host)
در ادامه این بخش یاد خواهیم گرفت که انواع میزبانی مجازی در Apache چیست و نحوه پیادهسازی آنها نیز توضیح داده خواهد شد.
میزبانی مجازی مبتنی بر نام در وبسرور آپاچی
میزبانی مجازی مبتنی بر نام برای میزبانی چندین سایت مجازی با آدرس IP یکسان مورد استفاده قرار میگیرد. تصویر زیر نحوه کار میزبانی مجازی مبتنی بر نام در وبسرور آپاچی را نشان میدهد.
به منظور پیکربندی میزبانی مجازی مبتنی بر نام باید آدرس IP را برای تمام وبسایتهای دریافت کننده درخواستهای آپاچی تنظیم کنید. با استفاده از دستور NameVirtualHost در فایل پیکربندی آپاچی این کار قابل انجام است. قطعه کد زیر نحوه پیکربندی میزبانی مجازی مبتنی بر نام را در وبسرور آپاچی نشان میدهد.
1NameVirtualHost *:80
2
3<VirtualHost 192.168.0.108:80>
4
5ServerAdmin [email protected]
6
7DocumentRoot /var/www/html/example1.com
8
9ServerName www.example1.com
10
11</VirtualHost>
12
13<VirtualHost 192.168.0.108:80>
14
15ServerAdmin [email protected]
16
17DocumentRoot /var/www/html/example2.com
18
19ServerName www.example2.com
20
21</VirtualHost>
با توجه به نیاز میتوان به تعداد دلخواه هاست مجازی به وبسرور آپاچی اضافه کرد.
میزبانی مجازی مبتنی بر آدرس در وبسرور آپاچی
به منظور راهاندازی میزبانی مجازی مبتنی بر IP به بیش از یک آدرس IP نیاز است که بر روی سرور پیکربندی شود. بنابراین، تعداد میزبانی مجازی در آپاچی به تعداد آدرس IP پیکربندی شده بر روی سرور بستگی دارد. به عنوان مثال، اگر سرور دارای ۱۰ عدد آدرس IP باشد، آنگاه میتوان ۱۰ میزبانی مجازی مبتنی بر آدرس IP در وبسرور آپاچی ایجاد کرد. تصویر زیر نحوه عملکرد میزبانی مجازی مبتنی بر آدرس IP در وبسرور آپاچی را نشان میدهد.
در تصویر بالا به هر کدام از وبسایتهایexample1.com وexample2.com آدرسهای IP جداگانهای اختصاص داده شده است. قطعه کد زیر نحوه پیکربندی میزبانی مجازی مبتنی بر آدرس IP را در وبسرور آپاچی نشان میدهد.
1Listen 192.168.0.100:80
2
3<VirtualHost 192.168.10.108:80>
4
5ServerAdmin [email protected]
6
7DocumentRoot /var/www/html/example1.com
8
9ServerName www.example1.com
10
11</VirtualHost>
12
13<VirtualHost 192.168.10.109:80>
14
15ServerAdmin [email protected]
16
17DocumentRoot /var/www/html/example2.com
18
19ServerName www.example2.com
20
21</VirtualHost>
چگونه میتوان فایل های PHP را بر روی وبسرور آپاچی اجرا کرد؟
به منظور اجرای فایلهای PHP بر روی وبسرور آپاچی باید قابلیتmod_php بر روی سرور فعال باشد. این قابلیت به وبسرور آپاچی امکان میدهد تا فایلهای PHP را تفسیر کند. کنترلرهای PHP در وبسرور آپاچی کدهای PHP را تفسیر میکنند و خروجی را در قالب سند HTML به وبسرور ارسال میکنند. در صورت فعال بودن قابلیتmod_php در وبسرور آپاچی فایلی با نامphp.conf در مسیر/etc/httpd/conf.d/ خواهید داشت. با وارد کردن دستور زیر میتوان فعال بودن قابلیتmod_php در وبسرور آپاچی را بررسی کرد.
1httpd -M | grep "php5_module"
خروجی حاصل از اجرای دستور بالا نیز به صورت زیر خواهد بود.
PHP Handler های آپاچی کدامند؟
شاید برای شما نیز این پرسش به وجود آمده باشد که منظور از PHP Handler در Apache چیست. برای پاسخ به این سوال باید عنوان کرد که وبسرور آپاچی برای اجرا اسکریپتهای نوشته شده به زبان PHP از ماژولهای خاصی استفاده میکند. در واقع، آپاچی بدون داشتن این ماژولها امکان شناسایی دستورات PHP را نخواهد داشت. به این ماژولها در وبسرور آپاچی در اصطلاح PHP Handler گفته میشود. در وبسرور آپاچی ۴ نوع PHP Handler مختلف وجود دارد که در ادامه آورده شدهاند.
- mod_php
- CGI
- FastCGI
- suPHP
در ادامه این بخش یاد میگیریم که کاربرد انواع PHP Handler در وبسرور Apache چیست و هر کدام در چه شرایطی مورد استفاده قرار میگیرند.
mod_php
mod_php قدیمیترین PHP Handler موجود است. این ماژول PHP را به بخشی از وبسرور آپاچی تبدیل میکند و هیچ گونه فرایند PHP خارجی را فراخوانی نمیکند. ماژول mod_php به صورت پیشفرض در هر مخزن توزیع لینوکس نصب میشود. بنابراین، فعالسازی این ماژول بسیار آسان است.
CGI
با استفاده از ماژول CGI وبسرور آپاچی اسکریپتهای PHP را به عنوان کاربر دامنه اجرا میکند. از جمله نقاط ضعف این ماژول به سرعت پایین و عدم ذخیرهسازی کدهای PHP میتوان اشاره کرد.
FastCGI
این ماژول درخواستهای PHP را با سرعت بسیار زیادی اجرا میکند. از سوی دیگر این ماژول فضای بیشتری از حافظه رم را نیز به خود اختصاص میدهد. در صورت استفاده از ماژول FastCGI به عنوان PHP Handler میتوان چندین نسخه متفاوت از PHP را برای استفاده توسط حسابهای کاربری مختلف بر روی سرور پیکربندی کرد.
suPHP
این ماژول کدهای PHP را به عنوان مالک دامنه اجرا میکند. علاوه بر این، suPHP در سرورهای cPanel به گونهای پیکربندی شده است که اجازه اجرای فایلهایی با مجوزهای نا ایمن را نمیدهد. از جمله نکات منفی این وبسرور به سرعت پایین و مصرف بالای حافظه نهان میتوان اشاره کرد.
روش اجرای فایل های Ruby بر روی وبسرور Apache چیست؟
وبسرور Apache امکان اجرای کدهای نوشته شده به زبان برنامه نویسی Ruby را نیز دارد. برای فعالسازی قابلیت اجرای کدهای Ruby در وبسرور آپاچی باید کد زیر را به فایل پیکربندی آپاچی اضافه کرد.
1LoadModule ruby_module modules/mod_ruby.so
قطعه کد بالا ماژول Ruby را در وبسرور آپاچی فعال میکند. به طور کلی برای افزودن قابلیتهای مختلف به وبسرور آپاچی باید ماژول مربوط به آنها را به وبسرور اضافه کرد.
راهکار های افزایش امنیت وبسرور Apache چیست؟
ایمن سازی وبسرور امری بسیار مهم و حیاتی است. افزایش امنیت وبسرور بدین معنی است که ضمن محافظت از اطلاعات موجود در سرور، دسترسی دیگران به این اطلاعات را نیز محدود کنید. از جمله مهمترین راهکارهای افزایش امنیت وبسرور آپاچی به موارد زیر میتوان اشاره کرد.
- مخفی کردن نسخه آپاچی و اطلاعات سیستمعامل
- غیرفعال کردن فهرست دایرکتوری
- غیرفعال کردن ماژولهای غیر ضروری
- محدود کردن دسترسی به فایلهای خارج از فهرست اصلی وب
- استفاده از mod_evasive برای مقابله با حملات Dos
- استفاده از mod_security
- محدود کردن اندازه درخواستها
در ادامه این بخش هر کدام از راهکارهای ارائه در بالا را به طور کامل مورد بررسی قرار خواهیم داد.
مخفی کردن نسخه آپاچی و اطلاعات سیستمعامل
وبسرور آپاچی در صورت بروز خطا نسخه خود و نام سیستمعامل مورد استفاده توسط سرور را در پیام خطا نمایش میدهد. تصویر زیر نحوه صدور خطا توسط وبسرور آپاچی را نشان میدهد.
هکرها با استفاده از این اطلاعات میتوانند از آسیب پذیریهای امنیتی یا ضعفهای موجود در نسخه خاص سیستمعامل یا سرور استفاده کرده و حملات خود را طرحریزی کنند. به منظور جلوگیری از نمایش این اطلاعات توسط وبسرور آپاچی باید تغییراتی را در فایل پیکربندی آپاچی اعمال کرد. با وارد کردن دستور زیر میتوان به فایل پیکربندی دسترسی داشت.
1vim /etc/httpd/conf/httpd.conf
با تغییر مقدارserver signature در فایل پیکربندی بهOff دیگر این اطلاعات توسط وبسرور نمایش داده نخواهد شد. برای این منظور دستور زیر را در ترمینال باید وارد کرد.
1ServerSignature Off
2
3ServerTokens Prod
در دستور بالا مقدارServerTokens نیز برابرProd قرار داده شده است که به وبسرور اطلاع میدهد که فقط آپاچی را برگرداند و نسخه سیستمعامل را نمایش ندهد. بعد از اصلاح فایل پیکربندی باید وبسرور آپاچی را مجدداً راهاندازی کرد تا تغییرات اعمال شوند. با وارد کردن دستور زیر وبسرور آپاچی راهاندازی خواهد شد.
بعد از انجام تغییرات بالا در صورت بروز خطا اطلاعات زیر توسط وبسرور در مرورگر برگشت داده خواهد شد.
همان طور که در تصویر بالا دیده میشود، دیگر اطلاعات مربوط به وبسرور و نسخه سیستمعامل در صورت بروز خطا نمایش داده نمیشود. بنابراین، با انجام مراحل بالا اولین گام در جهت افزایش امنیت وبسرور آپاچی برداشته شد.
غیرفعال کردن فهرست دایرکتوری
در صورتی که فایل index در ریشه دایرکتوری وجود نداشته باشد، آنگاه به صورت پیشفرض وبسرور آپاچی تمام محتوا و فایلهای موجود در ریشه دایرکتوری را نمایش خواهد داد. تصویر زیر فهرست تمام فایلهای موجود در ریشه دایرکتوری را نمایش میدهد.
با انجام تغییرات در فایل پیکربندی آپاچی میتوان نمایش این اطلاعات را غیرفعال کرد. برای این منظور باید مقدار زیر را در فایل پیکربندی وارد کرد.
1<Directory /var/www/html>
2
3 Options -Indexes
4
5</Directory>
بعد از انجام تغییرات فوق خروجی در مرورگر به صورت زیر نمایش داده خواهد شد.
بنابراین، دیگر فهرست فایلها و اطلاعات موجود در ریشه دایرکتوری در خروجی مرورگر نمایش داده نخواهد شد.
غیر فعال کردن ماژولهای غیر ضروری
یکی دیگر از راههای افزایش امنیت وبسرور آپاچی غیر فعال کردن تمام ماژولهای غیر ضروری است. با وارد کردن دستور زیر در ترمینال آپاچی میتوان فهرست ماژولهای فعال موجود در فایل پیکربندی وبسرور آپاچی را مشاهده کرد.
1[root@amsterdam ~]#httpd –M
2
3perl_module (shared)
4
5php5_module (shared)
6
7proxy_ajp_module (shared)
8
9python_module (shared)
10
11ssl_module (shared)
بسیاری از ماژولهای فعال در وبسرور را میتوان غیرفعال کرد. به عنوان مثال، در صورت مشاهده ماژولهایmod_imap ،mod_include ،mod_info ،mod_userdir ،mod_autoindex در فایل پیکربندی میتوان آنها را غیرفعال کرد، زیرا این ماژولها به ندرت توسط وبسرورها مورد استفاده قرار میگیرند. برای غیر فعال سازی یک ماژول کافی است در فایل پیکربندی آپاچی کد مربوط به بارگزاری آن ماژول را به حالت کامنت درآورد. قطعه کد زیر نحوه غیرفعال سازی ماژولauth_digest را نشان میدهد.
1vi /etc/httpd/conf/httpd.conf
2
3#LoadModule auth_digest_module modules/mod_auth_digest.so
بعد از انجام تغییرات فوق فایل پیکربندی را باید ذخیره کرد. در نهایت نیز باید وبسرور آپاچی را مجدداً راهاندازی کرد.
1/etc/init.d/httpd restart
محدود کردن دسترسی به فایلهای خارج از فهرست اصلی وب
به منظور افزایش امنیت وبسرور باید دسترسی به فایلهای خارج از فهرست اصلی وب را محدود کرد. برای این منظور باید کدهای زیر را در فایل پیکربندی وبسرور وارد کرد.
1<Directory/>
2
3Options None
4
5AllowOverride None
6
7Order deny,allow
8
9Deny from all
10
11</Directory>
بعد از محدود کردن دسترسی از خارج دیگر نمیتوان به فایلهای موجود در پوشههای وبسرور از خارج دسترسی پیدا کرد. تصویر زیر این خطا را نشان میدهد.
استفاده از mod_evasive برای مقابله با حملات Dos
حمله «انکار سرویس» (Denial Of Service | Dos) یکی از حملات رایج در وبسرورها است. در این نوع حمله مهاجم خرابکار در عملکرد عادی وبسرور وقفه ایجاد میکند. در نتیجه، وبسرور در ارائه خدمات به کاربران دچار اختلال میشود. پیشتر در مطلب زیر از مجله فرادرس انواع حملات DoS مورد بررسی قرار گرفته است.
به منظور محافظت از وبسرور آپاچی در برابر این نوع حملات باید ماژولmod_evasive را فعال کرد. این ماژول ضمن شناسایی حمله DoS از آسیب رسیدن به وبسرور نیز جلوگیری میکند. ماژولmod_evasive را از طریق لینک زیر میتوانید دانلود کنید.
- لینک دانلود ماژولmod_evasive : «+»
استفاده از mod_security
به منظور ارتقا امنیت وبسرور آپاچی پیشنهاد میشود که از ماژولmod_security نیز استفاده کنید. این ماژول عملکردی مشابه «دیوار آتش» (Firewall) در وبسرور آپاچی دارد و امکان نظارت بر ترافیک ورودی وبسرور را فراهم میکند. علاوه بر این، از حملات Brute Force به وبسرور نیز جلوگیری به عمل میآورد. ماژولmod_security از طریق مدیر بسته پیشفرض نسخه مورد استفاده قابل نصب است.
محدود کردن اندازه درخواستها
یکی دیگر از راههای موثر برای افزایش امنیت وبسرور آپاچی محدود کردن اندازه درخواستهای ورودی به وبسرور است. وبسرور آپاچی به صورت پیشفرض هیچ گونه محدودیتی در اندازه کل درخواستهای ورودی http ندارد که همین مورد میتواند منجر به حملات DoS شود. با تعیین مقدار برای تگLimitRequestBody در فایل پیکربندی آپاچی میتوان اندازه درخواست http در وبسرور آپاچی را محدود کرد. قطعه کد زیر اندازه هر درخواست http در وبسرور آپاچی به ۵۱۲ مگابایت محدود میکند.
1<Directory "/var/www/html/uploads">
2
3 LimitRequestBody 512000
4
5</Directory>
میتوان با توجه به نیاز اندازه هر درخواست http به وبسرور آپاچی را بین ۰ تا ۲ گیگابایت تعیین کرد.
تاریخچه Apache
در حالی که بسیاری از منابع تاریخچه شکلگیری وبسرور آپاچی را اولین عرضه رسمی آن در سال ۱۹۹۵ میلادی (۱۳۷۴ شمسی) میدانند، اما ریشههای پیدایش این وبسرور محبوب به چندین سال قبل از این تاریخ بر میگردد. ایده ایجاد وبسرور آپاچی در سالهای نخستین دهه ۱۹۹۰ میلادی (۱۳۶۹ شمسی) توسط «راب مک کول» (Rob McCool) در مرکز ملی کاربردهای ابر رایانه دانشگاه ایلینوی شکل گرفت.
در سال ۱۹۹۴ میلادی (۱۳۷۳ شمسی) راب مک کول از گروه توسعه وبسرور آپاچی خارج شد و پس از او توسعه آپاچی توسط سایر اعضای گروه ادامه پیدا کرد. سپس، در بهار سال ۱۹۹۵ میلادی آنها گروه آپاچی را تشکیل دادند و در ماه «آوریل» (April) همان سال وبسرور آپاچی به صورت رسمی منتشر شد. از آن تاریخ تا کنون وبسرور آپاچی به رشد خود ادامه داد و امروز توانسته به محبوبترین وبسرور موجود در جهان تبدیل شود. طبق اعلام اعضای بنیاد آپاچی نام این وبسرور به جهت احترام از نام قبیلهای بومی در آمریکا گرفته شده است که مهارت زیادی در تاکتیکهای جنگی داشتند.
چگونه یک وب سایت را مدیریت کنیم؟
مدیریت یک وب سایت یک فرایند چند مرحلهای است. برای داشتن یک وب سایت کارامد باید با توجه به نیاز و میزان ترافیک ورودی سایت یک وبسرور مناسب انتخاب کنید. علاوه بر این، باید مسائل امنیتی مربوط به وبسایت را به صورت مرتب بررسی کنید تا وبسایت خود را در برابر هک و سایر تهدیدهای امنیتی محافظت کنید. در کنار این موارد باید محتوای وبسایت را با استفاده از کلمات کلیدی مناسب و سایر تکنیکهای سئو برای موتورهای جستجو بهینهسازی کنید.
در پلتفرم فرادرس آموزشهای متعددی در زمینه ابزارهای مدیریت وبسایت منتشر شده است. برای دسترسی به مجموعه آموزشهای ابزار مدیریت وبسایت فرادرس میتوانید از لینک زیر استفاده کنید.
در ادامه برخی از عناوین موجود در فهرست آموزشهای مدیریت وبسایت فرادرس به صورت پیشنهادی ارائه شده است.
جمعبندی
Apache خود را به عنوان یک نرمافزار وبسرور قدرتمند، قابل اعتماد و منعطف به همگان اثبات کرده است. نقش و اهمیت این وبسرور در دنیای دیجیتال غیرقابل انکار است، به طوری که امروزه بخش قابل توجهی از وبسایتها در سراسر جهان از این وبسرور استفاده میکنند. با توجه به متنباز بودن آپاچی و توسعه پیوسته این ابزار میتوان گفت که سازگاری آن به نیازهای روز در دنیای وب تضمین شده است. وبسرور Apache با ویژگیهایی همچون معماری ماژولار، مستندات فراوان و سازگاری با سیستمعاملهای مختلف برای مدیریت طیف گستردهای از وب اپلیکیشنها و وب سرویسها مناسب است. در این مطلب از مجله فرادرس سعی شد به این سوال پاسخ داده شود که Apache چیست و چه کاربردهایی دارد.
در این مطلب به طور کامل گفتیم که Apache چیست و پیچیدگیهای وبسرور آپاچی از معماری و ویژگیهای آن گرفته تا نصب و پیکربندی آن را بررسی کردیم. علاوه بر این در این مطلب یاد گرفتیم که روشهای افزایش امنیت وبسرور Apache چیست و چگونه میتوان این وبسرور را در برابر تهدیدات مختلف ایمن کرد. امیدواریم با مطالعه این مطلب درک عمیقتری از نحوه عملکرد وبسرور Apache و اهمیت آن در دنیای وبسرور به دست آورده باشید.
source