آموزش نحوه نصب LEMP stack در اوبونتو ۲۲.۰۴

آموزش نحوه نصب LEMP stack در اوبونتو ۲۲.۰۴

انتخاب زیرساخت نرم‌افزاری پایدار و سریع برای میزبانی وب سایت‌های پویا و اپلیکیشن‌های تحت وب، اولین گام در مدیریت سرور لینوکسی محسوب می‌شود. تفاوت کلیدی مجموعه LEMP با LAMP، استفاده از وب سرور Nginx است که باعث می‌شود نصب LEMP stack برای پروژه‌هایی که نیاز به مدیریت ترافیک بالا دارند، اولویت پیدا کند. این معماری، منابع سرور را بهینه‌تر مصرف کرده و سرعت پاسخ‌دهی را افزایش می‌دهد. در این راهنما، تمام مراحل پیاده‌سازی و پیکربندی صحیح این محیط را روی اوبونتو ۲۲.۰۴ بررسی می‌کنیم. با ما همراه باشید تا نحوه نصب LEMP stack را به صورت عملی بیاموزید و سرور خود را آماده کنید.

LEMP استک چیست؟

LEMP استک در واقع جایگزینی برای استک محبوب LAMP محسوب می‌شود. هر دوی این پشته‌های نرم‌افزاری شامل سیستم عامل لینوکس، یک وب سرور، پایگاه داده و یک زبان برنامه‌نویسی هستند که امکان میزبانی وب‌اپلیکیشن‌ها و ایجاد یک محیط برنامه‌نویسی کامل را فراهم می‌کنند. تمامی اجزای اصلی این دو استک از طریق مخازن نرم‌افزاری پیش‌فرض اوبونتو قابل نصب هستند.

تفاوت اصلی اینجاست که در LAMP از آپاچی استفاده می‌شود، اما در LEMP استک، وب سرور Nginx جایگزین آن شده. به همین دلیل است که از حرف E (اول کلمه Engine-x) در مخفف LEMP استفاده می‌شود. اگرچه در اکثر موارد از دیتابیس MariaDB استفاده می‌شود، اما امکان استفاده از MySQL نیز وجود دارد. همچنین در کنار PHP، گاهی از زبان‌هایی مثل پایتون یا پرل نیز استفاده می‌شود، اما تمرکز ما در اینجا روی PHP است.

اجزای تشکیل‌دهنده این استک عبارتند از:

  • Linux: اوبونتو یکی از توزیع‌های محبوب لینوکس است که کتابخانه‌های نرم‌افزاری خاص خود را دارد. اگر یک سرور مجازی لینوکس تهیه کرده‌اید، این سیستم عامل پایه و اساس نصب سایر اجزا خواهد بود.
  • Nginx Server: این نرم‌افزار یکی از محبوب‌ترین وب سرورهای متن‌باز جهان شناخته می‌شود. برخلاف آپاچی که پردازش محور است، Nginx از معماری رویداد محور استفاده می‌کند. این ویژگی باعث می‌شود Nginx سریع‌تر و کارآمدتر از آپاچی باشد، هرچند که از پیکربندی سایت به سایت (مشابه .htaccess) پشتیبانی نمی‌کند. استفاده از این وب سرور دلیل اصلی محبوبیت نصب LEMP stack به شمار می‌رود.
  • MariaDB: یک سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS) و انشعابی از MySQL است که توسط بنیاد MariaDB توسعه یافته و کاملا رایگان است. برخلاف MySQL که تحت مالکیت اوراکل قرار دارد، MariaDB به فلسفه متن‌باز پایبندتر است. این دیتابیس از همان دستورات SQL استفاده می‌کند اما ویژگی‌های جدیدتری دارد و از نظر عملکرد و کارایی برتر از MySQL در نظر گرفته می‌شود.
  • PHP: زبان برنامه‌نویسی سمت سرور که کدهای آن درون فایل‌های HTML قرار می‌گیرند و توسط پردازنده PHP در اوبونتو تفسیر می‌شوند. این زبان به صورت رایگان قابل نصب است و به خوبی با سایر اجزای LEMP روی یک سرور مجازی کار می‌کند.

پیش‌نیازهای نصب LEMP روی سرور اوبونتو

قبل از شروع مراحل آموزش نصب LEMP، مطمئن شوید که موارد زیر آماده باشند:

  • یک سرور با سیستم عامل اوبونتو ۲۲.۰۴
  • یک یوزر با دسترسی sudo (غیر از یوزر root)
  • فعال بودن فایروال

