انجیناکس؛ شب ۳۰: PHP-FPM روی AlmaLinux و Rocky Linux
فهرست نوشته
در شاخهٔ RHEL نام سرویس و مسیر socket فرق دارد. امشب pool مستقل را با stream مناسب PHP میسازیم، بدون تغییر کور نصب موجود.
این جلسه بخشی از دورهٔ انجیناکس در ۵۰ شب است. قرارداد آزمایشگاه، مسیرها و روال اعمال تغییر در راهنمای دوره آمده است.
محیط: Alma/Rocky 9 بهروز و VM تمیز؛ php:8.3 باید در AppStream واقعی موجود باشد. این جلسه جایگزین شب ۲۹ برای همین شاخه است.
انتخاب بسته#
sudo dnf module list php
sudo dnf module enable php:8.3
sudo dnf install php-fpm php-cli php-mysqlnd php-gd php-xml \
php-mbstring php-intl php-opcache
sudo useradd --system --home-dir /var/lib/nginx-wordpress --shell /usr/sbin/nologin wpapp
sudo install -d -m 755 /var/www/nginx-wordpress/public
اگر stream موجود نیست، release و مخزن را بررسی کن؛ module reset و repository ناشناس راه حل خودکار نیستند. امکانات افزودهٔ WordPress را با نام بستهٔ مخزن و Site Health تطبیق بده.
فایل /etc/php-fpm.d/nginx-wp.conf همان pool شب قبل است، با سه تفاوت:
listen = /run/php-fpm/nginx-wp.sock
listen.owner = nginx
listen.group = nginx
بخش [nginx-wp]، user/group برابر wpapp و همهٔ pm/security directiveها باید از نمونهٔ کامل شب قبل منتقل شوند؛ این سه خط فایل کامل نیستند. اگر از www.conf کپی کردهای، listen.acl_users و listen.acl_groups را حذف یا آگاهانه تنظیم کن؛ ACL میتواند owner/group را بیاثر کند.
sudo php-fpm -t
sudo systemctl enable --now php-fpm
sudo systemctl restart php-fpm
ls -lZ /run/php-fpm/nginx-wp.sock
sudo restorecon -Rv /var/www/nginx-wordpress
خطای socket با خطای شبکه فرق دارد#
Nginx به socket Unix وصل میشود؛ باز کردن firewall پورت 9000 یا خاموش کردن SELinux برای آن لازم نیست. در failure، مسیر socket، کاربر nginx، permission، journal FPM و AVC را جدا ببین.
آزمون و بازگشت: نسخهٔ PHP، pool و labels را ثبت کن. در شب سیودوم از HTTP، SAPI و هویت wpapp را هم بررسی میکنیم. برای برگشت، سایت وابسته را ببند و config و stream قبلی را از Snapshot سازگار بازیابی کن.
منبع: PHP در Rocky ، PHP 8.3 در RHEL 9.6 ، ACL سوکت FPM .