نحوه نصب پشته LEMP (Linux، Nginx، MySQL، PHP) در CentOS 7 VPS یا سرور اختصاصی

مقدمه

LEMP مخفف Linux، Nginx، MySQL و PHP است. پشته LEMP درست مانند پشته LAMP (با آپاچی به جای Nginx) برای توسعه و استقرار برنامه های وب استفاده می شود. Nginx در LEMP با استفاده از رویدادهای ناهمزمان ، درخواست های معماری مبتنی بر رویداد مدولار را ارائه می دهد. این ویژگی باعث می شود که در بارهای زیاد عملکرد بالایی داشته باشد. از MySQL برای ذخیره اطلاعات وب سایت استفاده می شود در حالی که PHP برای پردازش محتوای پویا سایت ها است.


در این مقاله نحوه نصب پشته LEMP در Centos 7 VPS یا سرور اختصاصی ارائه شده است. ما با استفاده از آخرین نسخه های مؤلفه های LEMP Stack در زمان انتشار به شرح زیر نشان می دهیم:

  • نسخه Nginx 1.15.2
  • PHP-FPM نسخه 7.2
  • MySQL Community نسخه 8.0

نگینکس

منبع باز NGINX در دو نوع موجود است:

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

دو روش برای نصب یا خط اصلی یا Nginx پایدار به شرح زیر وجود دارد:

  • نصب بسته Nginx از مخزن رسمی Nginx یا مخزن رسمی سیستم عامل: ساده ترین روش نصب. این بسته تقریباً تمام ماژول های رسمی Nginx را در خود جای داده است.
  • گردآوری و نصب از منبع: نحوه تصمیم گیری برای انتخاب ماژول های خاص در بسته ، روش انعطاف پذیر تری دارد.

در این حالت ، Nginx – Mainline Type را از مخزن رسمی آن Nginx با ایجاد پرونده مخفی yum و چسباندن پیکربندی به شرح زیر نصب می کنیم:

$ sudo vim /etc/yum.repos.d/nginx.repo
[nginx]
name = repin nginx
baseurl = https: //nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck = 0
فعال شده = 1

پرونده را ذخیره کنید و انصراف دهید.

مخزن Centos 7 را با مخزن nginx به روز کنید و nginx را نصب کنید

به روز رسانی سودو یام
$ sudo yum nginx -y را نصب کنید

nginx را شروع کرده و روی بوت را فعال کنید

$ sudo systemctl شروع nginx
$ sudo systemctl nginx را فعال می کند

تأیید کنید که Nginx در حال اجرا است

[linuxuser @ centos7-lemp] $ curl -I 127.0.0.1
HTTP / 1.1 200 خوب
سرور: nginx / 1.15.2
تاریخ: سه شنبه ، 31 ژوئیه 2018 13:03:07 GMT
نوع محتوا: text / html
محتوا-طول: 612
آخرین اصلاح: سه شنبه ، 24 ژوئیه 2018 14:05:29 GMT
اتصال: زنده نگه دارید
ETag: "5b573229-264"
محدوده پذیرش: بایت

از خروجی ، تأیید می کنیم که نسخه نصب شده 1.15.2 است

همچنین می توانید از طریق مرورگر خود بررسی کرده و آدرس IP یا نام دامنه سرور وب خود را وارد کنید.

http: // server_domain_name_or_public_IP /

انجمن MySQL

ما با استفاده از دستورالعمل های آموزش نحوه نصب MYSQL 8.0 و ایجاد پایگاه داده روی CentOS 7 Linux VPS یا سرور اختصاصی ، ما MySQL 8.0 Community را نصب می کنیم (برای مدیریت داده های وب سایت).

PHP

PHP در پشته LEMP برای فعال کردن پردازش محتوای پویا لازم است ، زیرا Nginx قابلیت پردازش PHP داخلی مانند سایر سرورها را ندارد ، به عنوان مثال. Litespeed در همین رابطه ، PHP-FPM (FastCGI Manager Manager) نسخه 7.2 را نصب می کنیم. به طور پیش فرض Centos 7 همراه با PHP 5.4 است که به EOL خود رسیده است ، اکنون قدیمی است و دیگر پشتیبانی نمی شود. PHP 7.2 برنامه وب را قادر می سازد تا سریعتر بارگیری شود و از منابع سیستم کمتری استفاده کند. علاوه بر این ، این یکپارچه سازی یکپارچه سازی پایگاه داده MySQL را شامل می شود ، بنابراین یکپارچه با MySQL 8.0 نصب شده کار می کند.

