اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

آموزش نصب LEMP (یا Nginx 1.10.1, MariaDB 10 و PHP-FPM/PHP 5.5/5.6) در RedHat/CentOS 7/6 & Fedora 20-24

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    آموزش نصب LEMP (یا Nginx 1.10.1, MariaDB 10 و PHP-FPM/PHP 5.5/5.6) در RedHat/CentOS 7/6 & Fedora 20-24

    در این مقاله ما درباره نحوه نصب یک سرور LEMP (عبارت است از Linux, Nginx, MariaDB, PHP) به همراه PHP-FPM روی سرورهای RedHat/CentOS 7-6 و Fedora 20-24 با استفاده از ابزارهای مدیریت پکیج yum و dnf صحبت خواهیم کرد.

    در طول مقاله ما ریپازیتوری های Remi و Nginx را به منظور نصب آخرین ورژن این پکیج ها فعال خواهیم کرد.


    همچنین توصیه میشود مطالعه کنید :

    آموزش نصب و راه اندازی LEMP (مخفف Nginx, MariaDB 10, PHP 7) در اوبونتو 16.04/16.10

    آموزش نصب و راه اندازی LEMP (مخفف Linux, Nginx, MariaDB, PHP-FPM) در دبیان 9



    Nginx چیست ؟

    Nginx (یا Engine X) یک وب سرور، پراکسی سرور reverse و همچنین پروکسی سرور Mail (برای پروتکل های HTTP, SMTP, POP3 و IMAP) میباشد که بسیار کارآمد، سبک، روان و open source میباشد. برای کسب جزئیات بیشتر پیشنهاد میشود لینک زیر را مطالعه بفرمایید.
    This is the NGINX Wiki. NGINX is a free, open-source, high-performance HTTP server, reverse proxy, and IMAP/POP3 proxy server.



    PHP-FPM چیست ؟

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




    مرحله اول : نصب ریپازیتوری Remi

    Remi یک ریپازیتوری میباشد که شما میتوانید در آن آخرین ورژن های نرم افزار PHP (به همراه تمام امکانات) را برای نصب در توزیع های لینوکسی Enterprise و فدورا پیدا کنید.

    در RHEL/CentOS 7
    کد PHP:
    # yum update && yum install epel-release
    # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    --------- For RHEL Only ---------
    # subscription-manager repos --enable=rhel-7-server-optional-rpms 

    در RHEL/CentOS 6
    کد PHP:
    # yum update && yum install epel-release
    # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    --------- For RHEL Only ---------
    # subscription-manager repos --enable=rhel-6-server-optional-rpms 

    در Fedora 24
    کد PHP:
    # wget http://rpms.remirepo.net/fedora/remi-release-24.rpm
    # dnf install remi-release-24.rpm 

    در Fedora 23
    کد PHP:
    # wget http://rpms.remirepo.net/fedora/remi-release-23.rpm
    # dnf install remi-release-23.rpm 

    در Fedora 22
    کد PHP:
    # wget http://rpms.remirepo.net/fedora/remi-release-22.rpm
    # dnf install remi-release-22.rpm 
    بقیه ورژن های فدورا (21 و قبل از آن) دیگر پشتیبانی نمیشوند. به هر حال شما میتوانید با تغییر شماره ورژن در دستور بالا ریپازیتوری را نصب کنید.

    برای مثال، به منظور فعال کردن ریپازیتوری Remi در یک سرور Fedora 20 از دستور زیر استفاده میکنیم.

    در Fedora 20
    کد PHP:
    # wget http://rpms.remirepo.net/fedora/remi-release-20.rpm
    # yum install remi-release-20.rpm 


    مرحله دوم : نصب ریپازیتوری های Nginx و MariaDB

    ریپازیتوری Nginx تنها در توزیع ها CentOS و RedHat مورد نیاز است. فایلی به نام /etc/yum.repos.d/nginx.repo ایجاد کنید و خط های زیر را به آن اضافه کنید.

    در RHEL 7/6 :
    کد PHP:
    [nginx]
    name=nginx repo
    baseurl
    =http://nginx.org/packages/rhel/$releasever/$basearch/
    gpgcheck=0
    enabled
    =

    برای CentOS 7/6 :
    کد PHP:
    [nginx]
    name=nginx repo
    baseurl
    =http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled
    =
    برای فعال کردن ریپازیتوری MariaDB فایلی به نام /etc/yum.repos.d/mariadb.repo ایجاد کنید و محتوای زیر را به آن اضافه نمایید.
    کد PHP:
    [mariadb]
    name MariaDB
    baseurl 
    http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=

    همچنین توصیه میشود مطالعه کنید :

    آموزش نصب آخرین ورژن MariaDB 10 در لینوکس Debian, Ubuntu, RedHat, Fedora, CentOS



    مرحله سوم : فعال کردن ریپازیتوری Remi

    ریپازیتوری Remi به صورت پیش فرض PHP ورژن 5.4 را ارائه میدهد، اگر شما میخواهید که PHP 5.5 یا PHP 5.6 را نصب کنید باید در فایل /etc/yum.repos.d/remi.repo برای بخش [remi-php55] و [remi-php56] خط enabled=0 را به enabled=1 جهت فعال کردن ریپازیتوری تغییر دهید.

    برای نصب PHP 5.5 در CentOS/RHEL 7 و Fedora
    کد PHP:
    [remi-php55]
    name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch
    #baseurl=http://rpms.remirepo.net/enterprise/6/php55/$basearch/
    mirrorlist=http://rpms.remirepo.net/enterprise/6/php55/mirror
    # NOTICE: common dependencies are in "remi-safe"
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi 

    برای نصب PHP 5.6 در CentOS/RHEL 7 و Fedora
    کد PHP:
    [remi-php56]
    name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch
    #baseurl=http://rpms.remirepo.net/enterprise/6/php56/$basearch/
    mirrorlist=http://rpms.remirepo.net/enterprise/6/php56/mirror
    # NOTICE: common dependencies are in "remi-safe"
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi 

    همچنین توصیه میشود مطالعه بفرمایید :

    آموزش نصب PHP 7.X در CentOS 7 و RedHat 7



    مرحله چهارم : نصب Nginx, MariaDB, PHP & PHP-FPM
    کد PHP:
    ----------- Installing on RHEL/CentOS 7/-----------
    # yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
    ----------- Installing on Fedora 22-24 -----------
    # dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
    ----------- Installing on Fedora 20-21 -----------
    # yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 


    مرحله پنجم : نصب ماژول های PHP
    کد PHP:
    ----------- Installing on RHEL/CentOS 7/-----------
    # yum --enablerepo=remi install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
    ----------- Installing on Fedora 22-24 -----------
    # dnf --enablerepo=remi install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
    ----------- Installing on Fedora 20-21 -----------
    # yum --enablerepo=remi install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo 


    مرحله ششم : متوقف و غیرفعال کردن سرویس Apache

    به صورت پیش فرض آپاچی و انجین ایکس روی پورت یکسانی (TCP 80) در حال Listen کردن میباشند. به همین دلیل به منظور استفاده کردن از Nginx، اگر apache روی سرورتان نصب باشد شما نیاز دارید آنرا stop و disable/mask کنید (mask یک ورژن قوی تری از disable است که سرویس را به/dev/null لینک میکند) یا در صورتیکه قصد ندارید بعدا از آن استفاده کنید میتوانید آنرا حذف کنید.
    کد PHP:
    # systemctl stop httpd
    # systemctl disable httpd
    or
    # systemctl mask httpd 


    مرحله هفتم : Start/Stop کردن سرویس Nginx, MariaDB & PHP-FPM
    کد PHP:
    ----------- Enable NginxMariaDB and PHP-FPM on Boot -----------
    # systemctl enable nginx
    # systemctl enable mariadb
    # systemctl enable php-fpm
    ----------- Start NginxMariaDB and PHP-FPM -----------
    # systemctl start nginx
    # systemctl start mariadb
    # systemctl start php-fpm 


    مرحله هشتم : پیکربندی Nginx و PHP-FPM

    اکنون ساختار دایرکتوری را تحت /srv/www برای وب سایت تان ایجاد کنید (یک ویرچوال هاست یا همانطور که در Nginx نامیده میشود یک Server block) در این مثال ما از linux-zone.org استفاده میکنیم اما شما میتوانید دامین دیگری را انتخاب کنید و یا حتیی دایرکتوری اصلی مورد نظر خود را برای وب سایت تان در نظر بگیرید.
    کد PHP:
    # mkdir -p /srv/www/linux-zone/public_html
    # mkdir /srv/www/linux-zone/logs
    # chown -R nginx:nginx /srv/www/linux-zone 


    مرحله نهم : تنظیمات دایرکتوری های Virtual Host در Nginx

    همانطور که شما میدانید توانایی پیاده سازی چندین سایت از یک ماشین یکسان یکی از قابلیت های بارز وب سرورهای مهم میباشد. اکنون با ایجاد دایرکتوری ها برای ذخیره بلاک های سرورمان (با عنوان virtual host در آپاچی نیز شناخته میشود) تحت مسیر /etc/nginx/ کار را ادامه میدهیم.
    کد PHP:
    # mkdir /etc/nginx/sites-available
    # mkdir /etc/nginx/sites-enabled 
    کد زیر که باید در فایل /etc/nginx/nginx.conf قبل از بستن بلاک HTTP وارد شود، ما را مطمئن میسازد که فایل های کانفیگ درون دایرکتوری /etc/nginx/sites-enabled هنگامیکه انجین اکس در حال اجراست لحاظ خواهد شد.
    کد PHP:
    ## Load virtual host conf files. ##
    include /etc/nginx/sites-enabled/*; 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Configuring-Nginx-VirtualHost.png نمایش ها:	1 اندازه:	46.5 KB شناسه:	22115


    برای ایجاد بلاک Server برای linux-zone.org کدهای زیر را به فایل /etc/nginx/sites-available/linux-zone اضافه کنید (این فایل زمانیکه شما مسیر کامل را با ادیتور مورد نظرتان تایپ میکنید ایجاد خواهد شد). این تنظیمات نمونه ابتدایی از فایل کانفیگ virtuall host میباشد.
    کد PHP:
    server {
    listen 80 default;
    server_name linux-zone;
    access_log /srv/www/linux-zone/logs/access.log;
    error_log /srv/www/linux-zone/logs/error.log;
    root /srv/www/linux-zone/public_html;
    location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         
    fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }

    پروسه فعال سازی یک ویرچوال هاست شامل ایجاد یک symbolic link از ویرچوال هاست linux-zone به /etc/nginx/sites-enabled میباشد.
    کد PHP:
    # ln -s /etc/nginx/sites-available/linux-zone /etc/nginx/sites-enabled/linux-zone 
    به منظور اعمال واقعی تغییراتی که انجام دادیم اکنون نیاز داریم که Nginx را restart کنیم. بررسی فایل های کانفیگ به منظور پیدا کردن هر گونه خطای syntax قبل از ادامه به هر کاری گاهی اوقات مفید میباشد.
    کد PHP:
    # nginx -t
    # systemctl restart nginx
    # systemctl status nginx 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Restart-Nginx-and-Verify-Status.png نمایش ها:	1 اندازه:	106.4 KB شناسه:	22116


    برای دسترسی به ویرچوال هاست جدیدا ایجاد شده خود نیاز دارید که خط زیر را به فایل /etc/hosts به عنوان روش ساده ای برای resolve کردن domain name اضافه کنید.
    کد PHP:
    192.168.10.240    www.linux-zone.org linux-zone.org 


    مرحله دهم : تست کردن Nginx, MySQL, PHP & PHP-FPM

    اجازه دهید شیوه کلاسیک تست کردن php را استفاده کنیم. فایلی به نام test.php تحت پوشه /srv/www/linux-zone/public_html/ ایجاد کنید و کدهای زیر را در آن اضافه کنید.

    فانکشن phpinfo() حجم عظیمی از اطلاعات درباره ورژن PHP موجودتان به شما نمایش میدهد.
    کد PHP:
    <?php
    phpinfo
    ();
    ?>
    اکنون در مرورگرتان http://linux-zone.org/test.php را وارد کرده و از موجود بودن ماژول ها و نرم افزارهای اضافی نصب شده مطمئن شوید.


    همچنین توصیه میشود مطالعه کنید.

    نحوه رمزگذاری دایرکتوری ها در وب سرور Nginx

    راه اندازی Virtual Hosting بر پایه Name و IP در وب سرور انجین ایکس

    آموزش نصب SSL (تنظیمات https به همراه گواهینامه SSL) در وب سرور nginx روی RHEL/CentOS 7/6

    آموزش امن کردن و بالا بردن سرعت وب سرور Nginx


    شما اکنون یک سرور LEMP در حال اجرا دارید. اگر به هنگام مراحل بالا با مشکلی روبه رو شدید آنرا در اینجا مطرح کنید. هر گونه سوال و پیشنهادی مورد استقبال قرار خواهد گرفت.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-20-2021, 06:25 PM.
    Instagram : https://www.instagram.com/iranlinuxforum

    Voip Trainer - Asterisk - Elastix - Agi Programming- NewRock

    Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
    Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
    Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
    LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

    Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

    #2
    سلام
    با تشکر از آموزشتون... معمولاً آموزش نصب این موارد توی اینترنت زیاد هست ولی آموزش کانفیگ و مدیریتش نیست. اگر امکانش هست توضیحی دهید که چه طور باید کانفیگ و مدیریت کنیم.
    با تشکر

    کامنت

    درباره انجمن منطقه لینوکسی ها

    انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

    شبکه های اجتماعی
    در حال انجام ...
    X