CentOS 7

نصب Nginx، MySQL، PHP در CentOS 7

یک پشته نرم افزاری LEMP گروهی از نرم افزارهای منبع باز است که به طور معمول در کنار هم نصب می شوند تا سرور بتواند میزبان وب سایت های پویا و برنامه های وب باشد. این اصطلاح در واقع حاصل یک مخفف است که سیستم عامل لینوکس ، با سرور وب ENginx (که جایگزین مولفه Apache یک پشته LAMP می شود) را نشان میدهد. داده های سایت در یک پایگاه داده مبتنی بر MySQL ذخیره می شوند و محتوای پویا توسط PHP پردازش می شود.
در این راهنما ، یک پشته LEMP را با PHP 7.4 که روی یک سرور CentOS 7 نصب شده است ، با استفاده از MariaDB به عنوان سیستم مدیریت پایگاه داده ، دریافت خواهیم کرد. MariaDB به عنوان یک جایگزین برای سرور اصلی MySQL کار می کند ، که در عمل به این معنی است که می توانید بدون نیاز به ایجاد پیکربندی یا تغییر کد در برنامه ، به MariaDB سوییچ کنید.
پیش نیازها
قبل از شروع این راهنما ، باید یک حساب کاربری جداگانه و غیر ریشه در سرور خود تنظیم کنید. با انجام مراحل 1-4 در تنظیم اولیه سرور برای CentOS 7 می توانید نحوه انجام این کار را یاد بگیرید.
مرحله 1 – نصب Nginx
به منظور نمایش صفحات وب برای بازدید کنندگان سایت ، قصد داریم از Nginx ، سرور وبی با کارایی بالا استفاده کنیم. برای به دست آوردن آخرین نسخه Nginx ، ابتدا مخزن EPEL را نصب خواهیم کرد که حاوی نرم افزار اضافی برای سیستم عامل CentOS 7 است.
برای اضافه کردن مخزن CentOS 7 EPEL ، دستور زیر را اجرا کنید:
⦁ $ sudo yum install epel-release

از آنجا که ما از یک دستور sudo استفاده می کنیم ، این عملیات با امتیازات اصلی انجام می شود. از شما رمزعبور کاربر معمولی را میخواهد تا تأیید کند که شما اجازه اجرای دستورات دارای امتیازات اصلی را دارید. همچنین از شما خواسته می شود نصب را تأیید کنید ، بنابراین Y را برای ادامه فشار دهید.
اکنون که مخزن EPEL روی سرور شما نصب شده است ، Nginx را با استفاده از دستور yum زیر نصب کنید:
⦁ $ sudo yum install nginx

پس از اتمام نصب ، سرویس Nginx را با این دستور راه اندازی کنید:
⦁ $ sudo systemctl start nginx

با مراجعه به آدرس IP عمومی سرور خود در مرورگر وب ، می توانید بلافاصله چک کنید که همه چیز مطابق پیش بینی جلو میرود (اگر این اطلاعات را ندارید ، میتوانید آدرس IP عمومی خود را در زیر عنوان بعدی ببینید):
Open in a web browser:
http://server_domain_name_or_IP/

صفحه پیش فرض CentOS 7 Nginx را مشاهده خواهید کرد ، که برای اهداف اطلاع رسانی و آزمایش میباشد. باید چیزی شبیه به این ببینید:

اگر این صفحه را مشاهده کردید ، اکنون سرور وب شما به درستی نصب شده است.
برای فعال کردن Nginx در بوت ، دستور زیر را اجرا کنید:
⦁ $ sudo systemctl enable nginx

چگونه آدرس IP عمومی سرور خود را پیدا کنید
اگر نمی دانید آدرس IP عمومی سرور شما چیست ، روش های مختلفی برای یافتن آن وجود دارد. معمولاً آدرسی است که شما برای اتصال به سرور خود از طریق SSH استفاده می کنید.
از خط فرمان می توانید این چند روش را پیدا کنید. ابتدا می توانید از ابزار iproute2 استفاده کنید تا آدرس خود را دریافت کنید:
⦁ $ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’

این دستور یک یا دو خط شما را به عقب باز می گرداند. هر دو آدرس صحیح هستند ، اما رایانه شما فقط می تواند یکی از آنها را استفاده میکند ، بنابراین به راحتی هر یک را امتحان کنید.
یک روش دیگر استفاده از یک جناح خارج است تا به شما بگوید سرور شما را چگونه می بیند. می توانید با پرسیدن از یک سرور خاص آدرس IP خود را پیدا کنید:
⦁ $ curl http://icanhazip.com

