خوش آمدید - امروز : سه شنبه ۲۹ اسفند ۱۴۰۲
خانه » آموزش کانفیگ سرور » آموزش نصب و کانفیگ وب سرور Nginx به همراه Php و Mysql در سرور لینوکس

آموزش نصب و کانفیگ وب سرور Nginx به همراه Php و Mysql در سرور لینوکس

کاربران زیادی درخواست آموزش نصب و کانفیگ وب سرور Nginx بر روی سیستم عامل لینوکس به همراه Php و یک دیتابیس انجین مانند Mysql بر روی لینوکس را خواهان بودند که در این پست تقدیم میشود.

Nginx (pronounced “engine x”) یک وب سرور HTTP بسیار سریع و کارا بصورت منبع باز و با کارایی عالی است. بیشترین دلایل محبوبیت وب سرور Nginx مجموعه ویژگی های غنی، پیکربندی ساده و مصرف کم منابع و سرعت عالی را میتوان نام برد. این آموزش نشان می دهد چگونه شما می توانید Nginx را در یک سرور LTS 18.04 اوبونتو نصب کنید (با پشتیبانی PHP-FPM) و پشتیبانی MySQL (LEMP = Linux + nginx (pronounced “engine x”) + MySQL + PHP).

پیش نیازها

یک سرور با سیستم عامل اوبونتو 18.04 LTS
یک کاربر با دسترسی Root

چه مواردی نصب خواهیم کرد؟

نصب Nginx
نصب و راه اندازی MySQL
نصب PHP-FPM
پیکربندی Nginx و PHP-FPM
نصب PhpMyAdmin
پیکربندی PhpMyAdmin
آزمایش نهایی

مرحله 1 – نصب Nginx

Nginx یا موتور x سرور HTTP و پروکسی با عملکرد بالا با مصرف کم حافظه است. بسیاری از وب سایت های بزرگ مانند Netflix، Pinterest، CloudFlare، GitHub از Nginx استفاده می کنند.

در این مرحله ما وب سرور Nginx را از مخزن اوبونتو نصب خواهیم کرد.

دستور زیر را اجرا کنید:

sudo apt install nginx -y

پس از نصب کامل، سرویس Nginx را راه اندازی کنید و آن را هر بار در بوت سیستم اجرا کنید.

systemctl start nginx
systemctl enable nginx

نصب Nginx کامل است و به مرجله دیگر میرویم

پیکربندی و کانفیگ فایروال سرور

توصیه می شود فایروال را روی سرور فعال کنید.

پورت سرویس SSH و HTTP را به پیکربندی فایروال اضافه کنید.

دستور زیر را در UFW اجرا کنید. لازم به ذکر است UFW فایروال پیش فرض لینوکس ابونتو نسخه 18 می باشد

ufw allow ssh
ufw allow http

دستور زیر فایروال UFW را راه اندازی کرده و آن را قادر می سازد هر بار در بوت سیستم اجرا شود.

ufw enable

وب سرور Nginx تحت فایروال UFW اجرا می شود.

مرحله 2 – MySQL را نصب کنید

 

MySQL محبوب ترین سیستم ارتباطی پایگاه داده (RDBMS) ایجاد شده توسط شرکت اوراکل است. و ما آخرین نسخه MySQL را از مخزن اوبونتو در این آموزش خدمتتون نصب خواهیم کرد.

MySQL را با استفاده از دستور apt در زیر نصب کنید.

sudo apt install mysql-server mysql-client -y

پس از نصب کامل MySQL، سرویس MySQL را استارت کنید و آن را برای راه اندازی هر بار در سیستم تنظیم کنید

systemctl start mysql
systemctl enable mysql

در اینجا ما MySQL 5.7 را روی سرور اوبونتو 18.04 نصب کردیم.

مرحله 3 – PHP-FPM را نصب کنید

 

PHP-FPM یا FastCGI Process Manager یک جایگزین عالی برای  PHP FastCGI است که ویژگی های اضافی و بهبود سرعت را فراهم می کند. این سرویس بخوبی برای سایت های کوچک به بزرگ بر اساس زبان برنامه نویسی PHP مناسب است و سرعت و پایداری بسیار خوبی دارد.

در این مرحله PHP7.2-FPM را با برخی از افزونه های اضافی مورد نیاز phpmyadmin نصب می کنیم.

PHP-FPM را با استفاده از فرمان زیر نصب کنید.

