مقدمه
در این آموزش نحوه نصب پشته LEMP (لینوکس، NGINX، پایگاه داده MySQL، PHP) را در اوبونتو 24.04 LTS خواهید آموخت. در پایان این آموزش شما یک سرور پشته LEMP کاملاً کاربردی خواهید داشت.
پیش نیازها
- سرور با اوبونتو 24.04 LTS
- دسترسی به کاربر ریشه یا کاربری با مجوز sudo
- nano یا ویرایشگر متن مورد علاقه شما نصب شده است.
مرحله 1 – سرور را به روز کنید
از دستور زیر برای به روز رسانی مخازن بسته استفاده کنید تا مطمئن شوید که آخرین نسخه نرم افزار را نصب خواهیم کرد:
sudo apt update
سپس از دستور زیر برای ارتقاء بسته های نصب شده فعلی استفاده کنید:
sudo apt dist-upgrade -y
پرچم -y به طور خودکار عملیات را تأیید می کند، بنابراین برای ادامه نیازی به تایپ Y نیست.
مرحله 2 – NGINX را نصب کنید
NGINX وب سروری است که ما از آن استفاده خواهیم کرد، میتوانیم آن را با استفاده از دستور زیر نصب کنیم:
sudo apt install nginx -y
مرحله 3 – MySQL را نصب کنید
اکنون می توانیم MySQL Server را نصب کنیم. MySQL پایگاه داده ای است که ما از آن استفاده خواهیم کرد، می توانیم با استفاده از دستور زیر آن را نصب کنیم:
sudo apt install mysql-server -y
مرحله 4 – MySQL را ایمن کنید
سرور MySQL تازه نصب شده را با استفاده از دستور زیر ایمن کنید:
sudo mysql_secure_installation
MySQL از شما می خواهد رمز عبور را تأیید کنید:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No:
می توانید Y و سپس ENTER را فشار دهید.
خط مشی اعتبارسنجی رمز عبور را تنظیم کنید. سه سطح وجود دارد:
0: LOW Length >= 8
1: MEDIUM Length >= 8, numeric, mixed case, and special characters
2: STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
شماره مناسب را انتخاب کنید، سپس ENTER را فشار دهید. توصیه می کنم یک رمز عبور قوی (شماره 2) انتخاب کنید.
MySQL از شما می پرسد که آیا می خواهید کاربران ناشناس را حذف کنید:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) :
برای ادامه، Y و سپس ENTER را فشار دهید.
در مرحله بعد، MySQL از شما می پرسد که آیا می خواهید ورود ریشه از راه دور را ممنوع کنید:
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
برای ادامه، Y و سپس ENTER را فشار دهید.
سپس، MySQL از شما میپرسد که آیا میخواهید پایگاه داده آزمایشی را حذف کرده و به آن دسترسی داشته باشید:
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :
برای ادامه، Y و سپس ENTER را فشار دهید.
اکنون، برای آخرین مورد، MySQL از شما میپرسد که آیا میخواهید جداول امتیاز را مجدداً بارگیری کنید:
Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
برای ادامه، Y و سپس ENTER را فشار دهید.
همه کار انجام شد. اکنون یک سرور MySQL امن دارید.
مرحله 5 – PHP را نصب کنید
اوبونتو 24.04 باید آخرین نسخه PHP پایدار را داشته باشد. می توانید دوباره بررسی کنید:
apt list | grep '^php[0-9]*-\(fpm\|mysql\)'
PHP را نصب کنید:
sudo apt install php8.3-fpm php8.3-mysql -y
php8.3-fpm مدیر فرآیند FastCGI است که به ما اجازه می دهد از PHP در NGINX استفاده کنیم.
php8.3-mysql پسوندی است که به PHP اجازه می دهد با سرور MySQL تعامل داشته باشد.
در این مرحله شما با نصب بسته ها تمام شده اید.
مرحله 6 – NGINX را برای PHP پیکربندی کنید
به طور پیشفرض، NGINX فایلهای PHP را مدیریت نمیکند، بنابراین باید فایل تنظیمات پیشفرض را ویرایش کنیم.
از ویرایشگر متن مورد علاقه خود برای ویرایش فایل پیکربندی پیش فرض استفاده کنید، من از نانو استفاده خواهم کرد.
sudo nano /etc/nginx/sites-available/default
در این فایل، ما باید کمی به پایین اسکرول کنیم، در داخل بلوک سرور، پس از مکان / دستورالعمل، باید موارد زیر را اضافه کنیم:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
اگر نسخه PHP دیگری را نصب کرده اید، می توانید آن را در اینجا تغییر دهید.
این به NGINX میگوید که همه فایلهای با پسوند php. را به مدیر فرآیند FastCGI که قبلاً نصب کردهایم ارسال کند.
شما همچنین می توانید index.php را به لیست در اینجا اضافه کنید:
index index.html index.htm index.nginx-debian.html index.php;
فایل را ذخیره کنید، سپس خارج شوید. (CTRL+X,Y, ENTER) برای نانو.
دستور زیر را برای بررسی اینکه آیا پیکربندی NGINX درست است را اجرا کنید:
sudo nginx -t
شما باید چیزی شبیه به این را ببینید:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
سپس با استفاده از دستور زیر NGINX را ریستارت کنید:
sudo service nginx restart
مرحله 7 – بررسی کنید که آیا PHP کار می کند یا خیر
حال، بیایید بررسی کنیم که آیا PHP با NGINX کار می کند یا خیر. ما می توانیم یک اسکریپت PHP ساده “Hello, World” ایجاد کنیم.
دایرکتوری ریشه پیش فرض برای NGINX /var/www/html است.
بیایید یک فایل hello.php در آن دایرکتوری ایجاد کنیم:
sudo nano /var/www/html/hello.php
داخل فایل، محتوای زیر را اضافه کنید:
<?php
echo 'Hello, World!';
فایل را ذخیره کنید، سپس خارج شوید. (CTRL+X,Y, ENTER) برای نانو.
اکنون می توانیم در مرورگر خود به http://<serverIP>/hello.php دسترسی داشته باشیم.
برای دریافت آدرس IP عمومی سرور خود از دستور زیر استفاده کنید:
hostname -I
اگر جواب نداد، سعی کنید از cURL برای دریافت آدرس IP عمومی سرور استفاده کنید:
curl -4 https://ip.hetzner.com
شما باید این را ببینید:
نتیجه گیری
شما با موفقیت یک LEMP Stack را در اوبونتو 24.04 LTS نصب کردید. می توانید شروع به استقرار برنامه های LEMP Stack خود کنید. موفق باشید!