WordPress وابسته به یک روش خاص اجرای PHP نیست. امشب یک deployment یکسان را در دو Clone با mod_php و PHP-CGI می‌سنجیم تا تفاوت هویت اجرا، ظرفیت و تنظیمات روشن شود.

این جلسه بخشی از دورهٔ آپاچی در ۵۰ شب است. قرارداد نام‌ها، مسیرها و روش اعمال تغییر را در راهنمای دوره بخوان.

محیط: دو Clone Debian/Ubuntu از آماده‌سازی شب سی‌وهشتم؛ یکی با شاخهٔ شب سی‌ودوم و دیگری با شب سی‌وسوم. آن‌ها هم‌زمان IP یکسان نداشته باشند.

یک برنامه، دو handler#

در هر Clone فایل سایت 140-wp-legacy.conf را فعال کن:

<VirtualHost *:443>
    ServerName wp.example.test
    DocumentRoot /var/www/wordpress/public
    SSLEngine on
    SSLCertificateFile /etc/apache-lab/tls/www.crt
    SSLCertificateKeyFile /etc/apache-lab/tls/www.key
    DirectoryIndex index.php
    <Directory /var/www/wordpress/public>
        Options +FollowSymLinks -Indexes -ExecCGI -Includes
        AllowOverride None
        Require ip 192.168.56.20
    </Directory>
</VirtualHost>

در Clone mod_php، همان ماژول PHP فعال فایل را پردازش می‌کند. در Clone CGI، ScriptAlias، Action و policy wrapper شب سی‌وسوم را داخل همین میزبان اضافه کن و در Directory WordPress AddHandler lab-php .php بگذار. handler FPM نباید در هیچ‌کدام فعال باشد.

چون هر دو روش این آزمایش با کاربر Apache اجرا می‌شوند، گروه config را در همین Clone به APACHE_USER تغییر بده و حالت 640 را نگه دار. فقط پوشهٔ wp-content/uploads را برای همین runtime نوشتنی کن؛ کد WordPress root-owned باقی بماند. این تغییر گروه را به مسیر اصلی pool مستقل منتقل نکن.

نصب و مقایسه#

به https://wp.example.test/wp-admin/install.php با CA معتبر برو، حساب مدیر یکتا بساز و نصب جدول‌ها را کامل کن. پیش از نصب، یک check.php موقت داخل همین DocumentRoot بگذار: در mod_php باید apache2handler و در CGI باید cgi-fcgi بدهد. بعد آن را حذف کن.

یک نوشته بساز، وارد و خارج شو، تصویر upload کن و صفحهٔ front-end را ببین. rewrite، جلوگیری از اجرای PHP در upload و backup را طبق شب‌های چهل‌ویکم و چهل‌ودوم روی همین Clone نیز اعمال کن. محدودیت IP برای این آزمایش legacy باقی می‌ماند.

تمرین و بازگشت: مصرف حافظه و هویت کارگر دو مدل را ثبت کن؛ از نتیجهٔ یک درخواست، ادعای برتری ظرفیت نساز. هر دو Clone را خاموش و مسیر اصلی event/FPM را بازیابی کن. روی Alma/Rocky 9، برای تقلید mod_php بستهٔ نامعتبر نصب نمی‌کنیم؛ WordPress با FPM در شب بعد تکمیل می‌شود.

منبع: وب‌سرورهای WordPress ، رابط‌های PHP .