صرف نظر از روشی که برای دریافت آدرس IP خود استفاده می کنید ، می توانید آن را در نوار آدرس مرورگر وب خود وارد کنید تا به سرور خود برسید.
مرحله 2 – نصب MariaDB
اکنون که سرور وب خود را راه اندازی کرده ایم ، زمان آن است که MariaDB ، یک جایگزین داخلی MySQL را نصب کنید. MariaDB یک فورک توسعه یافته از سیستم مدیریت پایگاه داده رابطه ای MySQL است.
باز هم ، می توانیم از yum برای به دست آوردن و نصب نرم افزار خود استفاده کنیم. این بار ، ما بسته های کمکی دیگری را نیز نصب خواهیم کرد که در برقراری ارتباط با مؤلفه ها به ما کمک می کنند:
⦁ $ sudo yum install mariadb-server mariadb

پس از اتمام نصب ، باید MariaDB را با دستور زیر شروع کنیم:
⦁ $ sudo systemctl start mariadb

اکنون که پایگاه داده MariaDB ما در حال اجراست ، می خواهیم یک اسکریپت امنیتی را اجرا کنیم که برخی پیش فرض های پرخطر را حذف کرده و دسترسی به پایگاه داده ما را خاموش می کند. اسکریپت تعاملی را با اجرای این دستور شروع کنید:
⦁ $ sudo mysql_secure_installation

اعلان از شما می خواهد رمز عبور فعلی MariaDB خود را وارد کنید. از آنجا که شما به تازگی MariaDB را نصب کرده اید ، به احتمال زیاد رمز را نخواهید داشت ، بنابراین با فشار دادن enter آن را خالی بگذارید. سپس اعلان از شما سؤال می کند که آیا می خواهید رمز اصلی را تنظیم کنید. پیش بروید و Y را وارد کنید ، و دستورالعمل ها را دنبال کنید:
mysql_secure_installation prompts:
Enter current password for root (enter for none):
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

برای بقیه سؤالات ، باید مقادیر پیش فرض را با زدن “ENTER” بپذیرید. این کار باعث حذف برخی از کاربران و دیتابیس های نمونه میشود، ورود به سیستم ریشه از راه دور غیرفعال می شود و این قوانین جدید را بارگذاری می کند تا MySQL فوراً با تغییراتی که ایجاد کرده ایم منطبق شود.
آخرین کاری که باید انجام دهید این است که MariaDB را فعال کنید که در بوت شروع شود. برای انجام این کار از دستور زیر استفاده کنید:
⦁ $ sudo systemctl enable mariadb

در این مرحله ، سیستم پایگاه داده شما اکنون تنظیم شده است و ما می توانیم پیش برویم.
مرحله 3 – نصب PHP
PHP مؤلفه ای از ستاپ ما است که کد را برای نمایش محتوای پویا پردازش می کند. این برنامه می تواند اسکریپت ها را اجرا کند ، برای بدست آوردن اطلاعات به پایگاه داده های MySQL ما متصل شود و محتوای پردازش شده را برای نمایش به سرور وب ما تحویل دهد.
نسخه PHP موجود به طور پیش فرض در سرورهای CentOS 7 منسوخ شده است ، و به همین دلیل ، باید یک مخزن بسته شخص ثالث را نصب کنیم تا PHP 7+ را دریافت کرده و آن بر روی سرور CentOS 7نصب کنیم. Remi یک مخزن بسته محبوب است که جدیدترین نسخه های PHP را برای سرورهای CentOS ارائه می دهد.
برای نصب مخزن Remi برای CentOS 7 ، دستور زیر را اجرا کنید:
⦁ $ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

پس از اتمام نصب ، باید دستوری اجرا کنید تا مخزن حاوی نسخه دلخواه PHP شما فعال شود. برای بررسی اینکه نسخه های PHP 7+ در مخزن Remi در دسترس هستند ، این دستور را اجرا کنید:
⦁ $ yum –disablerepo=”*” –enablerepo=”remi-safe” list php[7-9][0-9].x86_64

خروجی مانند این را خواهید دید:
Output
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* remi-safe: mirrors.ukfast.co.uk
Available Packages
php70.x86_64 2.0-1.el7.remi remi-safe
php71.x86_64 2.0-1.el7.remi remi-safe
php72.x86_64 2.0-1.el7.remi remi-safe
php73.x86_64 2.0-1.el7.remi remi-safe
php74.x86_64 1.0-3.el7.remi remi-safe
php80.x86_64

در این راهنما ، PHP 7.4 را نصب خواهیم کرد که در حال حاضر به روزترین نسخه PHP است. برای فعال کردن بسته صحیح Remi برای نصب PHP 7.4 ، اجرا کنید:
⦁ $ sudo yum-config-manager –enable remi-php74

اکنون می توانیم پیش برویم و از yum برای نصب PHP استفاده کنیم. دستور زیر کلیه بسته های لازم را برای تنظیم PHP 7.4 در Nginx نصب می کند و به آن اجازه می دهد تا به پایگاه داده های مبتنی بر MySQL متصل شود:
⦁ $ sudo yum install php php-mysqlnd php-fpm

