Skip to content
VDS · వెబ్‌సైట్‌లు మరియు వెబ్ సర్వర్‌లు

PHP-FPM: PHP సైట్లు

VDSపై PHP-FPMను ఇన్స్టాల్ చేయడం, దాన్ని Nginxతో అనుసంధానించడం, మీ టియర్ మెమొరీకి ప్రాసెస్ల సంఖ్యను ఎంచుకోవడం, 502 మరియు 504 ఎర్రర్లను పరిష్కరించడం.

23 ఆగస్టు, 2026న నవీకరించబడింది

PHP-FPM అనేది PHP కోడ్‌ను అమలు చేసే ప్రత్యేక సేవ; వెబ్ సర్వర్ కేవలం దానికి రిక్వెస్ట్‌లను పంపుతుంది. WordPress, Laravel, Bitrix మరియు PHPలో ఉన్న దాదాపు ప్రతిదీ ఇలాగే పనిచేస్తుంది.

ఇన్‌స్టాలేషన్

apt update
apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
systemctl enable --now php8.3-fpm

AlmaLinux మరియు CentOS Streamలో, dnf install -y php-fpm php-mysqlnd ... ఉపయోగించండి; సేవ పేరు php-fpm. ఖచ్చితమైన వెర్షన్‌ను తనిఖీ చేయడానికి, ఇది రన్ చేయండి:

php -v
systemctl list-units | grep fpm

Nginx‌కు కనెక్ట్ చేయడం

server {
    listen 80;
    server_name example.ru;
    root /var/www/example.ru/public;
    index index.php index.html;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location ~ /\.(?!well-known) { deny all; }
}
nginx -t && systemctl reload nginx
echo '<?php phpinfo();' > /var/www/example.ru/public/info.php

/info.php తెరిచి, PHP పనిచేస్తుందని నిర్ధారించుకోండి, ఆ ఫైల్‌ను వెంటనే డిలీట్ చేయండి: అది వెర్షన్, పాత్‌లు మరియు మాడ్యూల్ జాబితాను బయటపెడుతుంది.

ఎన్ని ప్రాసెస్‌లు ఉంచాలి

ప్రతి PHP వర్కర్ ప్రాసెస్ 40–120 MB తీసుకుంటుంది. డేటాబేస్ మరియు సిస్టమ్ కోసం మెమరీని వదిలి, టియర్ ప్రకారం సైజు చేయండి. ఇది /etc/php/8.3/fpm/pool.d/www.confలో కాన్ఫిగర్ చేయబడుతుంది:

టియర్మెమరీసరిపోయే pm.max_children
VDS-12 GB5
VDS-24 GB10
VDS-38 GB20
VDS-524 GB60
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 500

pm.max_requests అనేది N రిక్వెస్ట్‌ల తర్వాత ప్రాసెస్‌ను రీస్టార్ట్ చేస్తుంది, కాబట్టి కోడ్‌లోని మెమరీ లీక్‌లు వారం చివరి వరకు పోగుపడవు.

FPM కోసం ఉపయోగకరమైన php.ini విలువలు: memory_limit = 256M, upload_max_filesize = 64M, post_max_size = 64M, opcache.enable = 1.

మార్పులు చేసిన తర్వాత: systemctl reload php8.3-fpm.

సాధారణ ఎర్రర్‌లు

లక్షణంకారణంఏమి చేయాలి
502 Bad Gatewayతప్పు సాకెట్ పాత్ లేదా సేవ రన్ అవ్వడం లేదు/run/php/లోని అసలు ఫైల్‌తో fastcgi_passను సరిపోల్చండి
504 Gateway Time-outస్క్రిప్ట్ టైమౌట్ కంటే ఎక్కువ సేపు రన్ అవుతోందిfastcgi_read_timeout మరియు max_execution_time పెంచండి
బ్రౌజర్ అమలు చేయకుండా ఫైల్‌ను డౌన్‌లోడ్ చేస్తోందిlocation ~ \.php$ బ్లాక్ మ్యాచ్ కాలేదుlocation బ్లాక్‌ల క్రమాన్ని తనిఖీ చేసి, nginx -t రన్ చేయండి
లాగ్‌లో server reached pm.max_childrenసరిపడా ప్రాసెస్‌లు లేవుమెమరీ అనుమతిస్తే లిమిట్ పెంచండి, లేకపోతే ఒక టియర్ పైకి వెళ్లండి

లాగ్‌లు: /var/log/php8.3-fpm.log మరియు /var/log/nginx/error.log.

సైట్ డేటాబేస్‌ను దాని స్వంత స్కీమాకు మాత్రమే హక్కులున్న ప్రత్యేక యూజర్ కింద సృష్టించండి — యూజర్లు మరియు గ్రాంట్‌లు. మీ CMS కాన్ఫిగ్‌లో root ఖాతాను ఉపయోగించడం అనేది మీ డేటాబేస్‌లన్నింటినీ ఒకేసారి కోల్పోయే నేరుగా మార్గం.