مقدمه
در این راهنمای سریع، مجموعه LEMP (لینوکس، Nginx، MySQL و PHP) را روی یک سرور اوبونتو نصب خواهیم کرد.
(نکته: از آنجایی که نسخههای قدیمیتر اوبونتو مانند 20.04 به پایان عمر خود نزدیک هستند، در این مقاله مراحل را برای اوبونتو 24.04 بهروزرسانی کردهایم. در این نسخه، PHP 8.3 به صورت پیشفرض نصب میشود.)
پیشنیازها
برای دنبال کردن این راهنما، شما به یک سرور اوبونتو 24.04 با دسترسی کاربر sudo نیاز دارید. میتوانید سرور مجازی خود را از پارمین کلود (Parmin Cloud) تهیه کنید.
مرحله ۱ — نصب Nginx
ابتدا کش مدیریت پکیج (APT) خود را بهروزرسانی کرده و سپس وبسرور Nginx را نصب کنید:
sudo apt update
sudo apt install nginx
پس از اتمام نصب، باید تنظیمات فایروال را به گونهای تغییر دهید که ترافیک HTTP روی سرور شما مجاز باشد. دستور زیر را برای允许 دسترسی خارجی روی پورت 80 (HTTP) اجرا کنید:
sudo ufw allow in "Nginx"
با اضافه شدن قانون جدید فایروال، میتوانید با مراجعه به آدرس IP عمومی سرور یا نام دامنه خود در مرورگر، تست کنید که سرور بالا و در حال اجرا است. شما صفحهای مشابه صفحه پیشفرض Nginx را خواهید دید.
مرحله ۲ — نصب MySQL
اکنون MySQL را نصب میکنیم که یک سیستم مدیریت دیتابیس محبوب در محیطهای PHP است.
دوباره از apt برای دریافت و نصب این نرمافزار استفاده کنید:
sudo apt install mysql-server
هنگامی که نصب تمام شد، توصیه میشود اسکریپت امنیتی را که از قبل با MySQL نصب شده است اجرا کنید. این اسکریپت تعاملی را با دستور زیر اجرا کنید:
sudo mysql_secure_installation
این دستور از شما میپرسد که آیا میخواهید پلاگین VALIDATE PASSWORD را پیکربندی کنید یا خیر. برای تایید Y را وارد کنید یا هر چیز دیگری برای ادامه بدون فعالسازی آن. اگر yes را انتخاب کنید، از شما خواسته میشود سطح اعتبارسنجی رمز عبور را انتخاب کنید.
در مرحله بعد، سرور از شما میخواهد که یک رمز عبور برای کاربر root دیتابیس MySQL انتخاب و تایید کنید. حتی اگر روش احراز هویت پیشفرض کاربر root در MySQL استفاده از رمز عبور را لغو میکند، به عنوان یک اقدام امنیتی اضافی باید یک رمز عبور قوی در اینجا تعریف کنید.
برای بقیه سوالات، کلید Y را فشار داده و در هر مرحله ENTER را بزنید.
مرحله ۳ — نصب PHP
برای نصب پکیجهای php-fpm و php-mysql دستور زیر را اجرا کنید:
sudo apt install php-fpm php-mysql
(در اوبونتو 24.04، این دستور به طور خودکار PHP نسخه 8.3 را نصب میکند).
مرحله ۴ — پیکربندی Nginx برای PHP
در این راهنما، ما دامنهای به نام your_domain تنظیم میکنیم، اما باید آن را با نام دامنه واقعی خود جایگزین کنید.
در اوبونتو 24.04، Nginx به طور پیشفرض دارای یک Server Block (بلوک سرور) فعال است که برای سرو کردن فایلها از دایرکتوری /var/www/html پیکربندی شده است. اگرچه این برای یک سایت واحد خوب کار میکند، اما اگر چندین سایت را میزبانی میکنید مدیریت آن دشوار میشود. به جای تغییر /var/www/html، ما یک ساختار دایرکتوری در /var/www برای وبسایت your_domain ایجاد میکنیم.
دایرکتوری ریشه وب را برای دامنه خود به شکل زیر ایجاد کنید:
sudo mkdir /var/www/your_domain
سپس، مالکیت دایرکتوری را با متغیر محیطی $USER اختصاص دهید که به کاربر فعلی سیستم شما ارجاع میدهد:
sudo chown -R $USER:$USER /var/www/your_domain
سپس، یک فایل پیکربندی جدید در دایرکتوری sites-available مربوط به Nginx باز کنید (در اینجا از nano استفاده میکنیم):
sudo nano /etc/nginx/sites-available/your_domain
این کار یک فایل خالی ایجاد میکند. پیکربندی زیر را در آن قرار دهید (توجه کنید که مسیر سوکت PHP را برای نسخه 8.3 تنظیم کردهایم):
/etc/nginx/sites-available/your_domain
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
هنگامی که ویرایش تمام شد، فایل را ذخیره کرده و ببندید. اگر از nano استفاده میکنید، با فشردن CTRL+X و سپس y و ENTER این کار را انجام دهید.
پیکربندی خود را با ایجاد یک لینک نمادین (Symbolic Link) از فایل پیکربندی در دایرکتوری sites-enabled فعال کنید:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
این کار به Nginx میگوید که در بارگذاری بعدی از این پیکربندی استفاده کند. میتوانید پیکربندی خود را برای خطاهای نحوی (Syntax) تست کنید:
sudo nginx -t
اگر خطایی گزارش شد، قبل از ادامه به فایل پیکربندی خود برگردید و محتویات آن را بررسی کنید.
هنگامی که آماده بودید، Nginx را برای اعمال تغییرات ریلود کنید:
sudo systemctl reload nginx
وبسایت جدید شما اکنون فعال است، اما ریشه وب (/var/www/your_domain) هنوز خالی است. یک فایل index.html در آن مکان ایجاد کنید تا بتوانیم تست کنیم که بلوک سرور جدید به درستی کار میکند:
nano /var/www/your_domain/index.html
محتوای زیر را در این فایل قرار دهید:
/var/www/your_domain/index.html
<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>your_domain</strong>.</p>
</body>
</html>
اکنون به مرورگر خود بروید و به نام دامنه یا آدرس IP سرور خود دسترسی پیدا کنید:
http://server_domain_or_IP
شما صفحهای شبیه به این خواهید دید که نشان میدهد Nginx به درستی پیکربندی شده است.
مرحله ۵ — تست PHP با Nginx
اکنون یک اسکریپت تست PHP ایجاد میکنیم تا تایید کنیم Nginx میتواند درخواستها را برای فایلهای PHP پردازش و مدیریت کند.
یک فایل جدید به نام info.php در پوشه ریشه وب سفارشی خود ایجاد کنید:
nano /var/www/your_domain/info.php
این کار یک فایل خالی باز میکند. محتوای زیر را در فایل اضافه کنید:
/var/www/your_domain/info.php
<?php
phpinfo();
هنگامی که کارتان تمام شد، فایل را ذخیره کرده و ببندید.
اکنون میتوانید با مراجعه به نام دامنه یا آدرس IP عمومی خود در مرورگر و اضافه کردن /info.php در انتهای آن، به این صفحه دسترسی پیدا کنید:
http://server_domain_or_IP/info.php
شما یک صفحه وب حاوی اطلاعات دقیق در مورد سرور خود مشاهده خواهید کرد.
پس از بررسی اطلاعات مربوط به سرور PHP از طریق آن صفحه، بهتر است فایلی را که ایجاد کردهاید حذف کنید زیرا حاوی اطلاعات حساسی در مورد محیط PHP و سرور اوبونتو شما است. میتوانید برای حذف آن فایل از دستور rm استفاده کنید:
sudo rm /var/www/your_domain/info.php
از همراهی شما با پارمین کلود سپاسگزاریم.