نصب و فعال کردن Remi Repository

بسته PHP-FPM در مخزن رمی یافت می شود.

$ sudo yum ابزارهای yum را نصب کنید
$ sudo yum نصب کنید- http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum-config-manager – قابل حذف remi-php72

ماژول های PHP-FPM و معمولاً مورد استفاده را نصب کنید

$ sudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

PHP-FPM را شروع و فعال کنید

$ sudo systemctl شروع php72-php-fpm
$ sudo systemctl php72-php-fpm را فعال می کند

نسخه PHP را بررسی کنید

[linuxuser @ centos7-lemp] $ php72 -v
PHP 7.2.8 (کلی) (ساخته شده: 17 ژوئیه 2018 08:41:40) (NTS)
حق چاپ (c) 1997-2018 گروه PHP
Zend Engine v3.2.0، Copyright (c) 1998-2018 Zend Technologies
با Zend OPcache v7.2.8 ، کپی رایت (ج) 1999-2018 ، توسط Zend Technologies

پیکربندی اولیه امنیت پی اچ پی

پرونده php.ini را ویرایش کنید و پارامتر cgi.fix_pathinfo را پیدا کنید ، آن را غیرقابل تصرف کنید و روی 0 تنظیم کنید. به طور پیش فرض ، این تنظیم به PHP اجازه می دهد تا در صورت پیدا نکردن فایل پی اچ پی دقیقاً نزدیکترین پرونده را اجرا کند. از این رو کاربران می توانند به راحتی درخواستهای PHP مخرب ایجاد کنند که PHP با سهولت پردازش شود.

$ sudo vim /etc/opt/remi/php72/php.ini

به شرح زیر ویرایش کنید:

؛ cgi.fix_pathinfo * واقعی * PATH_INFO / PATH_TRANSLATED پشتیبانی از CGI را فراهم می کند. پی اچ پی
؛ رفتار قبلی این بود که PATH_TRANSLATED را بر روی SCRIPT_FILENAME تنظیم کنید ، و به صورت غیرمستقیم
؛ آنچه PATH_INFO است. برای اطلاعات بیشتر در مورد PATH_INFO ، مشخصات cgi را مشاهده کنید. تنظیمات
؛ این به 1 باعث می شود PHP CGI مسیرهای خود را مطابق با مشخصات ثابت کند. یک تنظیم
؛ صفر باعث می شود که PHP مانند گذشته رفتار کند. پیش فرض 1. شما باید اسکریپت های خود را تعمیر کنید
؛ برای استفاده از SCRIPT_FILENAME به جای PATH_TRANSLATED.
؛ http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo = 0

پیکربندی PHP-FPM را برای کار با Nginx تنظیم کنید

پرونده پیکربندی php-fpm را به شرح زیر ویرایش کنید

$ sudo vim /etc/opt/remi/php72/php-fpm.d/www.conf
؛ کاربر Nginx را اضافه کنید
؛ کاربر / گروه فرآیند Unix
؛ توجه: کاربر الزامی است. اگر گروه تنظیم نشده باشد ، گروه پیش فرض کاربر
؛ استفاده خواهد شد.
؛ RPM: کاربر apache انتخاب شده است تا به همان فهرست httpd دسترسی پیدا کند
کاربر = nginx

؛ RPM: گروهی را که مجاز به نوشتن گزارش هستند ، نگه دارید.
گروه = nginx

؛ آدرسی که در آن درخواستهای FastCGI را بپذیرید.
؛ نحوهای معتبر عبارتند از:
؛ ‘ip.add.re.ss: port’ – برای گوش دادن به سوکت TCP به آدرس IPv4 خاص در
؛ یک بندر خاص.
؛ ‘[ip: 6: addr: ess]: port’ – برای گوش دادن به سوکت TCP به یک آدرس IPv6 خاص در
؛ یک بندر خاص.
؛ ‘port’ – برای گوش دادن به سوکت TCP به همه آدرس ها
؛ (نقشه برداری IPv6 و IPv4) در یک درگاه خاص.
؛ ‘/ path / to / unix / socket’ – برای گوش دادن به سوکت یونیکس.
؛ توجه: این مقدار اجباری است.
گوش دادن = 127.0.0.1:9000

سرویس php-fpm را دوباره شروع کنید تا تغییرات پیکربندی انجام شود

$ sudo systemctl php72-php-fpm را مجدداً راه اندازی کنید

پرونده پیکربندی Nginx را ویرایش کنید

$ sudo vim /etc/nginx/sites-enabled/default.conf

