کاربران زیادی درخواست آموزش نصب و کانفیگ وب سرور 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 نصب شده اند.
توجه کنید آموزش فوق در حد نصب و راه اندازی اولیه این سرویس ها هستند و مواردی مانند کانفیگ حرفه ای و تخصصی و همینطور ایمن سازی سرویس ها باید توسط یک متخصص سرور انجام شود که برای انجام آن میتوانید با ما در تماس باشید تا به بهترین نحو خدمتتون انجام دهیم تا هم از سرعت عالی در سرور خود بهره ببرید هم بهترین امنیت را تجربه نمایید
این پست کاملا اختصاصی نوشته شده است و نتیجه ساعت ها صرف زمان برای شما عزیزان است پس اگر کپی میکنید حتما لینک پست را ذکر بفرمایید
عیسی محمدزاده
کارشناس مدیریت سرور و هاستینگ و امنیت شبکه
اشتراک گذاری مطلب
لینک کوتاه برای مطلب
سلام وقتتون بخیر
بنده تنظیمات مربوط به 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
میشه لطفا راهنماییم کنید
جهت حل مشکل و بررسی دقیق تر لطف با بخش فنی ما در تماس باشید تا بطور دقیق سرورتون بررسی گردد