در این مطلب در مورد تغییر نسخه php برای یک پوشه خاص صحبت کردیم. روشی که در آن مطلب ذکر شدیم برای شرایطی است که روی سرور شما از mod_php استفاده شده باشد. ولی ممکن است سرور شما از هندلر دیگری برای php استفاده کند. این روزها خیلی از شرکتهای هاستینگ از سیستم عامل کلودلینوکس و mod_lsapi استفاده میکنند. این مود هم سرعت بیشتری به فایلهای php میبخشد و هم امنیت بسیار بالاتری دارد.
به منظور تغییر نسخه php برای سرورهایی که از این مود استفاده میکنند دیگر دستور قبلی کار نخواهد کرد. در نتیجه باید از روش دیگری استفاده کرد.
اگر شما از کنترلپنل قدرتمند سیپنل به همراه easyapache 3 استفاده میکنید (گر چه easyapaceh 3 دیگر پشتیبانی نمیشود ولی ممکن است هنوز بعضیها به easyapache 4 مهاجرت نکرده باشند) و php selector راه هم نصب کردهاید باید با دستور زیر فایل هندلر php را بسازید.
application/x-lsphp56 /opt/alt/php56/usr/bin/lsphp application/x-lsphp70 /opt/alt/php70/usr/bin/lsphp application/x-lsphp71 /opt/alt/php71/usr/bin/lsphp application/x-lsphp72 /opt/alt/php72/usr/bin/lsphp
بعد از ساخت این فایل کدهای زیر داخل آن کپی کنید. دقت کنید ما اینجا از نسخه 5.6 تا نسخه 7.2 را وارد کردهایم. اگر در آینده نسخه 5.6 به پایان دوره حیات خود رسید و نسخههای جدیدتر هم از راه رسیدند میتوانید خودتان کد را تغییر بدهید.
application/x-lsphp56 /opt/alt/php56/usr/bin/lsphp application/x-lsphp70 /opt/alt/php70/usr/bin/lsphp application/x-lsphp71 /opt/alt/php71/usr/bin/lsphp application/x-lsphp72 /opt/alt/php72/usr/bin/lsphp
سپس دکمه کنترل را به همراه X بگیرید و فایل را ذخیره کنید و در ادامه آپاچی را هم با دستور زیر ریستارت کنید.
service httpd restart
در این حالت شما از قبل فایل هندلر php را روی سرور دارید و داخل آن محتویات زیر وجود دارد.
application/x-httpd-ea-php56-lsphp /opt/cpanel/ea-php56/root/usr/bin/lsphp application/x-httpd-ea-php70-lsphp /opt/cpanel/ea-php70/root/usr/bin/lsphp application/x-httpd-ea-php71-lsphp /opt/cpanel/ea-php71/root/usr/bin/lsphp application/x-httpd-ea-php72-lsphp /opt/cpanel/ea-php72/root/usr/bin/lsphp
در این حالت کدهای مورد نظر در فایل هندلر به شکل زیر خواهد بود.
application/x-lsphp56 /opt/cpanel/ea-php56/root/usr/bin/lsphp application/x-lsphp70 /opt/cpanel/ea-php70/root/usr/bin/lsphp application/x-lsphp71 /opt/cpanel/ea-php71/root/usr/bin/lsphp application/x-lsphp72 /opt/cpanel/ea-php72/root/usr/bin/lsphp
دقیقاً مثل حالت اول فایل را ذخیره و آپاچی را ریستارت کنید.
خب تا اینجای کار فایل هندلر را تنظیم کردیم. حالا باید در فایل htaccess خودمان یک کدی را اضافه کنیم و به cms بفهمانیم که از چه نسخه php استفاده کند.
اگر از easyapache 3 استفاده میکنیم باید کد زیر را در ابتدای فایل htaccess بگذاریم. نسخه را خودتان میتوانید تغییر دهید. در حال حاضر روی php 7.1 قرار داده شده است.
<FilesMatch "\.(php4|php5|php3|php2|php|phtml)$"> SetHandler application/x-lsphp71 </FilesMatch>
اگر هم از easyapache 4 استفاده میکنیم باید کد زیر را در ابتدای فایل htaccess بگذاریم.
<FilesMatch "\.(php4|php5|php3|php2|php|phtml)$"> SetHandler application/x-httpd-ea-php71-lsphp </FilesMatch>
نکته اول: اگر شما مدیر سرور نیستید و یک کاربر عادی هستید از مدیر سرور خود سوال کنید که سرور از چه نسخههای php و چه مودی استفاده میکند. بر اساس آن فقط کافیست مرحله آخر را انجام دهید.
نکته دوم: اگر شما در داخل دامنه خود چند پوشه داشته باشید و فایل htaccess را با این روش تغییر دهید تمام پوشههای زیر مجموعه هم دچار تغییر خواهند شد. اگر نمیخواهید این اتفاق بیفتد باید برای هر پوشه این کار را به صورت جداگانه تکرار کنید.