sudo apt install php7.2 php7.2-fpm php7.2-cli php7.2-curl php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php-pear -y

حال php را جهت اجرا شدن خودکار پس از هذ بار بوت سیستم عامل آماده میکنیم:

systemctl start php7.2-fpm
systemctl enable php7.2-fpm

PHP7.2-FPM در حال اجرا در اوبونتو 18.04 تحت فایل socket میباشد که آن را با استفاده از دستور netstat بررسی کنید.

netstat -pl | grep php

مرحله 4 – پیکربندی و کانفیگ Nginx و PHP-FPM

 

در این مرحله ما سرور وب Nginx و PHP-FPM را پیکربندی خواهیم کرد.

پیکربندی Nginx

 

به دایرکتوری پیکربندی “/ etc / nginx” بروید و فایل nginx.conf را با استفاده از vim یا nano ویرایش کنید.

cd /etc/nginx/
vim nginx.conf

خطوط زیر را از حالت کامنت خارج نمایید:

keepalive_timeout 2;
server_tokens off;

فایل پیکربندی را ذخیره کرده و از ویرایشگر خارج شوید.

حالا فایل Virtual Host وب سرور Nginx را ویرایش کنید.

vim sites-available/default

خطوط را مشابه زیر تعییر دهید

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        # # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        # # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.2.0.1:9000;
        }

ذخیره کنید و خارج شوید

پیکربندی و کانفیگ سرویس Nginx را تست کنید و اطمینان حاصل کنید که هیچ خطایی وجود ندارد و سپس سرویس را دوباره راه اندازی کنید.

nginx -t
systemctl reload nginx

پیکربندی و کانفیگ PHP-FPM

به پوشه /etc/php/7.2 بروید و فایل php.ini را ویرایش کنید.

cd /etc/php/7.2/
vim fpm/php.ini

خط “cgi.fix_patinfo” را غیرفعال کنید و مقدار را به 0 تغییر دهید.

cgi.fix_pathinfo=0

ذخیر کنید و خارج شوید

سرویس PHP-FPM را بارگیری مجدد کنید.

systemctl reload php7.2-fpm

خوب در اینجا ما یکربندی ابتدایی وب سرور Nginx و PHP-FPM را تکمیل کردیم و انجام دادیم

مرحله 5 – نصب PhpMyAdmin

PhpMyAdmin یک برنامه پی اچ پی مبتنی بر مدیریت MySQL یا پایگاه داده MariaDB تحت یک مرورگر وب است.

در این مرحله ما phpmyadmin را تحت LEMP (لینوکس، Nginx، MySQL و PHP-FPM) نصب و پیکربندی خواهیم کرد.

PHPMyAdmin را با استفاده از دستور apt در زیر نصب کنید.

sudo apt install phpmyadmin -y

در طول نصب، برنامه نصب کننده از شما در مورد پیکربندی وب سرور برای phpmyadmin سوال خواهد کرد.

هیچ گزینه ای را انتخاب نکنید و مکان نما را به «OK» ببرید.

برای پیکربندی پایگاه داده phpmyadmin، «بله» را انتخاب کنید که در اینجا همان گزینه OK منظور ما میباشد

یک پسورد قوی و امن برای ادمین اصلی phpmyadmin وارد نمایید و سپس مجددا تکرار کنید

خوب در اینجا و نصب phpmyadmin کامل شد و بهتون تبریک میگم

مرحله 6 – پیکربندی PhpMyAdmin

پس از نصب phpmyadmin، ما باید پیکربندی phpmyadmin را در زیر سرور وب Nginx اجرا کنیم و پیکربندی دسترسی phpmyadmin کاربر MySQL را انجام دهیم.

پیکربندی و کانفیگ PhpMyAdmin با Nginx

برای اجرای phpmyadmin تحت وب سرور Nginx، ما باید کانفیگ ها را به فایل virtualhost اضافه کنیم.

به دایرکتوری پیکربندی “/ etc / nginx” بروید و فایل میزبان پیش فرض مجازی را ویرایش کنید.

cd /etc/nginx/
vim sites-available/default

کد زیر را کپی بگیرید و paste نمایید:

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;

location ~ ^/phpmyadmin/(doc|sql|setup)/ {
    deny all;
    }

location ~ /phpmyadmin/(.+\.php)$ {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    }
}

سپس ذخیر نمایید و خارج شوید

