وبلاگ فرتک

LEMP و نصب Nginx php mariadb روی ubuntu 18.04

منظور از lemp

– منظور از LEMP چیست؟

به نصب مجموعه برنامه های  Nginx و PHP و MySQL روی سیستم عامل Linux  میگن lemp که حرف L به معنای Linux، حرف E یعنی Nginx که تلفظ میشه “Engine-X”  حرف M میشه MySQL و حرف P که یعنی PHP.

توی این آموزش میخوایم بهتون یاد بدیم که چطوری بیایم یه سرور ubuntu 18.04 رو از ۰ تا ۱۰۰ کانفیگ کنیم و php وNginx و mariadb رو روش نصب کنیم و بعد هم خیلی راحت یه سایت رو روش بیاریم بالا تا همه بتونن ببیننش.

سرور

– پیش نیاز های نصب LEMP

قبل از شروع این آموزش شما باید یه سرور با سیستم عامل ubuntu 18.04 داشته باشید که میتونید این سیستم عامل رو روی vmware هم بیارید بالا و مورد بعدی که نیاز داریم یوزر root اون سروره و ip اون.
نکته ای که هست حتما نیاز نیست که سرور باشه، شما میتونید ubuntu رو روی سیستم خودتون نصب کنید و ازش استفاده کنید lemp رو هم روش نصب کنید تا بتونید پروژه هاتون رو روی localhost تست کنید.

نصب lamp

– نصب LEMP روی Ubuntu 18.04

مرحله یک:‌ نصب وب سرور Nginx

ابتدا دستور های زیر رو به ترتیب وارد میکنیم و اگر جایی سوالی پرسید با حرف “y” قبول می‌کنیم.

[code]

sudo apt update

sudo apt install nginx

[/code]

خب وقتی نصب به پایان رسید، باید ip سرور رو توی مرورگرتون بزنید و ببینید آیا صفحه پیشفرض Nginx میاد بالا؟
در صورتی که صفحه پیش‌فرض نیومد بالا، دستور زیر رو بزنید تا چک کنید ببینید آیا پورت ۸۰ توی فایروال بازه یا نه و اگر بسته بود بازش کنید.

sudo ufw status

اگر تا اینجای کار مشکلی نبود و تونستید صفحه پیشفرض Nginx رو ببینید باید بریم سراغ نصب دیتابیس که ما توی این آموزش روش نصب mariadb رو یاد میدیم که ۹۹ درصد شبیه MySQL هست.

توجه کنید شما همین الان هم میتونید دستور های نصب mariadb رو اجرا کنید اما اگر این کار رو کنید ورژن قدیمی اون نصب میشه که برای نصب ورژن ۱.۳ ابتدا باید ریپازیتوری های زیر رو به ubuntu اضافه کنیم

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8


بعد از اجرا شدن دستور بالا دستور زیر رو اجرا میکنیم

sudo add-apt-repository 'deb [arch=amd64] http://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic main'

خب حالا که ریپازیتوری های نسخه ۱۰.۳ mariadb رو اضافه کردیم باید نصب mariadb رو شروع کنیم پس دستور های زیر رو به ترتیب اجرا میکنیم
sudo apt update
sudo apt -y install mariadb-server mariadb-client

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

در این مرحله از شما میخواد که یه password برای یوزر root دیتابیستون وارد کنید که توجه کنید هیچ موقع این پسورد رو پسورد راحت انتخاب نکنید.

اینجا از شما میخواد تا پسورد خودتون رو دوباره وارد کنید.


خب حالا دیگه نصب Mariadb تموم شد و حالا شما میتونید با زدن دستور زیر  و وارد کردن رمز عبور انتخابی خودتون وارد mariadb بشید.

mysql -u root -p

با تایپ عبارت quit; از mysql خارج بشید و کامند زیر رو اجرا کنید.

mysql_secure_installation

