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-1 | 2 GB | 5 |
| VDS-2 | 4 GB | 10 |
| VDS-3 | 8 GB | 20 |
| VDS-5 | 24 GB | 60 |
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ఖాతాను ఉపయోగించడం అనేది మీ డేటాబేస్లన్నింటినీ ఒకేసారి కోల్పోయే నేరుగా మార్గం.