در این مقاله ما درباره نحوه نصب LEMP (Linux + Nginx + MariaDB + PHP-FPM) stack روی Debian 9 Stretch به عنوان جایگزینی برای LAMP (میتوانید آموزش نصب LAMP روی Debian 9 را نیز مطالعه کنید) صحبت خواهیم کرد.
علاوه بر این، ما نحوه اجرای تنظیمات Nginx / PHP-FPM را نشان خواهیم داد به طوریکه حتی مدیران جدید سیستم میتوانند وب سرورهای جدید تجاری را به نحوی راه اندازی کنند که صفحات داینامیک را نیز در آنها داشته باشند.
برای این منظور، از آخرین آپدیت های ریپازیتوری های رسمی توزیع ها نهایت استفاده را خواهیم برد. ما فرض را بر این میگذاریم که شما دبیان 9 را نصب شده بر روی کیس، ویرچوال ماشین یا VPS دارید، یا از Debian 8 Jessie به Debian 9 آپگرید شده باشد.
همچنین توصیه میشود مطالعه کنید :
آموزش تصویری نصب وب سرور قدرتمند Nginx به همراه دیتابیس MariaDB و PHP در اوبونتو 16.04 و 16.10 (نسخه Server و Desktop)
نصب LEMP در Debian 9 Stretch
شما ممکن است تعجب کنید که چرا ما به جای PHP از PHP-FPM به عنوان بخشی از LEMP استفاده کردیم. برخلاف وب سرورهای دیگر انجین ایکس از PHP پشتیبانی نمیکند.
به همین دلیل، PHP-FPM (یکی از ابزارهای مدیریت سریع Process ها) برای کنترل درخواستهای صفحات PHP استفاده میشود. شما میتوانید اطلاعات بیشتری درباره PHP-FPM در سایت رسمی PHP بیاموزید.
ورژن پیش فرض که در ریپازیتوری های دبیان فراهم آمده php7.0-fpm میباشد. همانطور که ممکن است شما براساس نام پکیج حدس زده باشید این ورژن میتواند حتی درخواست های به سمت صفحات شامل کدهای PHP 7 را کنترل کند.
نکته : قبل از اینکه جلوتر برویم، اگر آپاچی را از قبل نصب دارید، مطمئن شوید که سرویس آن غیرفعال و stop شده باشد.
با توجه به آنچه گفته شده، بیایید LEMP را به همراه اجزاء و محتویاتش همانند زیر نصب کنیم.
زمانیکه نصب کامل شد، ابتدا از اجرا بودن Nginx و PHP-FPM مطمئن بشویم سپس هر دوی سرویس ها را در boot فعال میکنیم که بعد از بوت شدن سیستم به صورت اتوماتیک اجرا شوند.
درصورتی که یکی از هر دوی این سرویس ها اجرا نشده بودند، دستورات زیر را برای اجرای آن سرویس وارد کنید.
هرکدام از دیتابیس های MariaDB یا MySQL که نصب شده باشد، اجرای mysql_secure_installation برای اجرای تنظیمات امنیتی اولیه و تنظیم کردن پسورد برای یوزر root دیتابیس مهم میباشد.
اگر شما نحوه کارکرد دستور بالا را نمیدانید، میتوانید به مرحله 4 از نحوه نصب MariaDB 10 در Debian و Ubuntu مراجعه کنید. (به زودی)
تنظیمات Nginx برای استفاده از PHP-FPM در Debian 9
فایل تنظیمات اصلی Nginx در مسیر /etc/nginx/sites-available/default میباشد، که ما باید تغییر زیر را در block سرور در این مسیر ایجاد کنیم.
برای مثال :
بعد از اینکه تنظیمات بالا را انجام دادید شما میتوانید از دستور زیر برای تست کردن فایل تنظیمات به منظور بررسی هر گونه خطایی استفاده کنید.
در اینجا فایل /etc/nginx/site-available/default شما باید چیزی شبیه به تصویر زیر باشد که عددهای مارک شده در تصویر در حقیقت نمایشگر مراحل کانفیگی است که در بالا لیست کردیم.
تست Nginx و PHP-FPM روی Debian 9
برای اینکه مطمئن شویم که در حال حاضر از Nginx به عنوان وب سرور استفاده میکنیم فایلی به نام info.php درون مسیر /var/www/html با محتوای زیر ایجاد میکنیم.
سپس در مرورگر آدرس http://192.168.10.242/info.php را تایپ کرده و بررسی میکنیم که در بالای صفحه عبارت های موجود در تصویر زیر را مشاهده کنیم.
نکته : اگر به هنگام باز کردن یک فایل .php در مرورگرتان که توسط Nginx نمایش داده میشود بجای اینکه فایل اجرا شود، دانلود شود کافیست که cache مرورگرتان را پاک کنید یا از یک مرورگر متفاوت استفاده کنید، اگر شما از کروم استفاده میکنید ممکن است بخواهید با استفاده از مد incognito تست کنید. همچنین با restart کردن سرویس Nginx این مشکل هم رفع خواهد شد.
در نهایت در مرورگر خود فایل habilibooks.phpرا که قبلا در آموزش نصب LAMP (Linux, Apache, MariaDB - MySQL, PHP) روی دبیان 9 ایجاد کردیم باز کنید.همانطور که در تصویر زیر مشاهده میکنید این فایل توسط انجین اکس قابل مشاهده است.
خلاصه
در این پست ما درباره نحوه نصب و کانفیگ انجینکس برای نمایش صفحات php داینامیک مان صحبت کردیم مهم است که توجه کنید بعد از این نصب اولیه تنظیمات دیگری هستند که باید برای امنیت وب سرور مورد توجه قرار گیرند.
شما میتوانید یک آموزش ابتدایی در مقاله راهنمای جامع برای امنیت و بهبود بخشیدن کارایی وب سرور Nginx را مطالعه کنید.
اگر شما به دنبال ویرچوال هاستینگ روی Nginx هستید پیشنهاد میشود مقاله نحوه تنظیم ویرچوال هاست های براساس نام و براساس IP روی Nginx را مطالعه کنید.
همچنین توصیه میشود مطالعه کنید.
نحوه رمزگذاری دایرکتوری ها در وب سرور Nginx
آموزش نصب SSL (تنظیمات https به همراه گواهینامه SSL) در وب سرور nginx روی RHEL/CentOS 7/6
مثل همیشه سوالات و نظرات ارزشمند خود را با ما به اشتراک بگذارید.
علاوه بر این، ما نحوه اجرای تنظیمات Nginx / PHP-FPM را نشان خواهیم داد به طوریکه حتی مدیران جدید سیستم میتوانند وب سرورهای جدید تجاری را به نحوی راه اندازی کنند که صفحات داینامیک را نیز در آنها داشته باشند.
برای این منظور، از آخرین آپدیت های ریپازیتوری های رسمی توزیع ها نهایت استفاده را خواهیم برد. ما فرض را بر این میگذاریم که شما دبیان 9 را نصب شده بر روی کیس، ویرچوال ماشین یا VPS دارید، یا از Debian 8 Jessie به Debian 9 آپگرید شده باشد.
همچنین توصیه میشود مطالعه کنید :
آموزش تصویری نصب وب سرور قدرتمند Nginx به همراه دیتابیس MariaDB و PHP در اوبونتو 16.04 و 16.10 (نسخه Server و Desktop)
نصب LEMP در Debian 9 Stretch
شما ممکن است تعجب کنید که چرا ما به جای PHP از PHP-FPM به عنوان بخشی از LEMP استفاده کردیم. برخلاف وب سرورهای دیگر انجین ایکس از PHP پشتیبانی نمیکند.
به همین دلیل، PHP-FPM (یکی از ابزارهای مدیریت سریع Process ها) برای کنترل درخواستهای صفحات PHP استفاده میشود. شما میتوانید اطلاعات بیشتری درباره PHP-FPM در سایت رسمی PHP بیاموزید.
ورژن پیش فرض که در ریپازیتوری های دبیان فراهم آمده php7.0-fpm میباشد. همانطور که ممکن است شما براساس نام پکیج حدس زده باشید این ورژن میتواند حتی درخواست های به سمت صفحات شامل کدهای PHP 7 را کنترل کند.
نکته : قبل از اینکه جلوتر برویم، اگر آپاچی را از قبل نصب دارید، مطمئن شوید که سرویس آن غیرفعال و stop شده باشد.
با توجه به آنچه گفته شده، بیایید LEMP را به همراه اجزاء و محتویاتش همانند زیر نصب کنیم.
کد PHP:
# aptitude update
# aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm
کد PHP:
# systemctl status nginx php7.0-fpm
کد PHP:
# systemctl start nginx php7.0-fpm
# systemctl enable nginx php7.0-fpm
کد PHP:
# mysql_secure_installation
تنظیمات Nginx برای استفاده از PHP-FPM در Debian 9
فایل تنظیمات اصلی Nginx در مسیر /etc/nginx/sites-available/default میباشد، که ما باید تغییر زیر را در block سرور در این مسیر ایجاد کنیم.
- از فعال بودن بلاک location که درخواست های PHP را کنترل میکند مطمئن شوید، به استثنای یک مورد که در آن قسمت fastcgi_pass به کارت شبکه loopback اشاره میکند.
- در قسمت index عبارت index.php را اضافه کنید تا مشخص کنید که در صورتی که این فایل موجود بود باید به صورت پیش فرض و قبل از index.html یا فایل های دیگر مورد استفاده قرار گیرد.
- قسمت server_name را اضافه کنید که به ip آدرس یا Hostname سرورتان اشاره میکند. در این مثال ما از 192.168.10.242 استفاده میکنیم.
- علاوه بر این مطمئن شوید که قسمت root به location ی که فایل های .php شما ذخیره خواهند شد اشاره میکند. (به صورت پیش فرض مسیر /var/www/html)
برای مثال :
بعد از اینکه تنظیمات بالا را انجام دادید شما میتوانید از دستور زیر برای تست کردن فایل تنظیمات به منظور بررسی هر گونه خطایی استفاده کنید.
کد PHP:
# nginx -t
در اینجا فایل /etc/nginx/site-available/default شما باید چیزی شبیه به تصویر زیر باشد که عددهای مارک شده در تصویر در حقیقت نمایشگر مراحل کانفیگی است که در بالا لیست کردیم.
کد PHP:
# grep -Ev '#' /etc/nginx/sites-available/default
تست Nginx و PHP-FPM روی Debian 9
برای اینکه مطمئن شویم که در حال حاضر از Nginx به عنوان وب سرور استفاده میکنیم فایلی به نام info.php درون مسیر /var/www/html با محتوای زیر ایجاد میکنیم.
کد PHP:
<?php
phpinfo();
?>
نکته : اگر به هنگام باز کردن یک فایل .php در مرورگرتان که توسط Nginx نمایش داده میشود بجای اینکه فایل اجرا شود، دانلود شود کافیست که cache مرورگرتان را پاک کنید یا از یک مرورگر متفاوت استفاده کنید، اگر شما از کروم استفاده میکنید ممکن است بخواهید با استفاده از مد incognito تست کنید. همچنین با restart کردن سرویس Nginx این مشکل هم رفع خواهد شد.
در نهایت در مرورگر خود فایل habilibooks.phpرا که قبلا در آموزش نصب LAMP (Linux, Apache, MariaDB - MySQL, PHP) روی دبیان 9 ایجاد کردیم باز کنید.همانطور که در تصویر زیر مشاهده میکنید این فایل توسط انجین اکس قابل مشاهده است.
خلاصه
در این پست ما درباره نحوه نصب و کانفیگ انجینکس برای نمایش صفحات php داینامیک مان صحبت کردیم مهم است که توجه کنید بعد از این نصب اولیه تنظیمات دیگری هستند که باید برای امنیت وب سرور مورد توجه قرار گیرند.
شما میتوانید یک آموزش ابتدایی در مقاله راهنمای جامع برای امنیت و بهبود بخشیدن کارایی وب سرور Nginx را مطالعه کنید.
اگر شما به دنبال ویرچوال هاستینگ روی Nginx هستید پیشنهاد میشود مقاله نحوه تنظیم ویرچوال هاست های براساس نام و براساس IP روی Nginx را مطالعه کنید.
همچنین توصیه میشود مطالعه کنید.
نحوه رمزگذاری دایرکتوری ها در وب سرور Nginx
آموزش نصب SSL (تنظیمات https به همراه گواهینامه SSL) در وب سرور nginx روی RHEL/CentOS 7/6
مثل همیشه سوالات و نظرات ارزشمند خود را با ما به اشتراک بگذارید.