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

تغییر نسخه php به صورت اتومات در linux centos بسیار اتفاق می افتد که سیستم یا سرور شما centos 7 باشد و چند نرم افزار تحت وب نوشته شده با php بخواهید روی آن راه اندازی کنید که هر کدام با نسخه خاصی از php سازگار هستند. مثلا بعضی از قالب های وردپرس با نسخه ۷٫۲ از زبان برنامه نویسی php سازگار نیستند و سایت مشتری یا خودتان بالا نمی آید.برای شروع کار شما باید مخازن و سرویس های مورد نظر را نصب کنید.نکته: دستورات زیر با این پیش فرض که شما کاربر روت هستید اجرا می شوند و یا قبل از همه ی دستورات زیر sudo را اضافه می کنید.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 -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 می تواند روی پورت های متفاوت به صورت همزمان اجرا شوند.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دادن دسترسی اجرایی به وب سرور آپاچی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در ادامه توضیحات راجع به فایل .httaccess خواهم نوشت.اکنون می توانیم تست کنیم. برای مشاهده نسخه تست نسخه 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در صورتی که سوالی دارید و یا نکته ای خواستید اضافه کنید حتما در کامنت ها بزارید.منبع: وب سایت شخصی امید احمدیانی