LEMP از Linux، وبسرور Nginx، پایگاه داده MySQL و PHP تشکیل میشود. در این بخش اجزا را روی Ubuntu 22.04 نصب و سلامت هرکدام را بررسی میکنیم؛ اتصال دامنه و اجرای PHP در بخش دوم انجام میشود. فرض این آموزش، سرور تازه بدون cPanel یا کنترلپنل مشابه است.
آیا Ubuntu 22.04 هنوز قابل استفاده است؟
بله؛ پشتیبانی استاندارد آن تا مه ۲۰۲۷ ادامه دارد. با این حال، PHP پیشفرض این انتشار معمولاً 8.1 است که پشتیبانی upstream آن پایان یافته است. پوشش وصله بسته Ubuntu را از سیاست Canonical و مخزن فعال بسنجید. برای برنامهای که PHP 8.3 یا جدیدتر میخواهد، از پشته سازگارتر استفاده کنید؛ صرف نصب php-fpm روی 22.04 نسخه مورد نیاز آن برنامه را تضمین نمیکند.
پیشنیاز و کنترل تعارض
cat /etc/os-release
sudo ss -ltnp
sudo apt update
اگر Apache یا پشته دیگری روی 80/443 فعال است، ابتدا نقش سرویسها را روشن کنید. سرویس فعال سایت را برای اجرای این آموزش متوقف نکنید. داشتن کاربر sudo و کنسول بازیابی برای تغییر فایروال لازم است.
۱. نصب Nginx
sudo apt install nginx
sudo systemctl enable --now nginx
systemctl status nginx --no-pager
curl -I http://127.0.0.1/
پاسخ محلی، اجرای Nginx را تأیید میکند؛ هنوز DNS و دسترسی اینترنت آزمایش نشده است. در UFW فعال میتوان پروفایل Nginx Full را مجاز کرد. پیش از فعالکردن فایروال، پورت واقعی SSH را مجاز و ورود در نشست دوم را تست کنید.
sudo ufw status
sudo ufw app list
sudo ufw allow 'Nginx Full'
۲. نصب MySQL
sudo apt install mysql-server
sudo systemctl enable --now mysql
sudo mysql -e 'SELECT VERSION();'
روش احراز هویت root در بسته Ubuntu میتواند مبتنی بر سوکت باشد؛ برای فعالکردن ورود راه دور root تغییر تصادفی ندهید. ابزار mysql_secure_installation را با توجه به تنظیم واقعی اجرا کنید؛ پاسخ همه پرسشهای آن برای هر محیط یکسان نیست.
۳. ایجاد دیتابیس برای برنامه
sudo mysql
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'REPLACE_WITH_UNIQUE_PASSWORD';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
EXIT;
برای برنامه جدا حساب جدا بسازید. استفاده از root در تنظیم برنامه یا بازکردن 3306 برای همه، بخشی از نصب استاندارد نیست. آزمون اتصال با همان حساب انجام شود:
mysql -u appuser -p appdb -e 'SELECT 1;'
۴. نصب PHP-FPM
sudo apt install php-fpm php-cli php-mysql php-curl php-mbstring php-xml php-zip
php -v
systemctl list-units --type=service 'php*-fpm.service'
ls -l /run/php/
PHP-FPM درخواست برنامه را اجرا میکند و Nginx فقط آن را به FPM میفرستد. نسخه و نام سوکت واقعی را یادداشت کنید؛ در بخش دوم نباید سوکت نسخه دیگری را کپی کنید. extensionهای اضافی را بر اساس مستندات برنامه اضافه کنید.
کنترل پایان بخش اول
- Nginx در localhost پاسخ میدهد.
- MySQL فعال است و کاربر برنامه فقط به دیتابیس خودش دسترسی دارد.
- نسخه PHP با نرمافزار هدف سازگار است.
- نام سرویس و سوکت FPM معلوم است.
- فایروال سیستم و شبکه اجازه وب میدهند و SSH حفظ شده است.
خطاهای رایج
APT بسته را پیدا نمیکند
خروجی apt update، نام بسته و مخازن همان کدنام Ubuntu را بررسی کنید. مخزن توزیع دیگر را اضافه نکنید.
چند سرویس PHP-FPM دیده میشود
برای هر دامنه نسخه هدف را انتخاب و سوکت درست را ثبت کنید. نصب چند نسخه بهخودیخود خطا نیست، اما انتخاب مبهم باعث ناسازگاری میشود.
در ادامه، Server Block و اجرای امن فایل PHP را در بخش دوم تنظیم میکنیم. اگر هدف وردپرس است، پس از تکمیل هر دو بخش به راهنمای اختصاصی وردپرس با LEMP بروید.
منابع رسمی
بازبینی منابع: ۱۸ اکتبر ۲۰۲۶.