آموزش نصب وب‌سرور LEMP روی سرور مجازی

در این آموزش یاد می‌گیری چطور روی سرور مجازی اوبونتو وب‌سرور Nginx، دیتابیس MariaDB و PHP را نصب کنی، دامنه را تنظیم کنی و با Certbot گواهی SSL رایگان بگیری.

به‌روزرسانی: ۲۷ مرداد ۱۴۰۵

پاسخ کوتاه: پس از اتصال SSH به سرور مجازی اوبونتو، بسته‌ها را به‌روزرسانی کنید، سپس Nginx، MySQL/MariaDB و PHP-FPM را نصب کنید. فایروال را روی پورت‌های ۸۰ و ۴۴۳ باز کنید و یک بلوک سرور (Server Block) برای دامنه بسازید تا سایت شما اجرا شود.

LEMP چیست؟

LEMP مجموعه‌ای از نرم‌افزارها برای اجرای سایت روی سرور است: لینوکس، وب‌سرور Nginx (که «انجین‌ایکس» تلفظ می‌شود و حرف E را می‌سازد)، دیتابیس MySQL/MariaDB و زبان PHP. این ترکیب سبک و سریع است و برای وردپرس و اپلیکیشن‌های PHP انتخاب خوبی محسوب می‌شود.

این آموزش برای سرور مجازی یا اختصاصی با دسترسی روت است، نه هاست اشتراکی. اگر با SSH آشنا نیستید، ابتدا راهنمای اتصال به سرور مجازی با SSH را ببینید. دستورها برای Ubuntu نوشته شده‌اند.

نصب گام‌به‌گام

۱

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

پس از اتصال SSH، ابتدا فهرست بسته‌ها را به‌روز کنید:

sudo apt update && sudo apt upgrade -y
۲

نصب وب‌سرور Nginx

sudo apt install nginx -y

سپس فایروال را تنظیم کنید تا ترافیک وب اجازه عبور داشته باشد:

sudo ufw allow 'Nginx Full' sudo ufw allow OpenSSH sudo ufw enable

حالا اگر IP سرور را در مرورگر باز کنید، صفحه پیش‌فرض Nginx نمایش داده می‌شود.

۳

نصب دیتابیس

sudo apt install mariadb-server -y sudo mysql_secure_installation

در حین اجرای دستور دوم، یک رمز روت تعیین و به پرسش‌های امنیتی پاسخ «yes» بدهید تا کاربر ناشناس و دیتابیس آزمایشی حذف شود.

۴

نصب PHP

sudo apt install php-fpm php-mysql -y

بسته php-fpm موتور اجرای PHP و php-mysql پل ارتباط با دیتابیس است. افزونه‌های دیگری مثل php-curl و php-gd را هم بر اساس نیاز اسکریپت نصب کنید.

۵

ساخت بلوک سرور برای دامنه

یک فایل پیکربندی برای سایت خود بسازید:

sudo nano /etc/nginx/sites-available/yourdomain.com

محتوای زیر را وارد کنید (به‌جای yourdomain.com دامنه خود و به‌جای نسخه PHP نسخه نصب‌شده را بگذارید):

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

سپس سایت را فعال و Nginx را ری‌استارت کنید:

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
۶

نصب SSL رایگان با Certbot

برای فعال کردن HTTPS، ابزار Certbot را نصب و اجرا کنید:

sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Certbot گواهی رایگان Let's Encrypt را صادر و تنظیمات Nginx را برای شما اصلاح می‌کند.

سوالات متداول

پرسش‌های پرتکرار

تفاوت Nginx و Apache در چیست؟

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

چرا از MariaDB به‌جای MySQL استفاده کردیم؟

MariaDB یک نسخه متن‌باز و کاملاً سازگار با MySQL است که روی اوبونتو به‌راحتی نصب می‌شود. اسکریپت‌هایی که به MySQL نیاز دارند بدون مشکل با MariaDB هم کار می‌کنند.

این کارها را روی هاست اشتراکی هم می‌توانم انجام دهم؟

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

سرور مجازی پرقدرت می‌خواهی؟

روی سرور مجازی NVMe استار هاستینگ با دسترسی کامل روت، وب‌سرور دلخواهت را راه‌اندازی کن.