این دستور شروع میکنه با پرسیدن چند تا سوال از شما، یوزرها و جدول های تست رو پاک میکنه تا امنیت دیتابیستون بیشتر بشه.

  • بعد از زدن این دستور اولین سوالی که از شما می پرسه اینه که آیا میخواین پسورد یوزر root رو عوض کنید که چون ما قبلا پسورد سخت رو براش گذاشتیم، در این مرحله حرف N رو تایپ کرده و کلید Enter رو میزنیم.
  • سوال بعدی در مورد اینه که آیا یوزر های دیتابیس رو پاک کنم که کلید y  رو میزنیم.
  • سوال بعد میپرسه میخوای دسترسی ریموت یوزر root رو ببندم که فقط از روی سرور باز بشه که ما با حرف y تایید میکنیم.
  • سوال چهارم میپرسه آیا میخواین جدول های تست رو حذف کنم که باز هم با حرف y تایید میکنیم.
  • آخرین سوال هم میپرسه آیا میخواین privilege جدول ها رو ریلود کنم که تایید میکنیم.

خب حالا دیگه نصب دیتابیسمون هم به پایان رسید.

 

مرحله سه: نصب PHP و ماژول های آن

برای نصب php و ماژول های مورد نیاز اون دستور زیر رو وارد می‌کنید.

sudo apt install php php-fpm php-common php-mysql php-gd php-cli

با اجرای این دستور آخرین نسخه پایدار php برای شما نصب میشه.
بعد از اینکه نصب تمام شد با دستور زیر چک کنید که آیا سرویس استارت شده یا خیر؟

sudo systemctl status php7.2-fpm
اگر همه چیز اوکی بود با vim‌ یا nano‌ یا هر ادیتوری که خواستید فایل زیر رو باز کنید و مقدار
cgi.fix_pathinfo= رو برابر با ۰ قرار بدید یعنی به صورت زیر
sudo vim /etc/php/7.2/fpm/php.ini
cgi.fix_pathinfo=0

خب تو این مرحله شما میتونید فایل defult کانفیگ ngnix رو ویرایش کنید و هاستتون رو توش بزارید که من ترجیح میدم یه virtual host بسازم و اطلاعات خودم رو توش بزارم

برای شروع ابتدا در مسیر /etc/nginx/sites-available/ فایلی با نام دلخواه که معمولا آدرس سایته رو می‌سازیم که من در اینجا از example.com استفاده می‌کنم.
با دستور زیر فایل ساخته شده و باز شده و آماده ویرایشه

sudo nano /etc/nginx/sites-available/example.com
ایستاگرام فرتک
اینستاگرام فرتک

متن زیر رو کپی کرده و داخل این فایل می‌ریزیم. توجه کنید کهexample.com  رو حتما عوض کنید و دامین خودتون رو بزارید.

 

server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name example.com;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}

location ~ /\.ht {
deny all;
}
}

و بعد سیو می‌کنیم.

خب بعد از ذخیره فایل باید یه لینک از این فایل بسازیم و در پوشه /etc/nginx/sites-enabled/ دخیره کنیم که با دستور زیر این کار انجام میشه.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

خب حالا تو این مرحله به nginx می‌گیم  تست کن ببین جایی خطایی هست یا نه که با دستور زیر این کار انجام میشه

sudo nginx -t

در صورتی که تمام مراحل رو به درستی انجام داده باشید باید پیغام success رو در انتهای متن چاپ شده ببینید. اگر همه چیز بدون مشکل بود دستور زیر رو اجرا میکنیم تا nginx یک بار ریلود بشه و هاست ما بهش اضافه بشه.
sudo systemctl reload nginx

telegram fartech

حالا با دستور زیر یه فایل توی مسیر روت فایل های php می‌سازیم و متن زیر رو توی اون قرار میدیم.

sudo nano /var/www/html/info.php

<?php
phpinfo();
خب توی این مرحله باید توی مرورگرتون آدرس زیر رو وارد کنید.
http://your_server_domain_or_IP/info.php
اگر تمام مراحل رو بدون مشکل انجام داده باشید باید جواب دستور phpinfo که اطلاعات php هست رو ببینید
خب این آموزش همین‌جا تموم شد. حالا دیگه شما می‌تونید پروژه تون رو توی مسیر /var/www/html/ اپلود کنید و ازش استفاده کنید.

 

محمدحسین هنرکار

اضافه کردن دیدگاه