حالا مجددا سرویس nginx را ریستارت میکنیم تا تغییرات اعمال شود

systemctl reload nginx

و ما پیکربندی Nginx را برای phpmyadmin انجام دادیم بازم بهتون تبریک میگم شما یک مهندس حرفه ای هستید

پیکربندی کاربر MySQL برای PhpMyAdmin

در این آموزش، ما از کاربر غیر MySQL برای phpmyadmin استفاده خواهیم کرد. ما یک کاربر جدید ایجاد می کنیم و تمام امتیازات پایگاه داده را در داخل سرور به کاربر اعطا می کنیم.

ابتدا وارد محیط سطر فرمان mysql شوید:

mysql -u root -p

اکنون یک کاربر جدید با استفاده از کوئری های MySQL زیر ایجاد کنید.

create user nginxweb@'localhost' identified by 'nginxelabs001@#';
grant all privileges on *.* to hakase@'localhost' identified by 'Hakaselabs001@#';
flush privileges;
exit;

 

خوب به همین راحتی ما یک کاربر جدید برای دسترسی به phpmyadmin ایجاد کرده ایم.

مرحله 7 – تست

به دایرکتوری وب ریشه بروید / var / www / html و یک فایل جدید phpinfo ایجاد کنید.

cd /var/www/html/
vim info.php

اسکریپت phpinfo زیر را وارد کنید.

<?php
phpinfo();
?>

خوب حالا مرورگر وب را باز کرده و آدرس IP سرور را همانطور که در زیر نشان داده شده تایپ می کنید. IP را با ip سرور خود جایگزین کنید.

http://192.168.33.10/info.php

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

تست ورود PhpMyAdmin

در مرورگر وب، URL زیر را در قسمت phpmyadmin تایپ کنید (IP را با IP سرور خود جایگزین کنید).

http://192.168.33.10/phpmyadmin/

خوب تبریک میگم LEMP Stack و PhpMyAdmin با موفقیت در Ubuntu 18.04 LTS نصب شده اند.

توجه کنید آموزش فوق در حد نصب و راه اندازی اولیه این سرویس ها هستند و مواردی مانند کانفیگ حرفه ای و تخصصی و همینطور ایمن سازی سرویس ها باید توسط یک متخصص سرور انجام شود که برای انجام آن میتوانید با ما در تماس باشید تا به بهترین نحو خدمتتون انجام دهیم تا هم از سرعت عالی در سرور خود بهره ببرید هم بهترین امنیت را تجربه نمایید

این پست کاملا اختصاصی نوشته شده است و نتیجه ساعت ها صرف زمان برای شما عزیزان است پس اگر کپی میکنید حتما لینک پست را ذکر بفرمایید

 

 عیسی محمدزاده
کارشناس مدیریت سرور و هاستینگ و امنیت شبکه

امتیاز 5.00 ( 4 رای )
اشتراک گذاری مطلب

تاکنون 2 نظر ثبت شده است.

  1. سلام وقتتون بخیر
    بنده تنظیمات مربوط به nginx رو که برای بلاک سرور هست رو به شکل زیر نوشتم :

    server {
    listen 4000;
    listen [::]:4000;
    root /home/hasan/kalvin/php/t1;
    index index.php index.html index.htm index.nginx-debian.html;
    server_name 89.41.40.171;

    location / {
    try_files $uri $uri/ /index.html =404;
    }

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    #
    # # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    # # With php-cgi (or other tcp sockets):
    # fastcgi_pass 127.2.0.1:9000;
    }

    }

    ولی وقتی دستور nginx -t رو اجرا میکنم خطای زیر رو میده :

    nginx: [alert] could not open error log file: open() “/var/log/nginx/error.log” failed (13: Permission denied)
    2020/01/15 13:26:27 [warn] 16322#16322: the “user” directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:2
    2020/01/15 13:26:27 [emerg] 16322#16322: open() “/etc/nginx/fastcgi.conf” failed (2: No such file or directory) in /etc/nginx/snippets/fastcgi-php.conf:13
    nginx: configuration file /etc/nginx/nginx.conf test failed

    میشه لطفا راهنماییم کنید

    • جهت حل مشکل و بررسی دقیق تر لطف با بخش فنی ما در تماس باشید تا بطور دقیق سرورتون بررسی گردد

کلیه حقوق مادی و معنوی مطالب و مقالات متعلق به وب سایت انجین ایکس وب میباشد - طراحی شده توسط پارس تمز