Apache: ఇన్స్టాలేషన్ మరియు వర్చువల్ హోస్ట్లు
VPSపై Apache ఇన్స్టాల్ చేయడం, వర్చువల్ హోస్ట్లు మరియు మాడ్యూల్స్ కాన్ఫిగర్ చేయడం మరియు పోర్ట్ 80పై Nginxతో సాధారణ కాన్ఫ్లిక్ట్ల పరిష్కారం.
23 ఆగస్టు, 2026న నవీకరించబడింది
మీకు .htaccess, పాత CMS లేదా అప్లికేషన్ డెవలపర్ ఇచ్చిన సిద్ధంగా ఉన్న గైడ్ అవసరమైనప్పుడు Apacheని ఎంచుకోండి. ఇది Nginx కంటే మెమరీపై ఎక్కువ భారం వేస్తుంది, కానీ ఒక చిన్న సైట్తో VDS-1పై మీకు అది అనిపించదు.
ఇన్స్టాలేషన్
apt update && apt install -y apache2 # Debian, Ubuntu
dnf install -y httpd && systemctl enable --now httpd # AlmaLinux, CentOS Stream
సర్వీస్ పేరు వేరుగా ఉంటుంది: Debian మరియు Ubuntuలో apache2, RHEL కుటుంబంలో httpd. కాన్ఫిగరేషన్ డైరెక్టరీలు కూడా వేరుగా ఉంటాయి — /etc/apache2 మరియు /etc/httpd.
తనిఖీ చేయండి:
systemctl status apache2
curl -I http://127.0.0.1
వర్చువల్ హోస్ట్
ఫైల్ /etc/apache2/sites-available/example.ru.conf:
<VirtualHost *:80>
ServerName example.ru
ServerAlias www.example.ru
DocumentRoot /var/www/example.ru
<Directory /var/www/example.ru>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.ru-error.log
CustomLog ${APACHE_LOG_DIR}/example.ru-access.log combined
</VirtualHost>
ఎనేబుల్ చేయడం మరియు తనిఖీ చేయడం:
a2ensite example.ru
a2dissite 000-default
apachectl configtest && systemctl reload apache2
మీరు నిజంగా .htaccessని ఉపయోగిస్తున్నప్పుడే AllowOverride All అవసరం. మీరు ఉపయోగించకపోతే None పెట్టండి: ప్రతి రిక్వెస్ట్కు ప్రతి డైరెక్టరీలో Apache ఈ ఫైల్ల కోసం వెతకడం ఆపేస్తుంది.
మాడ్యూల్స్
a2enmod rewrite headers ssl
systemctl restart apache2
ఏవి ఎనేబుల్ అయ్యాయో చూడటానికి — apache2ctl -M. అన్నింటినీ ఎనేబుల్ చేయవద్దు: ప్రతి మాడ్యూల్ ప్రతి వర్కర్ ప్రాసెస్లోకి లోడ్ అవుతుంది.
PHP కోసం, పాత mod_phpకి బదులు PHP-FPM ఉపయోగించండి: PHP-FPM.
Apache మరియు Nginx కలిసి
రెండు సర్వర్లు డిఫాల్ట్గా పోర్ట్ 80లో వినిపిస్తాయి, కాబట్టి రెండవది కేవలం స్టార్ట్ అవ్వదు మరియు Address already in use అని చెబుతుంది. మీకు రెండు ఎంపికలు ఉన్నాయి:
- ఒక సర్వర్ను మాత్రమే ఉంచండి;
- Nginxని ముందు పెట్టి, Apacheని
Listen 127.0.0.1:8080కి మార్చి, దానికి ప్రాక్సీ చేయండి — రివర్స్ ప్రాక్సీ చూడండి.
పోర్ట్ను ఏది ఉపయోగిస్తోందో చూడటానికి:
ss -tulpn | grep :80
సాధారణ లోపాలు
| లక్షణం | కారణం |
|---|---|
AH00558: Could not reliably determine ... server's fully qualified domain name | ServerName సెట్ చేయలేదు — ఇది ఒక హెచ్చరిక, అయినా దాన్ని సెట్ చేయండి |
.htaccess పనిచేయడం లేదు | Directory బ్లాక్లో AllowOverride None ఉంది |
| మార్పు తర్వాత సర్వీస్ స్టార్ట్ అవ్వడం లేదు | సింటాక్స్ — రీలోడ్ చేసే ముందు ఎప్పుడూ apachectl configtest రన్ చేయండి |
| డైరెక్టరీపై 403 | Require all granted లేదు లేదా www-dataకి అనుమతులు లేవు |
లాగ్లు: /var/log/apache2/ (Debian, Ubuntu) లేదా /var/log/httpd/ (AlmaLinux).
ప్రతి మార్పు ముందు కాన్ఫిగ్ను కాపీ చేయండి:
cp file file.bak. వర్చువల్ మెషీన్పై, గంట క్రితం మీరు ఏం మార్చారో గుర్తుకు తెచ్చుకోవడానికి ప్రయత్నించడం కంటే రోల్బ్యాక్ చేయడం సులభం.