مقدمه:
یک مجموعه LAMP یا یک مجموعه نرمافزاری لینوکس، آپاچی، مایاسکیوال و پیاچپی، یک اتحاد از چهار فناوری نرمافزاری مختلف است که توسعهدهندگان برای ایجاد وبسایتها و برنامههای تحت وب از آن استفاده میکنند. LAMP یک نشانه مخفف است که از سیستمعامل لینوکس، سرور وب آپاچی، سرور پایگاه داده MySQL و زبان برنامهنویسی PHP تشکیل شده است. تمام این چهار تکنولوژی به عنوان نرمافزارهای متنباز شناخته میشوند، به این معنا که توسط جامعه حمایت و به صورت آزاد برای استفاده عمومی در دسترس هستند. توسعهدهندگان از مجموعه LAMP برای ایجاد، میزبانی و نگهداری محتوای وب استفاده میکنند. این یک راهحل محبوب است که بسیاری از وبسایتهای معمولی که امروزه استفاده میکنید، توسط آن تغذیه میشوند.
LAMP چرا اهمیت دارد؟
توسعهدهندگان وب به دلایل زیر از LAMP استفاده میکنند:
۱. هزینه:
تمام فناوریهای LAMP متنباز هستند که به این معناست که هر توسعهدهنده یا شرکتی میتواند از آنها استفاده کند بدون این که مجبور به پرداخت هزینههای لایسنس شود. به جای خرید اجزای خاص پشته، میتوانید سیستمعامل، سرور وب، پایگاه داده و زبان اسکریپت را به صورت رایگان دانلود کنید. این موجب کاهش هزینههای توسعه برنامههای وب میشود.
۲. کارایی:
راهاندازی یک پشته توسعه وب جدید نیازمند آزمون دقیق فریمورکها، ماژولها، کتابخانهها و ابزارهای مختلف است. از سوی دیگر، LAMP یک راهحل توسعه وب آزموده و تستشده است. توسعهدهندگان وب میتوانند توسعه برنامه را اولویت بندی کرده و سرعت دهند تا بر روی چیزی که ساخته میشود تمرکز کنند به جای آن که به چگونگی ساخته میشود.
۳. نگهداری:
کارشناسان نرمافزار از سراسر جهان به توسعه فناوریهای LAMP با تغییر دادن، نظر دادن و بررسی کدهای منبع عمومی کمک میکنند. آنها به طور منظم فناوریها را نگهداری و بهروزرسانی میکنند تا همیشه مناسب و ایمن باقی بمانند.
۴. پشتیبانی:
تکنولوژیهای متنباز محبوب مانند پشته LAMP حمایت جامعه بزرگ و جهانی دارند. بنابراین، کاربران پشته LAMP میتوانند به راحتی اطلاعات را در انجمنهای عمومی IT پیدا کنند. توسعهدهندگان وب میتوانند به کدهای نمونه ارجاع دهند یا از افزونههای تستشده ایجاد شده توسط جامعه متنباز استفاده کنند.
۵. انعطافپذیری:
پشته LAMP انعطاف و قابلیت اطمینان را به توسعهدهندگان وب میدهد. در حالی که معماری LAMP مؤلفههای نرمافزاری را برای هر لایه مشخص میکند، توسعهدهندگان میتوانند آنها را به دلخواه تغییر دهند. به عنوان مثال، میتوانند از یک سیستمعامل دیگر به جای لینوکس به عنوان پایه پشته استفاده کنند.
استفاده از مجموعه LAMP چیست؟
مجموعه LAMP برای توسعه بخش پشتی یا سمت سرور استفاده میشود. یک برنامه پشتی یا برنامه سمت سرور، نرمافزاری است که در یک محیط از دید کاربران پنهان اجرا میشود. برنامههای پشتی شامل موارد زیر هستند:
- نرمافزار پردازش داده
- اجزای پایگاه داده
- منطق تجاری در کد
- رابط برنامهنویسی (API) برای ارتباط با برنامههای دیگر
صفحهوبی که در مرورگر شما ظاهر میشود، به برنامهی جلوی صفحه گفته میشود. هنگام تعامل با صفحه، مانند کلیک بر روی یک دکمه، مرورگر شما با برنامه پشتی ارتباط برقرار میکند تا اطلاعات مورد نیاز را بازیابی کند.
توسعهدهندگان از مجموعه LAMP برای ایجاد محتوای وب هم استاتیک و هم دینامیک استفاده میکنند.
- صفحات وب استاتیک: اطلاعات صفحات وب استاتیک از سرور وب برای همه کاربران یکسان است. به عنوان مثال، آدرس در وبسایت یک شرکت مثالی از محتوای استاتیک است. توسعهدهندگان وب صفحات وب استاتیک را با زبانهای برنامهنویسی HTML و CSS ایجاد میکنند و آنها را به عنوان فایلها در برنامه سرور وب ذخیره میکنند.
- صفحات وب دینامیک: صفحات وب دینامیک شامل اطلاعاتی هستند که به تغییراتی بستگی دارند که کاربر صفحه یا برنامه وب را مشاهده میکند. به عنوان مثال، پیام وبسایتی که بر اساس مکان شما تغییر میکند، محتوای دینامیک است. سرور وب از طریق پردازش منطق تجاری یا بازیابی دادهها، وبسایتهای دینامیک را ارائه میدهد.
معماری LAMP چیست؟
یک ارتباط نرمافزاری، مجموعهای از ابزارها، کتابخانهها، زبانهای برنامهنویسی و فناوریهاست که برای ساختن، مدیریت و اجرای یک برنامه استفاده میشود. این ارتباط نرمافزاری از مؤلفههای نرمافزاری تشکیل شده است که به نحوهای مختلفی از جمله نمایش بصری، پایگاه داده، شبکه و امنیت، برنامه را پشتیبانی میکنند.
به همین ترتیب، معماری LAMP از چهار فناوری نرمافزاری تشکیل شده است که به همکاری با یکدیگر در پس زمینهای ایجاد یک برنامه وب عملی میپردازند. این معماری توضیح میدهد چگونه هر یک از این فناوریهای توسعه وب با یکدیگر در یک سرور کامپیوتر ارتباط برقرار میکنند. معماری LAMP شامل لایههای زیر است:
- لینوکس (Linux):
لینوکس یک سیستم عامل منبعباز است که شما میتوانید آن را نصب و پیکربندی کنید تا با نیازهای مختلف برنامه سازگار شود. لینوکس در لایه اول مجموعه LAMP قرار دارد و سایر مؤلفهها را در لایههای بالاتر پشتیبانی میکند. - آپاچی (Apache):
آپاچی یک وب سرور منبعباز است که لایه دوم مجموعه LAMP را تشکیل میدهد. ماژول آپاچی فایلهای وبسایت را ذخیره کرده و با استفاده از پروتکل HTTP، اطلاعات را با یک مرورگر به اشتراک میگذارد. به عنوان مثال، زمانی که یک مرورگر درخواست یک صفحه وب را میدهد، سرور HTTP آپاچی کارهای زیر را انجام میدهد:
- درخواست را دریافت میکند
- درخواست را پردازش کرده و فایل صفحه مورد نیاز را پیدا میکند
- اطلاعات مرتبط را به مرورگر ارسال میکند
- مایاسکیوال (MySQL):
مایاسکیوال یک سیستم مدیریت پایگاه داده رابطهای منبعباز است و لایه سوم مجموعه LAMP را تشکیل میدهد. مدل LAMP از MySQL برای ذخیره، مدیریت و پرسوجوی اطلاعات در پایگاه دادههای رابطهای استفاده میکند. به عنوان مثال، توسعهدهندگان اطلاعات برنامه مانند رکوردهای مشتریان، فروش و موجودی را در MySQL ذخیره میکنند. هنگامی که کاربر به دنبال اطلاعاتی میگردد، سرور وب درخواست را از دادههای ذخیره شده در MySQL بازیابی میکند. کوئری به دستورات خاصی جهت کنترل داده در یک پایگاه داده رابطهای با استفاده از زبان SQL اشاره دارد. - پیاچپی (PHP):
پیاچپی که مخفف PHP: Hypertext Preprocessor است، لایه چهارم و آخرین مجموعه LAMP را تشکیل میدهد. این یک زبان اسکریپتی است که به وبسایتها اجازه اجرای پردازشهای دینامیک را میدهد. یک پردازش دینامیک شامل اطلاعاتی است که در نرمافزار به طور مداوم تغییر میکند. توسعهدهندگان وب زبان برنامهنویسی PHP را در HTML جاسازی میکنند تا اطلاعات به روز یا زمان واقعی را در وبسایتها نمایش دهند. آنها از PHP برای اجازه به سرور وب، پایگاه داده و سیستم عامل استفاده میکنند تا هماهنگی در پردازش درخواستها از مرورگرها را فراهم سازند
مقایسه HTML با PHP:
توسعهدهندگان وب از HTML برای توسعه جلوی صفحه مانند طراحی لیوت صفحات وب استفاده میکنند. در عین حال، آنها از PHP برای تعیین رفتار برخی از مؤلفهها هنگامی که کاربران یک صفحه وب را بارگیری میکنند، استفاده میکنند. به عنوان مثال، توسعهدهندگان وب لیوت گرافیکی یک کاتالوگ محصولات آنلاین را با HTML طراحی میکنند. سپس از کد PHP برای بازیابی قیمت آخرین محصول از سرور پشتیبانی میکنند.
چگونگی عملکرد معماری LAMP چگونه است؟
برنامههای وب از یک معماری LAMP برای پاسخ به درخواستهای مرورگرهای وب استفاده میکنند. وب سرور Apache و پایگاه داده MySQL روی سیستم عامل Linux اجرا میشوند و با استفاده از PHP ارتباط برقرار میکنند. هنگامی که یک صفحه وب را در یک مرورگر باز میکنید، معماری LAMP از فرآیند زیر عبور میکند.
۱. درخواستها را دریافت میکند:
وب سرور Apache درخواست ورودی را از مرورگر دریافت میکند. اگر درخواست برای بارگیری یک فایل استاتیک باشد، سرور Apache به طور مستقیم با محتوای مناسب به درخواست پاسخ میدهد. اگر درخواست برای محتوای پویا باشد، سرور Apache درخواست را به مؤلفه PHP منتقل میکند. مؤلفه PHP فایل PHP مناسب را که قادر به پردازش درخواست است را پیدا کرده و بارگذاری میکند.
۲. درخواستها را پردازش میکند:
فایل PHP حاوی توابع PHP است که کدهایی برای تولید محتوای پویا هستند. مؤلفه PHP توابع PHP را پردازش میکند، مانند تبدیل واحدهای اندازهگیری یا ایجاد نمودار فروش. برخی از توابع PHP ممکن است به اطلاعاتی از پایگاه داده نیاز داشته باشند. در چنین مواردی، کد PHP اطلاعات ذخیره شده را از پایگاه داده بازیابی کرده و از آن برای پردازش تابع استفاده میکند.
۳. پاسخها را ارسال میکند:
PHP نتایج محاسبات خود را به سمت سرور وب در قالب HTML ارسال میکند. در همین زمان، اطلاعات جدیدی را نیز در پایگاه داده MySQL ذخیره میکند. سرور HTTP Apache نتایج HTML پویا را به مرورگر کاربر ارسال میکند.