نصب Linux Nginx MySQL PHP بر روی لینوکس

انجین ایکس ( Nginx ) یکی از وب سرور هایی است که بسیاری از مدیران سایت های پربازدید را به سوی خود جلب نموده است. انجین ایکس علاوه بر وب سرور، ریورس پراکسی سرور ( reverse proxy server ) و میل پراکسی سرور ( mail proxy server ) نیز می باشد که  بصورت متن باز ( open source ) ارائه شده است و از پروتکل های http , https , SMTP , POP3 و IMAP پشتیبانی می کند. انجین ایکس به گونه ای طراحی شده است که همزمان با پشتیبانی از تعداد کانکشن های بسیار بالا ، عملکرد مناسب و مصرف کم رم را به همراه داشته باشد. این وب سرور محبوب بر روی سیستم عامل های مختلفی از جمله لینوکس ، mac os و سولاریس قابل نصب می باشد. nginx توسط ایگور سیسویو ( igor sysoev ) ساخته شده است، ایگور در سال ۱۹۷۰ در شهر آلماتی قزاقستان به دنیا آمده است و فارغ التحصیل دانشگاه ایالتی مسکو می باشد.

کار ساخت nginx از سال ۲۰۰۲ آغاز گردید و اولین نسخه آن در سال ۲۰۰۴ منتشر گردید. در حال حاضر نزدیک به ۱۲ درصد وب سایت های جهان یعنی چیزی در حدود ۲۲ میلیون وب سایت از nginx به عنوان وب سرور خود استفاده می کنند.

چگونه وب سرور Nginx را بر روی سرور لینوکس خود نصب نمائیم؟

در این آموزش به نصب LEMP بروی سرورهای ابونتو با استفاده از دستور apt می پردازیم .

گام اول :نصب NGINX

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

    sudo apt-get update
    sudo apt-get install nginx

در صورتی که firewall ufw استفاده می کنید کد زیر را بزنید

sudo ufw allow 'Nginx HTTP'

با کذ زیر می توانید ازufw خود مطلع شوید

sudo ufw status

خروجی باید به شرح زیر باشد

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

 

درصورتی که در حال حاضر سرور apache را نصب کرده اید با کد زیر آن را stop کنید و سرویس ngnix را اجرا کنید :

service apache2 stop
service ngnix start

در کد اول آپاچی متوقف می شود و در کد دوم ngnix شروع به کار می کند .

در صورتی که ngnix با موفقیت نصب شده باشد با زدن http://localhost درون مرور گر صفحه زیر نشان داده میشود :

 

نصب بانک اطلاعاتی

به منظور نصب mysql از کد زیر استفاده می نماییم :

sudo apt-get install mysql-server

ولی پیشنهاد می شود بانک اطلاعاتی maria db را نصب نمایید که در مقاله زیر به طور کامل به آن پرداخته ایم :

پیشنهاد پیرو برای شما :   مهاجرت از Mysql به MariaDb

 

نصب php

به طور کلی برای سازگاری php و nginx می بایست php-fpm را نصب نمود و در کل روال عادی نصب php را داریم :

sudo apt-get install php-fpm php-mysql

قطعه کد بالا php را نصب نموده و تنظیمات مورد نظر جهت استفاده nginx را انجام می دهد.

تنظیمات php برای nginx

با کد زیر وارد تنظیمات php-fpm برای تنظیم php برروی سرورهای nginx می شویم :

sudo nano /etc/php/7.0/fpm/php.ini

در فایل مربوطه به دنبال گزینه cgi.fix_pathinfo می گردیم که در حالت پیش فرض به صورت زیر است:

;cgi.fix_pathinfo=1

به منظور تصحیح عملکرد ; را از ابتدا برداشته و مقدارش را برابر ۰ قرار می دهیم:

cgi.fix_pathinfo=0

حالا کافی است php را با کد زیر  ریست نماییم :

sudo systemctl restart php7.0-fpm

در صورتی که کد بالا جواب نداد از کد زیر برای ریست php استفاده نمایید :

service  php7.1-fpm restart

ساخت فایل تنظیمات NGINX

امنون فقط یک گام مانده تا به lemp برسیم کافی است دستور زیر را بزنیم :

sudo nano /etc/nginx/sites-available/default

این فایل حاوی تنظیمات پیش فرض nginx است بهتر است به مقدار زیر تغییرش دهیم:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name server_domain_or_IP;

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

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

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

فایل بالا تنظیمات مناسب جهت استفاده php از nginx  می باشد .

بعد از اتمام تغییر فایل را بسته و نمظیمات را با کد زیر تست نمایید :

sudo nginx -t

در صورتی که خطایی مشاهده نشد کد زیر را در برای بارگزاری دوباره nginx بزنید :

sudo systemctl reload nginx

یا :

service  nginx restart

 

تبریک نصب شما با موفقیت انجام شده و شما می توانید با ساختن فایل php.info و قرار دادن تابع phpinfo() مطابق کد زیر سرور خود را تست نمایید :

<?php
phpinfo();

با تشکر – پیروز جنابی