نصب استک LEMP

برای پیاده‌سازی این محیط قدرتمند، باید مراحل را به دقت دنبال کنید. در این آموزش نصب LEMP، ما از مدیر بسته apt که ابزار پیش‌فرض اوبونتو است استفاده خواهیم کرد.

۱. به‌روزرسانی سیستم

اولین و مهم‌ترین قدم پس از ورود به سرور، به‌روزرسانی مخازن نرم‌افزاری و پکیج‌های سیستم است تا از سازگاری کامل اطمینان حاصل شود. برای این کار دستور زیر را اجرا کنید:

sudo apt update && sudo apt upgrade

۲. نصب وب سرور

هسته اصلی این استک، Nginx است؛ یک وب سرور با کارایی بالا که برای میزبانی وب سایت‌های پر ترافیک و به عنوان پروکسی معکوس استفاده می‌شود. خوشبختانه Nginx در مخازن پیش‌فرض اوبونتو موجود است و می‌توانید آن را به سادگی نصب کنید:

sudo apt install nginx

پس از اتمام نصب، سرویس Nginx به صورت خودکار اجرا می‌شود. برای اطمینان از فعال بودن سرویس، دستور زیر را وارد کنید:

sudo systemctl status nginx

نصب وب سرور

خروجی این دستور باید نشان دهد که وضعیت سرویس active (یا running) است. علاوه بر این، برای تایید نهایی عملکرد صحیح وب سرور، می‌توانید آدرس IP سرور یا نام دامنه خود را در مرورگر وارد کنید:

http://server-ip or domain name

نصب وب سرور ۲

اگر با وارد کردن آدرس بالا صفحه‌ای مشاهده نکردید، احتمالا فایروال مانع دسترسی شده است و باید ترافیک HTTP را مجاز کنید. برای اینکه اجازه عبور ترافیک HTTP و HTTPS را در فایروال UFW صادر کنید، دستور زیر را اجرا نمایید:

sudo ufw allow 'Nginx Full'

نکته: اگر فقط می‌خواهید یکی از پروتکل‌های HTTP یا HTTPS را مجاز کنید، می‌توانید به جای ‘Nginx Full’ از ‘Nginx HTTP’ یا ‘Nginx HTTPS’ استفاده کنید.

سپس برای اعمال تغییرات، فایروال را ریلود کنید:

sudo ufw reload

۳. نصب سرور پایگاه داده MariaDB

جزء بعدی در نصب LEMP stack، سیستم مدیریت پایگاه داده است. MariaDB یک سرور دیتابیس رابطه‌ای متن‌باز محسوب می‌شود که داده‌ها را در جداول ذخیره می‌کند. برای نصب آن دستور زیر را اجرا کنید:

sudo apt install mariadb-server mariadb-client -y

پس از نصب، وضعیت سرویس را بررسی کنید:

sudo systemctl status mariadb

خروجی باید نشان دهد که سرویس در حال اجرا (active/running) است.

نصب سرور پایگاه داده MariaDB

اگر سرویس فعال نبود، با دستور زیر آن را استارت کنید:

sudo systemctl start mariadb

برای اینکه مطمئن شوید پس از هر بار ریستارت شدن سرور مجازی، دیتابیس به طور خودکار اجرا می‌شود، دستور زیر را وارد کنید:

sudo systemctl enable mariadb

تنظیمات پیش‌فرض MariaDB ایمن نیستند و ممکن است دیتابیس را در معرض نفوذ قرار دهند. بنابراین باید یک اسکریپت امنیتی اجرا کنیم:

sudo mysql_secure_installation

در این مرحله از شما خواسته می‌شود یک رمز عبور برای روت تنظیم کنید.

نصب سرور پایگاه داده MariaDB ۲

پس از تنظیم رمز، برای سایر پرسش‌ها کافیست کلید Y را فشار دهید تا تنظیمات پیشنهادی و امن اعمال شوند.

نصب سرور پایگاه داده MariaDB ۳

در نهایت برای ورود به محیط مدیریت دیتابیس دستور زیر را بزنید:

sudo mysql -u root -p

نصب سرور پایگاه داده MariaDB ۴

۴. نصب PHP

