سرور مجازی وب Apache از هاست های مجازی برای مدیریت دامنه های متعدد بر روی یک نمونه واحد استفاده می کند. به طور مشابه ، PHP-FPM از یک Daemon برای مدیریت چندین نسخه PHP در یک نمونه واحد استفاده می کند. می توانید از Apache و PHP-FPM با هم استفاده کنید تا هاست چند برنامه وب PHP باشید که هر یک از نسخه متفاوت PHP استفاده میکند اما همه روی یک سرور مجازی یکسان و به طور همزمان کار کنند. این ویژگی از این لحاظ مفید است که برنامه های مختلف ممکن است به نسخه های مختلف PHP نیاز داشته باشند ، اما برخی از پشته های سرور مجازی ، مانند پشته LAMP که به طور معمول پیکربندی شده است ، فقط می توانند یکی را مدیریت کنند. ترکیب Apache با PHP-FPM همچنین یک راه حل مقرون به صرفه تر از میزبانی هر برنامه به طور خاص است.
PHP-FPM همچنین گزینه های پیکربندی برای ورود به stderr و stdout ، ریستارت های اضطراری و spawning روند تطبیقی ​​را ارائه می دهد ، که برای سایت های دارای بار سنگین مفید است. در حقیقت ، استفاده از Apache با PHP-FPM یکی از بهترین پشته ها برای میزبانی برنامه های PHP ، به خصوص از لحاظ عملکرد میباشد.
در این آموزش دو سایت PHP را به صورت یکجا تنظیم خواهید کرد. هر سایت از دامنه خود استفاده می کند و هر دامنه نسخه PHP خود را مستقر می کند. اولی ، site1.your_domain ، PHP 7.3 را مستقر می کند. دومی ، site2.your_domain ، PHP 7.4 را مستقر می کند.
پیش نیازها
⦁ یک سرور مجازی CentOS 8 با حداقل 1 گیگابایت رم که طبق راهنمای ستاپ اولیه سرور مجازی تنظیم شده باشد ، شامل کاربر sudo غیر ریشه و فایروال باشد.
⦁ وب سرور مجازی Apache که با دنبال کردن آموزش نحوه نصب وب سرور مجازی Apache در CentOS 8 راه اندازی شود.
⦁ نام دامنه پیکربندی شده برای اشاره به سرور مجازی CentOS 8 شما. برای اهداف این آموزش ، از دو زیر دامنه استفاده خواهیم کرد که هر یک با یک رکورد A در تنظیمات DNS ما مشخص شده اند: site1.your_domain و site2.your_domain.
مرحله 1 – نصب نسخه های 7.3 و 7.4 PHP با PHP-FPM
با تکمیل پیش نیازها، اکنون نسخه های 7.3 و 7.4 PHP و همچنین PHP-FPM و چند افزونه دیگر را را نصب خواهید کرد. برای نصب چندین نسخه PHP به نصب و فعال سازی مخزنRemi روی سیستم خود احتیاج خواهید داشت. که همچنین آخرین نسخه های پشته PHP را روی سیستم CentOS 8 ارائه میکند.
با دستورات زیر میتوانید هر دو مخزن را به سیستم خود اضافه کنید:
⦁ $ sudo dnf install http://rpms.Remirepo.net/enterprise/Remi-release-8.rpm

دستور فوق مخزن EPEL را نیز فعال میکند.
ابتدا بیابید جستجو کنیم که نسخه های PHP 7 در Remi در دسترس هستند:
⦁ $ sudo dnf module list php

خروجی مانند این را خواهید دید:
Output
Remi’s Modular repository for Enterprise Linux 8 – x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language

سپس با دستور زیر، ماژول پیش فرض PHP را غیر فعال و ماژول PHP7.3 در Remi را فعال کنید:
⦁ $ sudo dnf module reset php

⦁ $ sudo dnf module enable php:remi-7.3
⦁ $

بیایید php73 و php73-php-fpm را نصب کنید:
⦁ $ sudo dnf install php73 php73-php-fpm -y

⦁ php73 متابسته ای است که برای اجرای برنامه های PHP استفاده می شود.
⦁ php73-php-fpm مترجم Fast Process Manager را ارائه می کند که به عنوان یک Daemon اجرا می شود و درخواست های Fast / CGI را دریافت می کند.
اکنون فرایند را برای نسخه PHP 7.4 تکرار کنید. php74 و php74-php-fpm را نصب کنید.
⦁ $ sudo dnf module reset php

