0Pricing
PHP Academy · درس

تهيئة Nginx وPHP-FPM

أعدّوا Nginx كوكيل عكسي أمام PHP-FPM لتقديم تطبيقات PHP

تهيئة Nginx وPHP-FPM درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

لماذا Nginx مع PHP-FPM؟

Nginx خادم ويب عالي الأداء ووكيل عكسي. ويتولى PHP-FPM (مدير عمليات FastCGI) إدارة مجموعة من عمليات PHP العاملة. ويمرر Nginx طلبات PHP إلى FPM عبر FastCGI.

كتلة خادم Nginx الأساسية

إعداد Nginx أدنى لتطبيق PHP.

# /etc/nginx/sites-available/myapp
server {
    listen 80;
    server_name example.com;
    root /srv/myapp/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

التوجيه try_files

try_files $uri $uri/ /index.php?$query_string يحاول تقديم ملف ثابت أولًا. وإذا لم يعثر عليه، فإنه يرجع إلى index.php، ما يتيح التوجيه عبر المتحكم الأمامي (Laravel وSymfony).

إعداد مجموعة PHP-FPM

اضبط مجموعة العمليات العاملة في /etc/php/8.3/fpm/pool.d/www.conf.

[www]
pm = dynamic
pm.max_children      = 20
pm.start_servers     = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests      = 500  ; recycle workers to prevent leaks

مقبس Unix أم TCP؟

استخدام مقبس Unix (fastcgi_pass unix:/run/php/php8.3-fpm.sock) أسرع من TCP (127.0.0.1:9000) عند الاتصال بين مكونات الجهاز نفسه.

HTTPS مع Let's Encrypt

استخدم Certbot للحصول على شهادات TLS مجانية.

$ certbot --nginx -d example.com
# Certbot modifies your Nginx config and sets up auto-renewal

ضغط Gzip

فعّل Gzip لتقليل أحجام الاستجابات.

# nginx.conf or server block:
gzip on;
gzip_types text/plain text/css application/javascript application/json;
gzip_min_length 1024;

التخزين المؤقت للموارد الثابتة في المتصفح

أضف ترويسات التحكم في التخزين المؤقت للملفات الثابتة.

location ~* \.(js|css|png|jpg|gif|ico|woff2)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}

تحديد معدل الطلبات في Nginx

حدّد عدد الطلبات لكل عنوان IP باستخدام الوحدة limit_req، فهي خط الدفاع الأول قبل أن يبدأ PHP بالعمل.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
}

server {
    location /api/ {
        limit_req zone=one burst=20 nodelay;
    }
}

ترويسات الأمان

أضف ترويسات الأمان إلى جميع الاستجابات.

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";

إعادة التحميل أم إعادة التشغيل

بعد تغيير إعدادات Nginx، أعد تحميله بسلاسة (من دون توقف): nginx -t && nginx -s reload. وبعد تغيير إعدادات PHP-FPM: systemctl reload php8.3-fpm.

الملخص

اضبط Nginx باستخدام كتلة خادم تشير إلى public/index.php عبر FastCGI. اضبط إعدادات مجموعة PHP-FPM. استخدم مقابس Unix. فعّل HTTPS وGzip والتخزين المؤقت للملفات الثابتة.

تحقق سريع

ماذا يفعل try_files $uri $uri/ /index.php?$query_string؟

الأسئلة الشائعة

هل درس «تهيئة Nginx وPHP-FPM» مجاني؟

نعم — نص درس «تهيئة Nginx وPHP-FPM» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «تهيئة Nginx وPHP-FPM»؟

أعدّوا Nginx كوكيل عكسي أمام PHP-FPM لتقديم تطبيقات PHP تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «تهيئة Nginx وPHP-FPM»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تهيئة Nginx وPHP-FPM
  2. متغيرات البيئة وملفات .env
  3. النشر باستخدام GitHub Actions
  4. إنشاء حاويات لتطبيق PHP
← العودة إلى PHP Academy