हिन्दी (Hindi)

Ubuntu 24.04 Linux VPS पर LAMP स्टैक इंस्टॉल करें

2 min
VPS/VDS होस्टिंग

LAMP स्टैक (Linux, Apache, MariaDB, PHP) WordPress, Laravel और अधिकांश PHP एप्लिकेशन की पारंपरिक नींव है। इस गाइड में आप Ubuntu 24.04 वाले एक नए VPS Linux Infrawire पर इसे चरण दर चरण तैयार करेंगे, अलग वर्चुअल होस्ट के साथ और ऐसे फ़ायरवॉल के साथ जो केवल ज़रूरी पोर्ट खोलता है।

📋 पूर्वापेक्षाएँ

  • Ubuntu 24.04 वाला एक KVM VPS (IP और root पासवर्ड आपके क्लाइंट एरिया में मिलते हैं)
  • root या sudo अधिकार वाले यूज़र के रूप में SSH एक्सेस
  • एक डोमेन example.com, जिसके A (और AAAA) रिकॉर्ड VPS_IP की ओर इशारा करते हों

नीचे के कमांड मानते हैं कि आप root हैं। अन्यथा उनके आगे sudo लगाएँ।

1. सिस्टम अपडेट करें

Bash
apt update && apt upgrade -y

2. Apache इंस्टॉल करें

Bash
apt install -y apache2 systemctl enable --now apache2 apache2 -v

सर्विस तुरंत शुरू हो जाती है और हर बूट पर अपने-आप चलती है।

3. MariaDB इंस्टॉल करें

MariaDB Ubuntu के रिपॉज़िटरी में उपलब्ध है और MySQL की जगह बिना बदलाव के काम करती है। यदि आप Oracle MySQL पसंद करते हैं तो mysql-server इंस्टॉल करें, लेकिन एक ही मशीन पर दोनों कभी न रखें।

Bash
apt install -y mariadb-server systemctl enable --now mariadb mysql_secure_installation

विज़ार्ड में root के लिए unix_socket ऑथेंटिकेशन बनाए रखें, पूछे जाने पर मज़बूत पासवर्ड सेट करें, अनाम यूज़र हटाएँ, root का रिमोट लॉगिन बंद करें और टेस्ट डेटाबेस हटाएँ। फिर अपने एप्लिकेशन के लिए अलग डेटाबेस और यूज़र बनाएँ:

Bash
mariadb
SQL
1CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 2CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD'; 3GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost'; 4FLUSH PRIVILEGES; 5EXIT;

4. PHP 8.3 इंस्टॉल करें

Ubuntu 24.04 अपने डिफ़ॉल्ट रिपॉज़िटरी में PHP 8.3 देता है, इसलिए अलग PPA की ज़रूरत नहीं है।

Bash
apt install -y php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip php-intl php -v

libapache2-mod-php पैकेज Apache को अपने-आप prefork MPM पर स्विच करता है और PHP मॉड्यूल लोड करता है।

5. वर्चुअल होस्ट बनाएँ और mod_rewrite चालू करें

Bash
mkdir -p /var/www/example.com/public_html chown -R www-data:www-data /var/www/example.com nano /etc/apache2/sites-available/example.com.conf
Apache
1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5 6 <Directory /var/www/example.com/public_html> 7 AllowOverride All 8 Require all granted 9 </Directory> 10 11 ErrorLog ${APACHE_LOG_DIR}/example.com-error.log 12 CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined 13</VirtualHost>

AllowOverride All से .htaccess फ़ाइलें काम करती हैं, जिन पर WordPress या Laravel के सुंदर URL निर्भर हैं। अब मॉड्यूल और साइट चालू करें तथा डिफ़ॉल्ट पेज बंद करें:

Bash
a2enmod rewrite a2ensite example.com.conf a2dissite 000-default.conf apache2ctl configtest systemctl reload apache2

रीलोड से पहले configtest को Syntax OK बताना चाहिए।

6. फ़ायरवॉल कॉन्फ़िगर करें

पहले SSH की अनुमति दें, वरना फ़ायरवॉल चालू करते ही आप खुद सर्वर से बाहर हो जाएँगे।

Bash
ufw allow OpenSSH ufw allow 'Apache Full' ufw enable ufw status

Apache Full प्रोफ़ाइल पोर्ट 80 और 443 खोलती है। पोर्ट 3306 न खोलें: MariaDB को केवल लोकल पर सुनना है।

7. PHP टेस्ट करें और टेस्ट फ़ाइल हटाएँ

Bash
echo '<?php phpinfo();' > /var/www/example.com/public_html/info.php curl -sI http://example.com/info.php | head -n 1

आपको HTTP/1.1 200 OK मिलना चाहिए। PHP कॉन्फ़िगरेशन पेज देखने के लिए ब्राउज़र में http://example.com/info.php खोलें। phpinfo() पेज वर्ज़न, पाथ और मॉड्यूल उजागर करता है, इसलिए इसे तुरंत हटा दें:

Bash
rm /var/www/example.com/public_html/info.php

बाक़ी घटक भी जाँचें:

Bash
apache2ctl -M | grep -E 'rewrite|php' php -m | grep -E 'mysqli|pdo_mysql' systemctl is-active apache2 mariadb

🛠️ समस्या निवारण

Apache का डिफ़ॉल्ट पेज अब भी दिख रहा है। डिफ़ॉल्ट साइट अब भी चालू है या DNS अभी फैला नहीं है। a2dissite 000-default.conf चलाएँ, Apache रीलोड करें और curl -I -H 'Host: example.com' http://VPS_IP/ से जाँचें।

403 Forbidden। जाँचें कि डायरेक्टरी में Require all granted है, www-data फ़ाइलें पढ़ सकता है (ls -ld /var/www/example.com/public_html) और लॉग /var/log/apache2/example.com-error.log देखें।

ब्राउज़र PHP फ़ाइल चलाने के बजाय डाउनलोड कर रहा है। PHP मॉड्यूल लोड नहीं है। apache2ctl -M | grep php चलाएँ, फिर systemctl restart apache2। कुछ न दिखे तो libapache2-mod-php दोबारा इंस्टॉल करें।

रीराइट नियम अनदेखे हो रहे हैं (सुंदर URL पर 404)। पुष्टि करें कि a2enmod rewrite चलाया गया है और आपके <Directory> ब्लॉक में AllowOverride All है।


🎉 आपका LAMP स्टैक तैयार है: Apache, MariaDB और PHP 8.3 आपकी पहली साइट होस्ट करने के लिए तैयार हैं।

नवीनतम ऑफ़र, छूट और विशेष प्रोमोशन से अपडेट रहें।

प्रोमोशन देखें

हम cookies का उपयोग करते हैं

हम अपनी साइट पर आपके अनुभव को बेहतर बनाने के लिए एनालिटिक्स cookies का उपयोग करते हैं। कोई भी डेटा तीसरे पक्ष को नहीं बेचा जाता है। हमारे बारे में और जानें गोपनीयता नीति.