به طور پیش‌فرض، اوبونتو ۲۲.۰۴ نسخه PHP ۸.۱ را ارائه می‌دهد که نسبت به نسخه ۸.۰ بهبودهای چشمگیری در عملکرد داشته است. از آنجا که Nginx برخلاف آپاچی پردازشگر PHP داخلی ندارد، ما باید PHP-FPM را نصب کنیم تا کدهای PHP پردازش و به وب سرور تحویل داده شوند.

برای نصب PHP ۸.۱ و ماژول‌های ضروری آن دستور زیر را اجرا کنید:

sudo apt install php8.1 php8.1-fpm php8.1-mysql php-common php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl

سپس سرویس PHP-FPM را استارت کرده و آن را برای اجرا در زمان بوت سیستم فعال کنید:

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

برای اطمینان از صحت اجرا، وضعیت را چک کنید:

sudo systemctl status php8.1-fpm

نصب PHP

برای دریافت بهترین عملکرد از نصب LEMP stack، بهتر است برخی مقادیر پیش‌فرض را در فایل تنظیمات تغییر دهیم. فایل php.ini را با ویرایشگر نانو باز کنید:

sudo nano /etc/php/8.1/fpm/php.ini

مقادیر زیر را در فایل پیدا کرده و به شکل زیر تغییر دهید (این کار باعث بهینه‌سازی منابع در سرور مجازی لینوکس شما می‌شود):

upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

پس از ذخیره تغییرات، سرویس را ریستارت کنید تا تنظیمات اعمال شوند:

sudo systemctl restart php8.1-fpm

۵. پیکربندی VirtualHost در Nginx

اکنون لازم است تغییراتی در فایل پیکربندی پیش‌فرض Nginx ایجاد شود تا این وب سرور بتواند فایل‌های PHP را شناسایی و پردازش کند. برای دسترسی به فایل تنظیمات، دستور زیر را وارد کنید:

sudo nano /etc/nginx/sites-enabled/default

به بلوک server بروید و محتویات آن را بررسی کنید تا دقیقا مشابه نمونه زیر باشد (دقت کنید که بخش location ~ \.php$ برای پردازش PHP مهم است):

server {
listen 80;
root /var/www/html;
index index.php;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}

نکته: در قسمت server_name می‌توانید نام دامنه یا IP خود را جایگزین کنید.

تغییرات را ذخیره کرده و از ویرایشگر خارج شوید. سپس برای اطمینان از اینکه هیچ خطای نگارشی در تنظیمات وجود ندارد، دستور زیر را اجرا کنید:

nginx -t

اگر پیامی مبنی بر موفقیت‌آمیز بودن تست دریافت نمودید، سرویس‌های Nginx و PHP-FPM را ریستارت کنید تا تغییرات اعمال شوند:

sudo systemctl restart nginx php8.1-fpm

۶. تست پردازش PHP در Nginx

حال که PHP به طور کامل روی Nginx فعال شده است، باید از صحت عملکرد آن مطمئن شویم. برای این کار یک فایل نمونه PHP ایجاد می‌کنیم:

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

پس از ایجاد فایل، مرورگر خود را باز کرده و به آدرس زیر بروید (به جای server-ip آدرس آی‌پی سرور خود را وارد کنید):

http://server-ip/info.php

اگر مشابه تصویر زیر، صفحه‌ای حاوی اطلاعات کامل نسخه PHP و تنظیمات سرور مشاهده کردید، به این معنی است که نصب LEMP stack روی اوبونتو ۲۲.۰۴ با موفقیت کامل انجام شده.

تست پردازش PHP در Nginx

جمع بندی

پیاده‌سازی و نصب LEMP stack روی سیستم عامل اوبونتو ۲۲.۰۴، زیرساختی قدرتمند و مقیاس پذیر را برای میزبانی وب سایت‌های پویا فراهم می‌کند. با کنار هم قرار گرفتن لینوکس، وب سرور پرسرعت Nginx، پایگاه داده MariaDB و زبان PHP، محیطی ایده‌آل برای مدیریت ترافیک‌های سنگین با مصرف منابع بهینه ایجاد می‌شود.

اهمیت آموزش نصب LEMP در این است که جایگزینی Nginx به جای آپاچی، سرعت پردازش درخواست‌ها را به طرز چشمگیری افزایش می‌دهد. اکنون با انجام صحیح پیکربندی‌ها و اطمینان از صحت عملکرد تمام اجزای LEMP استک، بستر لازم برای توسعه و استقرار اپلیکیشن‌های تحت وب مدرن با پایداری و امنیت بالا کاملا مهیا شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پانزده + بیست =