پس از ایجاد تغییرات ، پرونده باید به شرح زیر باشد:

سرور {
گوش دادن 80؛
نام ارائهکننده ؛

#charset koi8-r؛
#access_log /var/log/nginx/host.access.log اصلی؛

محل / {
root / usr / share / nginx / html؛
index index.php index.html index.htm؛
}

error_page 404 /404.html؛

# صفحات خطای سرور تغییر مسیر به صفحه ثابت /50x.html
#
error_page 500 502 503 504 /50x.html؛
مکان = /50x.html
root / usr / share / nginx / html؛
}

# پروکسی اسکریپت های پی اچ پی را به گوش دادن آپاچی در 127.0.0.1:80 گوش دهید
#
# مکان ~ \ .php $
# proxy_pass http://127.0.0.1؛
#}

# اسکریپت های PHP را به سرور FastCGI منتقل کنید که در 127.0.0.1:9000 گوش می دهد
#
محل \ .php $
root / usr / share / nginx / html؛
fastcgi_pass 127.0.0.1:9000؛
fastcgi_index index.php؛
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name؛
شامل fastcgi_params؛
}

اگر ریشه سند Apache باشد ، دسترسی به پرونده های .htaccess را انکار نمی کند
# همزمان با یکی از nginx
#
# محل /\.ht
# انکار همه؛
#}
}

اگر پیکربندی خوب است ، تست کنید

[linuxuser @ centos7-lemp] $ sudo nginx -t
nginx: نحو file پیکربندی /etc/nginx/nginx.conf ترکیب خوب است
nginx: پرونده پیکربندی /etc/nginx/nginx.conf تست موفقیت آمیز است

برای تأثیر تغییرات ، nginx را مجدداً راه اندازی کنید

$ sudo systemctl nginx را شروع مجدد کنید

تست PHP

پرونده را ایجاد کنید اطلاعات.به صورت زیر php را وارد کرده و آن را در فهرست فهرست root Nginx قرار دهید

$ sudo vim /usr/share/nginx/html/info.php
<?php phpinfo ()؛ ?>

فایل را ذخیره و از آن خارج شوید.

سپس به آدرس مرورگر مراجعه کنید – http: //your_domain_or_server_public_IP/info.php

در صفحه وب اطلاعات PHP درباره سرور نمایش داده می شود. این تأیید می کند که Nginx به درستی با PHP کار می کند. برای اهداف امنیتی ، شما باید برای حذف پرونده info.php در فهرست دایرکتوری وب اقدام کنید.

نتیجه

اکنون که پشته LEMP را با موفقیت نصب کرده اید ، هم اکنون می توانید وب سایت و برنامه کاربردی عالی خود را در دایرکتوری root / usr / share / nginx / html میزبان و در خدمت مشتریان احتمالی خود قرار دهید. در واقع بسیار ساده است!

این 3 سرویس برتر میزبانی MySQL را بررسی کنید:

میزبانی A2

قیمت شروع:
$ 3.92


قابلیت اطمینان
9.3


قیمت گذاری
9.0


کاربر پسند
9.3


پشتیبانی
9.3


امکانات
9.3

بررسی ها را بخوانید

از میزبانی A2 دیدن کنید

FastComet

قیمت شروع:
2.95 دلار


قابلیت اطمینان
9.7


قیمت گذاری
9.5


کاربر پسند
9.7


پشتیبانی
9.7


امکانات
9.6

بررسی ها را بخوانید

از FastComet بازدید کنید

میزبان

قیمت شروع:
$ 0.99


قابلیت اطمینان
9.3


قیمت گذاری
9.3


کاربر پسند
9.4


پشتیبانی
9.4


امکانات
9.2

بررسی ها را بخوانید

از هاستینجر بازدید کنید

مقالات مرتبط با نحوه

  • نحوه نصب پشته LEMP (Linux، Nginx، MySQL، PHP) بر روی سرور اختصاصی Ubuntu 18.04 یا اختصاصی
    حد واسط
  • نحوه نصب MYSQL 8.0 و ایجاد بانک اطلاعاتی بر روی CentOS 7 Linux VPS یا سرور اختصاصی
    حد واسط
  • نحوه نصب phpMyAdmin در CentOS 7 VPS یا سرور اختصاصی
    حد واسط
  • نحوه تنظیم و بهینه سازی عملکرد MySQL 8.0 در سرور CentOS 7
    کارشناس
  • نحوه نصب CachetHQ در CentOS 7 VPS یا سرور اختصاصی
    حد واسط
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me