⦁ $ sudo dnf module enable php:remi-7.4

⦁ $ sudo dnf install php74 php74-php-fpm -y


پس از نصب هر دو نسخه PHP ، با دستورات زیر سرویس php73-php-fpm را شروع و آن را فعال کنید تا در زمان بوت شدن آغاز شود:
⦁ $ sudo systemctl start php73-php-fpm

⦁ $ sudo systemctl enable php73-php-fpm

در مرحله بعدی ، وضعیت سرویس php73-php-fpm خود را با دستور زیر تأیید کنید:
⦁ $ sudo systemctl status php73-php-fpm

خروجی مانند این را خواهید دید:
⦁ ● php73-php-fpm.service – The PHP FastCGI Process Manager

⦁ Loaded: loaded (/usr/lib/systemd/system/php73-php-fpm.service; enabled; vendor preset: disabled)

⦁ Active: active (running) since Wed 2020-04-22 05:14:46 UTC; 52s ago

⦁ Main PID: 14206 (php-fpm)

⦁ Status: “Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec”

⦁ Tasks: 6 (limit: 5059)

⦁ Memory: 25.9M

⦁ CGroup: /system.slice/php73-php-fpm.service

⦁ ├─14206 php-fpm: master process (/etc/opt/remi/php73/php-fpm.conf)

⦁ ├─14207 php-fpm: pool www

⦁ ├─14208 php-fpm: pool www

⦁ ├─14209 php-fpm: pool www

⦁ ├─14210 php-fpm: pool www

⦁ └─14211 php-fpm: pool www



⦁ Apr 22 05:14:46 centos-s-1vcpu-1gb-nyc3-01 systemd[1]: Starting The PHP FastCGI Process Manager…

⦁ Apr 22 05:14:46 centos-s-1vcpu-1gb-nyc3-01 systemd[1]: Started The PHP FastCGI Process Manager.

با تکرار این فرایند ، سرویس php74-php-fpm را راه اندازی کنید و آن را فعال کنید تا از بوت شروع شود:
⦁ $ sudo systemctl start php74-php-fpm

⦁ $ sudo systemctl enable php74-php-fpm

در مرحله بعد ، وضعیت سرویس php74-php-fpm خود را تأیید کنید:
⦁ $ sudo systemctl status php74-php-fpm

خروجی دیگری مانند این را مشاهده خواهید کرد:
⦁ php74-php-fpm.service – The PHP FastCGI Process Manager

⦁ Loaded: loaded (/usr/lib/systemd/system/php74-php-fpm.service; enabled; vendor preset: disabled)

⦁ Active: active (running) since Wed 2020-04-22 05:16:16 UTC; 23s ago

⦁ Main PID: 14244 (php-fpm)

⦁ Status: “Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec”

⦁ Tasks: 6 (limit: 5059)

⦁ Memory: 18.8M

⦁ CGroup: /system.slice/php74-php-fpm.service

⦁ ├─14244 php-fpm: master process (/etc/opt/remi/php74/php-fpm.conf)

⦁ ├─14245 php-fpm: pool www

⦁ ├─14246 php-fpm: pool www

⦁ ├─14247 php-fpm: pool www

⦁ ├─14248 php-fpm: pool www

⦁ └─14249 php-fpm: pool www



⦁ Apr 22 05:16:15 centos-s-1vcpu-1gb-nyc3-01 systemd[1]: Starting The PHP FastCGI Process Manager…

⦁ Apr 22 05:16:16 centos-s-1vcpu-1gb-nyc3-01 systemd[1]: Started The PHP FastCGI Process Manager.

در این مرحله شما دو نسخه PHP را روی سرور مجازی خود نصب کرده اید. در مرحله بعد ، برای هر وب سایتی که می خواهید مستقر کنید ، یک ساختار دایرکتوری ایجاد خواهید کرد.
مرحله 2 – ایجاد ساختارهای دیرکتوری برای هر دو وب سایت
در این بخش یک دایرکتوری ریشه سند و یک صفحه ایندکس برای هر یک از وب سایت ها ایجاد می کنید.
ابتدا دایرکتوری های ریشه مستندات را برای هر دوی site1.yourdomain و site2.yourdomain ایجاد کنید:
⦁ $ sudo mkdir /var/www/site1.your_domain

⦁ $ sudo mkdir /var/www/site2.your_domain

