خانه سرور آموزش راه اندازی چند سایت با نسخه های متفاوت PHP در Nginx ( بخش دوم )

آموزش راه اندازی چند سایت با نسخه های متفاوت PHP در Nginx ( بخش دوم )

5 دقیقه خوانده شده
۰
0
938
داشتن چند سایت با نسخه های متفاوت PHP

در بخش اول این مقاله ، ما به شما آموزش دادیم که چگونه بسته های EPEL و Remi را نصب کنید و همچنین برای شما ، فرآیند نصب وب سرور Nginx ، پایگاه داده MariaDB و سرویس PHP را نیز بیان کردیم . در ادامه این مقاله ما قصد داریم به شما آموزش دهیم که سرویس های PHP و وب سرور Nginx را طوری کانفیگ کنید که بتوانید چند سایت با نسخه های متفاوت PHP را به صورت همزمان میزبانی کنید .

داشتن چند سایت با نسخه های متفاوت PHP

قدم پنجم : پیکربندی PHP-FPM و PHP56-PHP-FPM

اکنون به جذاب ترین بخش آموزش استفاده از نسخه های مختلف PHP میرسیم . در این بخش ما به شما آموزش خواهیم داد که چگونه میتوانید روی سرور خودتان از نسخه های متفاوت PHP استفاده کنید . در این مرحله شما باید نسخه های متفاوت php-fpm که وب سرور Nginx با آنها کار میکند را پیکربندی کنید . شما باید user / group فرآیند های FastCGI را به همراه پورتی که از آن استفاده میکنند را مشخص کنید .

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

  • php-fpm (default 7.1) – /etc/php-fpm.d/www.conf
  • php56-php-fpm – /opt/remi/php56/root/etc/php-fpm.d/www.conf

شما باید با استفاده از دو دستور زیر ، هر یک از این فایل ها را باز کنید و user / group هر یک از فرآیند های FastCGI را معین کنید :

vi /etc/php-fpm.d/www.conf
vi /opt/remi/php56/root/etc/php-fpm.d/www.conf

مقادیر پیشفرض user و group باید روی وب سرور Apache تنظیم شده باشند . آنها را به nginx تغییر دهید . به مثال زیر دقت کنید :

user = nginx
group = nginx

در ادامه باید پارامترهای Listen را پیدا کنید و address:port را برای فرآیند های FastCGI تنظیم کنید تا از پورت مشخص برای دریافت درخواست ها استفاده شود . به مثال زیر دقت کنید :

listen = 127.0.0.1:9000	[php-fpm]
listen = 127.0.0.1:9001	[php56-php-fpm]

در مثال بالا ما از پورت ۹۰۰۰ برای نسخه ۷٫۱ و از پورت ۹۰۰۱ برای نسخه ۵٫۶ سرویس PHP استفاده کرده ایم .

وقتی که تنظیمات بالا را به صورت کامل انجام دادید ، باید سرویس های Nginx و MariaDB و PHP-FPM را جوری پیکربندی کنید که در هنگام boot سرور به صورت اتوماتیک فعال شوند . برای اینکار دستورهای زیر را به ترتیب اجرا کنید :

systemctl enable nginx 
systemctl start nginx 
systemctl enable mariadb 
systemctl start mariadb

برای فعال کردن سرویس PHP 7.1 به هنگام بوت از دستورهای زیر استفاده کنید :

systemctl enable php-fpm 
systemctl start php-fpm

همچنین برای فعال کردن سرویس PHP 5.6 به هنگام بوت از دستورهای زیر استفاده کنید :

systemctl enable php56-fpm 
systemctl start php56-php-fpm

توجه : اگر شما به هنگام فعال کردن نسخه دوم PHP یعنی php56-php-fpm اروری دریافت کردید ، ممکن است یکی از قوانین SELinux در حال مسدود سازی آن باشد و اجازه استارت شدن را به آن ندهد . اگر SELinux روی حالت enforcing قرار دارد ، آن را روی حالت permissive قرار دهید و دوباره سرویس PHP56 را استارت کنید . برای تغییر حالات SELinux از دستورهای زیر استفاده کنید :

getenforce
setenforce 0

قدم ششم : تنظیم وب سایت ها و مجوزهای دسترسی آنها

در این مرحله ، شما میتوانید مسیرهای مورد نیاز برای سایت های خودتان را داخل مسیر var/www/html/ ایجاد کنید . همچنین شما نیاز دارید که مسیرهایی را برای ذخیره کردن لاگ ها ایجاد کنید .

برای ایجاد کردن مسیر سایت ها از دستورات زیر استفاده کنید :

---------------- Websites ----------------

# mkdir -p /var/www/html/example1.com/ 
# mkdir -p /var/www/html/example2.com/ 
---------------- Website Logs ----------------

# mkdir -p /var/log/nginx/example1.com/ 
# mkdir -p /var/log/nginx/example2.com/

در این مرحله باید Permission های مسیر های ایجاد شده را تنظیم کنید . برای تنظیم پرمیشن های سایت اول از دستورهای زیر استفاده کنید :

---------------- Website 1 ----------------

# chown -R root:nginx /var/www/html/example1.com/ 
# chmod -R 755 /var/www/html/example1.com/ 
# chown -R root:nginx /var/log/nginx/example1.com/
# chmod -R 660 /var/log/nginx/example1.com/

همچنین برای تنظیمات مربوط به سایت دوم نیز از دستور های زیر استفاده کنید :