برای تأیید اینکه PHP به عنوان نسخه انتخابی شما موجود است ، این دستور را اجرا کنید:
⦁ $ php –version

خروجی مانند این را خواهید دید:
Output
PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

اکنون PHP با موفقیت روی سیستم شما نصب شده است. در مرحله بعد ، باید تغییراتی در تنظیمات پیش فرض ایجاد کنیم. برای تسهیل ویرایش فایل ها در CentOS ، ابتدا nano که ویرایشگر متن کاربر پسند تری نسبت به vi است نصب خواهیم کرد:
⦁ $ sudo yum install nano

فایل پیکربندی /etc/php-fpm.d/www.conf را با استفاده از nano یا ویرایشگر مورد نظر خود باز کنید:
⦁ $ sudo nano /etc/php-fpm.d/www.conf

اکنون به دنبال دستورالعمل های user  و group  باشید. اگر از nano استفاده می کنید ، می توانید با فشردن CTRL + W این عبارات را در فایل باز جستجو کنید.
/etc/php-fpm.d/www.conf

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user’s group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache

توجه خواهید کرد که متغیرهای کاربر و گروه روی apache تنظیم شده اند. ما باید این موارد را به nginx تغییر دهیم:
/etc/php-fpm.d/www.conf

; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

سپس ، دستورالعمل listen را پیدا کنید. به طور پیش فرض ، php-fpm به هاست و پورت خاصی از طریق TCP گوش می دهد. ما می خواهیم این تنظیمات را تغییر دهیم تا در یک فایل سوکت محلی شنود کند ، زیرا این کار باعث بهبود عملکرد کلی سرور می شود.
خط حاوی دستورالعمل listen را به شرح زیر تغییر دهید:
/etc/php-fpm.d/www.conf
listen = /var/run/php-fpm/php-fpm.sock;

در آخر ، ما باید تنظیمات مالک و گروه را برای فایل سوکت که اخیراً در دستورالعمل listen تعریف کرده ایم ، تغییر دهیم. دستورالعمل listen.owner ، listen.group و listen.mode را پیدا کنید. این خطوط بطور پیش فرض حذف می شوند. با حذف علامت ; در شروع خط آنها را باطل کنید. سپس ، مالک و گروه را به nginx تغییر دهید:
/etc/php-fpm.d/www.conf
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

هنگام ویرایش ، فایل را ذخیره کنید و ببندید. اگر از nano استفاده می کنید ، این کار را با فشار دادن CTRL + X ، سپس Y و ENTER انجام دهید.
برای فعال و شروع سرویس php-fpm ، دستور زیر را اجرا کنید:
⦁ $ sudo systemctl start php-fpm

اکنون محیط PHP شما آماده است. در مرحله بعد ، Nginx را پیکربندی خواهیم کرد تا همه درخواست های ارسال شده برای اسکریپت های PHP توسط php-fpm پردازش شود.
مرحله 4 – پیکربندی Nginx برای پردازش صفحات PHP
اکنون همه اجزای لازم نصب شده است. تنها تغییر پیکربندی که باید انجام دهیم این است که به Nginx بگوییم از پردازنده PHP ما برای محتوای پویا استفاده کند.
Nginx یک دایرکتوری اختصاصی دارد که می توانیم با استفاده از بلوک سرور ، هر وب سایت هاست را به عنوان یک فایل پیکربندی جداگانه تعریف کنیم. در واقع شبیه به هاست های مجازی Apache است.
با وجود نصب پیش فرض ، این دایرکتوری خالی است. ما یک فایل جدید ایجاد خواهیم کرد تا به عنوان وب سایت پیش فرض PHP در این سرور ، سرویس دهی کند ، که باعث لغو بلوک سرور پیش فرض مشخص شده در فایل /etc/nginx/nginx.conf خواهد شد.
ابتدا یک فایل جدید را در دیرکتوری /etc/nginx/conf.d باز کنید:
⦁ $ sudo nano /etc/nginx/conf.d/default.conf