به طور پیش فرض ، وب سرور مجازی Apache به عنوان یک کاربر Apache و یک گروه Apache اجرا می شود. برای اطمینان از مالکیت و مجوزهای صحیح دیرکتوری های ریشه وب سایت خود این دستورات را اجرا کنید:
⦁ $ sudo chown -R apache:apache /var/www/site1.your_domain

⦁ $ sudo chown -R apache:apache /var/www/site2.your_domain

⦁ $ sudo chmod -R 755 /var/www/site1.your_domain

⦁ $ sudo chmod -R 755 /var/www/site2.your_domain

دستور chown مالکیت دو دایرکتوری وب سایت شما را به کاربر apache و گروه apache تغییر می دهد. دستور chmod مجوزهای مرتبط با آن کاربر و گروه و سایر افراد را تغییر می دهد.
در مرحله بعد یک فایل info.php را در هر فهرست ریشه وب سایت ایجاد خواهید کرد. با این کار اطلاعات نسخه PHP هر وب سایت نمایش داده می شود. با site1 شروع کنید:
⦁ $ sudo vi /var/www/site1.your_domain/info.php

خط زیر را اضافه کنید:
/var/www/site1.your_domain/info.php
<?php phpinfo(); ?>

فایل را ذخیره کنید و ببندید. اکنون فایل info.php که در site2 ایجاد کرده اید را کپی کنید:
⦁ $ sudo cp /var/www/site1.your_domain/info.php /var/www/site2.your_domain/info.php

سرور مجازی وب شما اکنون دارای دیرکتوری های ریشه سند است که هر سایت برای ارائه داده ها به بازدید کنندگان به آن نیاز دارد. در مرحله بعدی ، وب سرور مجازی Apache خود را پیکربندی خواهید کرد تا با دو نسخه مختلف PHP کار کند.
مرحله 3 – پیکربندی Apache برای هر دو وب سایت
در این بخش دو فایل پیکربندی هاست مجازی ایجاد خواهید کرد. با این کار دو وب سایت شما قادر خواهند بود همزمان با دو نسخه مختلف PHP کار کنند.
برای اینکه Apache بتواند این محتوا را ارائه دهد ، باید یک فایل هاست مجازی با دستورالعمل های صحیح ایجاد کنید. دو فایل پیکربندی هاست مجازی جدید را درون دیرکتوری /etc/httpd/conf.d/ ایجاد خواهید کرد.
ابتدا یک فایل پیکربندی هاست مجازی جدید برای وب سایت site1.your_domain ایجاد کنید. در اینجا Apache را برای ارائه محتوا با استفاده از PHP 7.3 هدایت می کنید:
⦁ $ sudo vi /etc/httpd/conf.d/site1.your_domain.conf

محتوای زیر را اضافه کنید. اطمینان حاصل کنید که مسیر دیرکتوری وب سایت ، نام سرور مجازی ، پورت و نسخه PHP با تنظیمات شما مطابقت دارد:
/etc/httpd/conf.d/site1.your_domain.conf
<VirtualHost *:80>
ServerAdmin admin@site1.your_domain
ServerName site1.your_domain
DocumentRoot /var/www/site1.your_domain
DirectoryIndex info.php
ErrorLog /var/log/httpd/site1.your_domain-error.log
CustomLog /var/log/httpd/site1.your_domain-access.log combined

<IfModule !mod_php7.c>
<FilesMatch \.(php|phar)$>
SetHandler “proxy:unix:/var/opt/remi/php73/run/php-fpm/www.sock|fcgi://localhost”
</FilesMatch>
</IfModule>

</VirtualHost>

برای DocumentRoot مسیر دایرکتوری ریشه وب سایت خود را مشخص می کنید. برای ServerAdmin ایمیلی را اضافه می کنید که مدیر سایت your_domain بتواند به آن دسترسی پیدا کند. برای ServerName آدرس url زیر دامنه خود را اضافه می کنید. برای SetHandler فایل سوکت PHP-FPM را برای PHP 7.3 مشخص می کنند.
فایل را ذخیره کنید و ببندید.
در مرحله بعدی ، یک فایل پیکربندی هاست مجازی جدید برای وب سایت site2.your_domain ایجاد کنید. برای استقرار PHP 7.4 این زیر دامنه را مشخص می کنید:
⦁ $ sudo vi /etc/httpd/conf.d/site2.your_domain.conf

