یک پشته نرم افزاری 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/