بلوک تعریف سرور PHP زیر را در فایل پیکربندی خود کپی کنید و فراموش نکنید که دستورالعمل server_name را جایگزین کنید تا به نام دامنه یا آدرس IP سرور شما اشاره کند:
/etc/nginx/conf.d/default.conf
server {
listen 80;
server_name server_domain_or_IP;

root /usr/share/nginx/html;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

location = /50x.html {
root /usr/share/nginx/html;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

پس از پایان کار ، فایل را ذخیره کنید و ببندید.
پس ، Nginx را مجدداً ریستارت کنید تا تغییرات اعمال شود:
⦁ $ sudo systemctl restart nginx

اکنون سرور وب شما کاملاً تنظیم شده است. در مرحله بعدی ، ادغام PHP را با Nginx آزمایش خواهیم کرد.
مرحله 5 – تست پردازش PHP در وب سرور خود
اکنون که سرور وب شما تنظیم شده است ، می توانیم یک اسکریپت آزمایشی PHP ایجاد کنیم تا مطمئن شویم Nginx با کمک php-fpm به درستی اسکریپت های .php را اداره می کند.
قبل از ایجاد اسکریپت ، ما در تنظیمات پیش فرض مالکیت در ریشه سند Nginx تغییری ایجاد خواهیم کرد ، به طوری که کاربر sudo معمولی ما قادر به ایجاد فایل هایی در آن مکان باشد.
دستور زیر مالکیت ریشه اصلی پیش فرض Nginx را به کاربر و گروهی به نام sammy تغییر می دهد ، بنابراین حتماً نام کاربری و گروه هایلایت شده را در این دستور جایگزین کنید تا نام کاربری و گروه سیستم شما منعکس شود.
⦁ $ sudo chown -R sammy.sammy /usr/share/nginx/html/

اکنون یک صفحه PHP تست ایجاد میکنیم تا مطمئن شویم که سرور وب همانطور که انتظار می رود کار میکند.
یک فایل PHP جدید با نام info.php در دیرکتوری / usr / share / nginx / html ایجاد کنید:
⦁ $ nano /usr/share/nginx/html/info.php

کد PHP زیر اطلاعات مربوط به محیط PHP فعلی را که روی سرور در حال اجرا است نمایش می دهد:
/usr/share/nginx/html/info.php
<?php

phpinfo();

پس از اتمام ، فایل را ذخیره کنید و ببندید.
اکنون می توانیم آزمایش کنیم که آیا سرور وب ما می تواند محتوای تولید شده توسط یک اسکریپت PHP را به درستی نمایش دهد. به مرورگر خود بروید و به نام میزبان یا آدرس IP سرور خود که به دنبال آن /info.phpنوشته شده است، دسترسی پیدا کنید:
http://server_host_or_IP/info.php

صفحه ای شبیه به این را مشاهده خواهید کرد:

پس از بررسی اطلاعات مربوط به سرور PHP خود از طریق آن صفحه ، بهتر است فایل ایجاد شده را حذف کنید زیرا حاوی اطلاعات حساسی در مورد محیط PHP و سرور CentOS شما است. برای حذف آن فایل می توانید از rm استفاده کنید:
⦁ rm /usr/share/nginx/html/info.php

در صورت نیاز بعداً می توانید این فایل را دوباره بازیابی کنید.
نتیجه
در این راهنما ، با استفاده از Nginx به عنوان سرور وب و آخرین نسخه PHP ، یک پایه انعطاف پذیر برای ارائه وب سایت های PHP و برنامه ها به بازدید کنندگان خود ایجاد کردید. شما Nginx را به گونه ای تنظیم کرده اید تا بتوانید درخواست های PHP را از طریق php-fpm انجام دهید ، همچنین یک پایگاه داده MariaDB را برای ذخیره اطلاعات وب سایت خود تنظیم نموده اید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجرای چند نسخه PHP بر روی یک سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پیکربندی Elasticsearch در اوبونتو 18.04

راه اندازی سرور اولیه با اوبونتو 20.04 – تنظیم کلیدهای SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روی سرور Ubuntu 18.04 –  نحوه نصب Python 3 روی سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنیتی برای محافظت از سرورهای شما –  نحوه نصب و ایمن سازی Redis در اوبونتو 20.04

نحوه نصب و ایمن سازی Redis در اوبونتو 18.04اضافه کردن فضای Swap در اوبونتو 20.04

چگونه می توان فایروال را با UFW در اوبونتو 20.04 تنظیم کردنظارت بر اطلاعیه و مسیر BGP با BGPalerter اوبونتو 18.04

نصب و ایمن سازی phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ریست کردن رمز ورود ریشه MySQL یا MariaDB –  استفاده از نوع داده MySQL BLOB برای ذخیره تصاویر

نصب Nginx در اوبونتو 18.04نصب توزیع Anaconda پایتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظیم محیط توسعه در اوبونتو 16.04

نصب جنگو و تنظیم محیط توسعه در اوبونتو 20.04 – نحوه ایجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازی یک پروژه Node با Typescript –  نحوه نصب و پیکربندی VNC در اوبونتو 18.04

ایجاد یک برنامه Django و اتصال آن به یک بانک اطلاعاتینصب و پیکربندی VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازی و اتصال رابط کاربری Django

تنظیم پلتفرم Cloud IDE کد سرور را در اوبونتو 18.04پیکربندی Apache HTTP با رویداد MPM و PHP-FPM

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان – 


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/