محتوای زیر را اضافه کنید. دوباره مطمئن شوید که مسیر دیرکتوری وب سایت ، نام سرور مجازی ، نسخه PHP با اطلاعات منحصر به فرد شما مطابقت دارد:
/etc/httpd/conf.d/site2.your_domain.conf
<VirtualHost *:80>
ServerAdmin admin@site2.your_domain
ServerName site2.your_domain
DocumentRoot /var/www/site2.your_domain
DirectoryIndex info.php
ErrorLog /var/log/httpd/site2.your_domain-error.log
CustomLog /var/log/httpd/site2.your_domain-access.log combined
<IfModule !mod_php7.c>
<FilesMatch \.(php|phar)$>
SetHandler “proxy:unix:/var/opt/remi/php74/run/php-fpm/www.sock|fcgi://localhost”
</FilesMatch>
</IfModule>

</VirtualHost>

پس از اتمام فایل را ذخیره کنید و ببندید. سپس فایل پیکربندی Apache را برای هرگونه خطای نحوی بررسی کنید:
⦁ $ sudo apachectl configtest

خروجی زیر را مشاهده خواهید کرد :
Output
⦁ Syntax OK

در آخر ، سرویس Apache را ریستارت کنید تا تغییرات خود را به اجرا درآورید:
⦁ $ sudo systemctl restart httpd

اکنون که Apache را برای ارائه هر سایت پیکربندی کرده اید ، آن ها را آزمایش می کنید تا مطمئن شوید که نسخه های مناسب PHP در حال اجرا هستند.
مرحله 4 – آزمایش هر دو وب سایت
در این مرحله ، شما برای اجرای دو نسخه مختلف از PHP ، دو وب سایت پیکربندی کرده اید. حالا نتایج را آزمایش کنید.
مرورگر وب خود را باز کنید و از هر دو سایت http: //site1.your_domain و http: //site2.your_domain بازدید کنید. دو صفحه را مشاهده خواهید کرد که به شکل زیر است:

به عناوین توجه کنید. صفحه اول نشان می دهد که site1.yourdomain نسخه 7.3 را مستقر کرده است. دومی نشان می دهد که site1.your_domain نسخه 7.4 را مستقر کرده است.
اکنون که سایت های خود را آزمایش کرده اید ، فایل های info.php را حذف کنید. از آنجا که آنها حاوی اطلاعات حساس در مورد سرور مجازی شما هستند و در دسترس کاربران غیرمجاز قرار میگیرند ، آسیب پذیری امنیتی ایجاد می کنند. با دستورات زیر فایل ها را حذف کنید:
⦁ $ sudo rm -rf /var/www/site1.your_domain/info.php

⦁ $ sudo rm -rf /var/www/site2.your_domain/info.php

اکنون یک سرور مجازی CentOS 8 واحد دارید که دو وب سایت با دو نسخه مختلف PHP را اداره می کند. با این حال PHP-FPM به این یک برنامه محدود نمی شود.
نتیجه
اکنون هاست های مجازی و PHP-FPM را برای ارائه خدمات به چندین وب سایت و نسخه های مختلف PHP در یک سرور مجازی واحد ترکیب کرده اید. تنها محدودیت عملی روی تعداد سایت های PHP و نسخه های PHP که سرویس Apache شما قادر به کنترل آن است ، قدرت پردازش نمونه شماست.
از اینجا به بعد ممکن است به کاوش در مورد ویژگی های پیشرفته تر PHP-FPM بپردازید ، مانند فرآیند spawning تطبیقی یا اینکه چگونه می تواند sdtout و stderr را وارد کند. اکنون می توانید وب سایت های خود را ایمن کنید. برای دستیابی به این هدف ، می توانید آموزش ما در مورد چگونگی تأمین امنیت سایتهای خود با مجوزهای رایگان TLS / SSL از Let’s Encrypt را دنبال کنید.

 

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

دسترسی از راه دور به برنامه GUI با Docker در اوبونتو 18.04

راه اندازی سایت توسعه Jekyll در اوبونتو 20.04

نحوه راه اندازی سایت توسعه Jekyll در اوبونتو 18.04

نحوه نصب و استفاده از Docker Compose در اوبونتو 20.04

نحوه اجرای چند نسخه PHP بر روی یک سرور با استفاده از Apache و PHP-FPM در CentOS 8

نحوه نصب و استفاده از TimescaleDB در Ubuntu 20.04

نحوه نصب و راه اندازی Laravel با Docker Compose در اوبونتو 20.04

 

 

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