پرش به مطلب اصلی

مخزن PHP برای لینوکس

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

مخزن PHP پارس‌پک امکان نصب نسخه‌های مختلف PHP و ماژول‌های رایج آن را از طریق Repository داخلی فراهم می‌کند. این راهنما برای نصب PHP روی توزیع‌های مبتنی بر Debian/Ubuntu و خانواده RHEL تهیه شده و به شما کمک می‌کند نسخه موردنیاز PHP را با سرعت و پایداری بیشتری روی سرور خود نصب کنید.

تنظیم Repository

Ubuntu

# ۱) پیش‌نیازها و ایمپورت کلید آینه
sudo apt-get update
sudo apt-get install -y curl ca-certificates
curl -fsSL https://repo.abrha.net/php/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/abrha-php.gpg

# ۲) افزودن مخزن
echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/abrha-php.gpg ] https://repo.abrha.net/php/ubuntu jammy main" \
| sudo tee /etc/apt/sources.list.d/abrha-php.list

# ۳) نصب PHP 8.3 و چند ماژول رایج
sudo apt-get update
sudo apt-get install -y php8.3 php8.3-cli php8.3-fpm \
php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip php8.3-gd

# بررسی
php8.3 -v

Debian

# ۱) پیش‌نیازها و ایمپورت کلید آینه
sudo apt-get update
sudo apt-get install -y curl ca-certificates
curl -fsSL https://repo.abrha.net/php/debian/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/abrha-php.gpg

# ۲) افزودن مخزن
echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/abrha-php.gpg ] https://repo.abrha.net/php/debian bookworm main" \
| sudo tee /etc/apt/sources.list.d/abrha-php.list

# ۳) نصب PHP 8.3 و چند ماژول رایج
sudo apt-get update
sudo apt-get install -y php8.3 php8.3-cli php8.3-fpm \
php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip php8.3-gd

# بررسی
php8.3 -v

Red Hat / CentOS / Rocky / AlmaLinux

# ۱) ساخت فایل مخزن PHP 8.3 (EL 9)
sudo tee /etc/yum.repos.d/abrha-php.repo >/dev/null <<'EOF'
[abrha-php83]
name=Abrha PHP 8.3 (Remi)
baseurl=https://repo.abrha.net/php/redhat/$releasever/php83/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://repo.abrha.net/php/redhat/gpg
EOF

# ۲) نصب PHP 8.3 و چند ماژول رایج
sudo dnf install -y php php-cli php-fpm \
php-mysqlnd php-gd php-mbstring php-xml php-opcache

# بررسی
php -v

نکات و عیب‌یابی

پشتیبانی از معماری سیستم

مخزن PHP پارس‌پک برای معماری amd64 / x86_64 ارائه شده است. پیش از تنظیم مخزن، مطمئن شوید معماری سیستم‌عامل سرور با این مخزن سازگار است.

تفاوت این مخزن با Composer

این مخزن برای نصب خود PHP و ماژول‌های آن، مانند php-cli، php-fpm، php-mysql، php-xml، php-mbstring و سایر افزونه‌های PHP استفاده می‌شود. اگر هدف شما دریافت پکیج‌های PHP در سطح پروژه است، باید از Composer استفاده کنید؛ اما برای نصب نسخه PHP روی سیستم‌عامل، این مخزن کاربرد دارد.

کلید مورد استفاده در Ubuntu و Debian

در توزیع‌های مبتنی بر APT، متادیتای مخزن PHP توسط آینه پارس‌پک امضا می‌شود. بنابراین هنگام تنظیم Repository باید کلید آینه پارس‌پک را در سیستم ثبت کنید و مقدار signed-by در فایل Repository به همان فایل کلید اشاره داشته باشد.

کلید مورد استفاده در توزیع‌های مبتنی بر RHEL

در توزیع‌های مبتنی بر RHEL مانند AlmaLinux، Rocky Linux و CentOS، اعتبارسنجی پکیج‌ها با کلید رسمی Remi انجام می‌شود. اگر هنگام نصب با خطای GPG مواجه شدید، مسیر gpgkey را در فایل repo بررسی کنید.

خطای HTTPS یا گواهی در Ubuntu و Debian

اگر هنگام اجرای apt update با خطای مربوط به HTTPS، گواهی یا اتصال امن روبه‌رو شدید، ابتدا پیش‌نیازهای لازم را نصب یا بروزرسانی کنید:

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg

سپس مراحل افزودن کلید و Repository را دوباره انجام دهید.

خطای کلید یا امضای نامعتبر در APT

اگر با خطای کلید یا امضای نامعتبر مواجه شدید، کلید آینه را دوباره ایمپورت کنید و مطمئن شوید مقدار signed-by در فایل Repository به همان فایل کلید اشاره می‌کند. این خطا معمولاً زمانی رخ می‌دهد که کلید اشتباه ثبت شده باشد یا مسیر فایل کلید در Repository درست نباشد.

خطای $releasever در توزیع‌های مبتنی بر RHEL

در برخی توزیع‌های مبتنی بر RHEL ممکن است مقدار $releasever به‌جای عدد اصلی نسخه، مقداری مانند 9.4 یا 9Server برگرداند. در این حالت، در فایل repo مقدار $releasever را با عدد اصلی نسخه، مثل 8، 9 یا 10 جایگزین کنید.

انتخاب نسخه PHP در توزیع‌های مبتنی بر RHEL

در مخازن مبتنی بر Remi، بسته‌ها معمولاً نام عمومی دارند؛ مانند php، php-cli و php-fpm. در این حالت نسخه PHP را مخزن فعال‌شده تعیین می‌کند. اگر چند نسخه PHP را هم‌زمان مدیریت می‌کنید، برای هر نسخه یک فایل repo جداگانه بسازید و فقط مخزن نسخه موردنظر را فعال نگه دارید.

خطای 404 هنگام بروزرسانی مخزن

اگر هنگام بروزرسانی Repository با خطای 404 مواجه شدید، نسخه PHP، نسخه سیستم‌عامل، مقدار $releasever و معماری سرور را بررسی کنید. این خطا معمولاً زمانی رخ می‌دهد که مسیر Repository با نسخه انتخاب‌شده یا سیستم‌عامل سرور سازگار نباشد.

وابستگی‌های PHP در توزیع‌های مبتنی بر RHEL

مخزن PHP پارس‌پک فقط بسته‌های اصلی PHP و ماژول‌های مرتبط با آن را ارائه می‌کند. اگر هنگام نصب یک افزونه PHP، سیستم به کتابخانه‌های پایه یا وابستگی‌های جانبی نیاز داشت، این وابستگی‌ها باید از مخازن پایه سیستم‌عامل، مانند BaseOS، AppStream یا EPEL تأمین شوند.

جمع‌بندی

با استفاده از مخزن PHP پارس‌پک، نصب و مدیریت نسخه‌های مختلف PHP روی سرورهای لینوکسی ساده‌تر می‌شود. این مخزن به مدیران سیستم کمک می‌کند PHP و ماژول‌های پرکاربرد آن را از مسیر داخلی دریافت کنند و وابستگی به مسیرهای خارجی را در فرآیند آماده‌سازی و بروزرسانی محیط‌های وب کاهش دهند.