# chown -R root:nginx /var/www/html/example2.com/ 
# chmod -R 755 /var/www/html/example2.com/
# chown -R root:nginx /var/log/nginx/example2.com/ 
# chmod -R 660 /var/log/nginx/example2.com/

قدم هفتم : تنظیم بلاک های سرور وب سرور Nginx برای وب سایت ها

اکنون شما باید نحوه پردازش درخواست های هر سایت را برای وب سرور Nginx تعریف کنید . این کار از طریق تنظیمات بلاک های سرور انجام میشود که در مسیر etc/nginx/conf.f/ قرار دارند . ابتدا شما باید درون مسیر ذکر شده برای هر وب سایت خودتان یک فایل تنظیمات ایجاد کنید . برای ایجاد این فایل ها با پسوند conf. از دستورهای زیر استفاده کنید :

# vi /etc/nginx/conf.d/example1.com.conf
# vi /etc/nginx/conf.d/example2.com.conf

سپس به ترتیب بلاک های سرور زیر را داخل این فایل ها ، paste کنید .

تنظیمات مربوط به سایت اول :

server {
listen 80;
server_name example1.com www.example1.com;
root   /var/www/html/example1.com/;
index index.php index.html index.htm;
#charset koi8-r;
access_log /var/log/nginx/example1.com/example1_access_log;
error_log   /var/log/nginx/example1.com/example1_error_log   error;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root    /var/www/html/example1.com/;
fastcgi_pass   127.0.0.1:9000;	#set port for php-fpm to listen on
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include         fastcgi_params;
include /etc/nginx/fastcgi_params;
}
}

تنظیمات مربوط به سایت دوم :

server {
listen 80;
server_name example2.com www.example2.com;
root    /var/www/html/example2.com/;
index index.php index.html index.htm;
#charset koi8-r;
access_log /var/log/nginx/example2.com/example2_access_log;
error_log  /var/log/nginx/example2.com/example2_error_log   error;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root    /var/www/html/example2.com/;
fastcgi_pass   127.0.0.1:9001;	#set port for php56-php-fpm to listen on
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include         fastcgi_params;
include /etc/nginx/fastcgi_params;
}
}

شما باید مطمئن شوید یک خط زیر ، درون فایل etc/nginx/nginx.conf/ و در انتهای بلاک http قرار داشته باشد . این خط به وب سرور Nginx کمک میکند تا به هنگام اجرای وب سرور Nginx ، فایل های config درون مسیر etc/nginx/conf.d/ را شناسایی کند .

include /etc/nginx/conf.d/*.conf;

قدم هشتم : آزمایش نسخه های متفاوت PHP

در مرحله آخر از مقاله استفاده از نسخه های متفاوت PHP ، وقت آن رسیده است که بررسی کنید آیا سرور شما به درستی از دو نسخه متفاوت PHP استفاده میکند یا خیر . شما میتوانید برای این کار یک فایل info.php را درون مسیر های روت وب سایت های خودتان ایجاد کنید . برای اینکار از دستور های زیر استفاده کنید :

# echo "<?php phpinfo(); ?>" > /var/www/html/example1.com/info.php
# echo "<?php phpinfo(); ?>" > /var/www/html/example2.com/info.php

برای اینکه تمامی تنظیماتی که در بالا انجام داده اید اعمال شود ، شما نیاز خواهید داشت که سرویس های Nginx و php-fpm و php56-php-fpm را ریستارت کنید ولی شما میتوانید قبل از اینکه این کار را انجام دهید ، فایل تنظیمات وب سرور Nginx را بررسی کنید تا خطایی درون آن وجود نداشته باشد . برای بررسی این فایل از دستور زیر استفاده کنید :

nginx -t

اگر خروجی دستور بالا شامل خطایی نبود ، میتوانید با استفاده از دستور زیر سرویس های مورد نظر خودتان را ریستارت کنید :

systemctl restart nginx php-fpm php56-php-fpm

یک مورد دیگر نیز وجود دارد که شما باید آن را انجام دهید خصوصا اگر از سرور local استفاده میکنید . شما باید با استفاده از فایل etc/hosts/ ، دی ان اس های local را تنظیم کنید :

۱۹۲٫۱۶۸٫۵۶٫۱۰   example1.com   example1
۱۹۲٫۱۶۸٫۵۶٫۱۰   example2.com   example2

برای درک بهتر ، به تصویر زیر نگاه کنید :

در مرحله آخر ، مرورگر خودتان را باز کنید و آدرس های زیر را تایپ کنید تا بتوانید نسخه های متفاوت PHP را برای هر یک از سایت ها مشاهده کنید :

http://example1.com/index.php
http://example2.com/index.php

برای PHP 7.1 :

برای PHP 5.6 :

تبریک میگویم ! شما اکنون میتوانید فایل ها و سایت های مختلف را با استفاده از نسخه های متفاوت PHP اجرا کنید . اگر شما در مورد این مقاله سوالی دارید ، میتوانید از طریق بخش نظرات ، مشکل خودتان را با ما در میان بگذارید .

اگر شما نیاز به استفاده از نسخه های متفاوت PHP دارید ، میتوانید از هاست لینوکس چیتاهاست با قابلیت تغییر ورژن PHP استفاده کنید .

بارگذاری نوشته های مرتبط بیشتر
مطالب بیشتر از این نویسنده علی دربان
بارگذاری بیشتر در سرور

پاسخ دهید

بررسی کنید

اسکریپت ارسال ایمیل به مدیر سرور در زمان افزایش مصرف RAM در لینوکس

اگر شما هم مدیریت یک سرور لینوکسی را بر عهده دارید ، حتما با شرایطی مواجه شده اید که مصرف …