نصب چند نسخه PHP در اوبونتو برای میزبانی برنامههایی با نیاز متفاوت کاربرد دارد، اما انتخاب نسخه باید بر اساس سازگاری و پشتیبانی انجام شود. وجود بستهٔ قدیمی در یک مخزن به معنی مناسب بودن آن برای سایت عمومی نیست. همچنین تغییر دستور php در خط فرمان، نسخهٔ PHP تمام سایتها را عوض نمیکند.
قبل از نصب چند نسخه PHP در اوبونتو
این راهنما از موضوع اولیهٔ Ubuntu 22.04 توسعه یافته است. انتشار سیستم، مخازن فعال و روش اجرای هر سایت را مشخص کنید. در سرور دارای کنترلپنل، نصب دستی میتواند با مدیریت پنل تداخل داشته باشد؛ ابتدا روش رسمی همان محیط را بررسی کنید.
cat /etc/os-release
php -v
php --ini
systemctl list-unit-files 'php*-fpm.service'
برای نسخهٔ هدف، نیاز برنامه و وضعیت پشتیبانی PHP را ببینید. معرفی PHP 8.0 یا 8.1 بهعنوان آخرین نسخه در متن قدیمی دیگر درست نیست. شاخهٔ بدون پشتیبانی را صرفاً برای رفع موقت خطای برنامه روی سایت عمومی انتخاب نکنید.
انتخاب مخزن و نصب بستههای هماهنگ
اوبونتو بستههای PHP را برای انتشار خود ارائه میکند. برای همنصب کردن شاخههای بیشتر، PPA شخص ثالث Ondřej Surý یک گزینه است، اما بخشی از مخزن رسمی اوبونتو نیست. صفحهٔ نگهدارنده فقط انتشارهای LTS جاری را هدف میگیرد و پشتیبانی از انتشارهای واردشده به ESM را تضمین نمیکند.
اگر این منبع با سیاست سرور و انتشار شما سازگار است، ابتدا اضافه کردن آن را ارزیابی کنید:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
apt-cache policy php8.3-cli php8.3-fpm php8.4-cli php8.4-fpm
نمونهٔ زیر برای دو شاخهٔ سازگار با برنامه است؛ فقط پس از وجود Candidate معتبر ادامه دهید:
sudo apt install php8.3-cli php8.3-fpm php8.4-cli php8.4-fpm
sudo apt install php8.3-mysql php8.3-mbstring php8.3-xml
sudo apt install php8.4-mysql php8.4-mbstring php8.4-xml
این فهرست همهٔ نیازهای هر برنامه نیست؛ افزونههایی مانند curl، gd یا intl را بر اساس نیاز و برای همان نسخه نصب کنید. خروجی تراکنش نصب را پیش از تأیید بخوانید.
انتخاب نسخهٔ خط فرمان
php8.3 -v
php8.4 -v
sudo update-alternatives --config php
php -v
انتخاب alternatives روی فرمان عمومی php اثر میگذارد. برای کار زمانبندیشده، اجرای Composer یا ابزار پروژه میتوانید مسیر نسخهٔ مشخص را به کار ببرید تا تغییر پیشفرض ناخواسته رفتار آن را عوض نکند.
نسخهٔ وبسایت را جدا تنظیم کنید
هر سایت باید به pool و سوکت PHP-FPM نسخهٔ مورد نظر متصل شود. مقدار listen و مجوز دسترسی سوکت را از تنظیم همان pool بخوانید؛ نام فرضی را کپی نکنید. Apache با ماژول PHP نیز روش متفاوتی دارد و دو ماژول PHP را نباید بیبرنامه همزمان فعال کرد.
پس از تنظیم وبسرور، ابتدا صحت پیکربندی و سپس پاسخ همان سایت را بررسی کنید. صفحهٔ سلامت برنامه یا آزمون محدود مدیریتی باید نسخهٔ وب را نشان دهد. خروجی php -v تنها تأیید CLI است و صفحهٔ عمومی phpinfo را برای بررسی رها نکنید.
تکمیل تغییر و حذف نسخهٔ قدیمی
ورود، فرمها، بارگذاری، اتصال دیتابیس و کارهای زمانبندیشده را آزمایش کنید. پس از اطمینان از نبود مصرفکنندهٔ نسخهٔ قبلی، حذف بستههای مشخص آن را برنامهریزی کنید. حذف wildcard همهٔ بستهها پیش از بررسی وابستگی سایتها میتواند سرویس را قطع کند.
مطالعهٔ مرتبط
بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شدهاند.