آموزش استفاده هم‌ زمان از چند نسخه php در لینوکس

آموزش استفاده هم‌ زمان از چند نسخه php در لینوکس

استفاده هم‌ زمان از چند نسخه php در Centos یکی از خواسته های ضروری هر مدیر سروری جهت ارائه خدمات بهتر به کاربران خود است. بسیار اتفاق می‌افتد که سیستم عامل سرور شما centos 7 باشد و بخواهید چند نرم‌افزار تحت وب نوشته شده با php روی آن راه‌اندازی کنید که هر کدام با نسخه خاصی از php سازگار هستند.

مثلاً بعضی از قالب‌های وردپرس با نسخه ۷٫۲ از زبان برنامه‌نویسی php سازگار نیستند و سایت مشتری یا خودتان بالا نخواهد آمد. برای شروع کار شما باید مخازن و سرویس‌های موردنظر را نصب کنید.

نکته: دستورات لینوکس زیر با این پیش‌فرض که شما کاربر روت هستید اجرا می‌شوند و یا قبل از همه‌ی دستورات زیر sudo را اضافه می‌کنید.

 

استفاده هم‌ زمان از چند نسخه php در Centos 7

yum install httpd -y
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils -y
yum install php56 -y
yum install php72 -y
yum install php56-php-fpm -y
yum install php72-php-fpm -y

بعد از نصب سرویس‌ها ابتدا آن‌ها را متوقف کنید.

systemctl stop php56-php-fpm
systemctl stop php72-php-fpm

به صورت پیش‌فرض سرور شما به پورت ۹۰۰۰ هزار گوش فرا می‌دهد که باید آن را تغییر دهیم. ما از دستور قدرتمند sed برای جایگزینی شماره پورت استفاده کردیم.

sed -i 's/:9000/:9056/' /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i 's/:9000/:9072/' /etc/opt/remi/php72/php-fpm.d/www.conf

اکنون دو نسخه هم‌ زمان از php می‌تواند روی پورت‌های متفاوت به صورت هم‌زمان اجرا شوند حالا با دستورات زیر مجدد سرویس php را استارت می کنیم.

systemctl start php72-php-fpm
systemctl start php56-php-fpm

حال یک اسکریپت جهت فراخوانی php56-cgi و php72-cgi می‌نویسیم.

cat > /var/www/cgi-bin/php56.fcgi << EOF
bin/bash/!#
exec /bin/php56-cgi
EOF

cat > /var/www/cgi-bin/php72.fcgi << EOF
bin/bash/!#
exec /bin/php72-cgi
EOF

و حالا دسترسی اجرایی به فایلها را برای سرویس Apache را فراهم می کنیم.

sudo chmod 755 /var/www/cgi-bin/php56.fcgi
sudo chmod 755 /var/www/cgi-bin/php72.fcgi

حالا فایل کانفیگ php را برای وب سرور آپاچی می سازیم. به صورت پیش‌فرض php بر روی نسخه ۵٫۶ اجرا می‌شود.

cat > /etc/httpd/conf.d/php.conf << EOF
"/ScriptAlias /cgi-bin/ "/var/www/cgi-bin
AddHandler php56-fcgi .php
Action php56-fcgi /cgi-bin/php56.fcgi
Action php72-fcgi /cgi-bin/php72.fcgi


    DirectoryIndex index.php
    AllowOverride all
    Require all granted


    DirectoryIndex index.php
    AllowOverride all
    Require all granted

EOF

ساخت صفحات تستی جهت استفاده هم‌ زمان از چند نسخه php در لینوکس با استفاده از فایل htaccess.:

mkdir -p /var/www/html/php56
mkdir -p /var/www/html/php72
echo "" > /var/www/html/php56/index.php
echo "" > /var/www/html/php72/index.php
echo "AddHandler php72-fcgi .php" > /var/www/html/php72/.htaccess

اکنون می‌توانیم صحت عملکرد هر یک از سرویسهای php را تست کنیم. برای تست نسخه php5.6 آدرس زیر را در مرورگر وارد نمایید:

http://127.0.0.1/php56

و برای تست نسخه php7.2 آدرس زیر را در مرورگر وارد نمایید:

http://127.0.0.1/php72

اگر می‌خواهید هنگام شروع به کار سرور یا سیستم centos سرویس‌های گفته شده به صورت اتوماتیک اجرا شوند کدهای زیر را در centos وارد نمایید.

sudo systemctl enable httpd
sudo systemctl enable php56-php-fpm
sudo systemctl enable php72-php-fpm

نکته مهم اینکه به صورت اتوماتیک سرور تشخیص نمی‌دهد که برنامه موردنظر با کدام نسخه php باید اجرا شود اگر همچین امکانی باشد خوشحال میشویم آن را در بخش نظرات مطرح کنید.

برای اینکه تنظیم کنید این برنامه با کدام نسخه اجرا شود باید در فایل htaccess. دایرکتوری اجراکننده کدهای زیر نوشته شوند.

اگر می‌خواهید اسکریپت یا برنامه با php5.6 اجرا شود:

AddHandler php56-fcgi .php

اگر می‌خواهید اسکریپت یا برنامه با php7.2 اجرا شود:

AddHandler php72-fcgi .php

آموزش به پایان رسید. به همین راحتی می توانید امکان استفاده هم‌ زمان از چند نسخه php را در سرور لینوکسی خود فراهم کنید.

در صورتی که سؤالی دارید و یا نکته‌ای خواستید اضافه کنید خوشحال می‌شویم در بخش نظرات آن را با ما مطرح کنید.

آیا این مطلب برای شما مفید بود؟

میانگین امتیاز ۵ / ۵. تعداد آرا: ۹

اشتراک در
اطلاع از
guest

2 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
علی محمدی

سلام
بسیار کاربردی و عالی بود
در صورتی که بخوایم از سی پنل و موارد مشابه که هزینه های بالایی دارند یکی از احتیاجات ما رو که تغییر ورژن باشه برطرف می کنه.
سرفراز باشید

متین

عالی استفاده کردیم

فرم ثبت نام در مسابقه فتح پرچم

برای شرکت در مسابقه باید با اطلاعات صحیح عضو شوید
ثبت نام در مسابقه
close-link