Ubuntu 24.04 LTS पर LAMP स्टैक (Linux, Apache, MySQL, PHP) इंस्टॉल और सुरक्षित करने की एक पूरी, चरण-दर-चरण गाइड — फ़ायरवॉल, हार्डन किए गए MySQL सेटअप, PHP, और मिनटों में टेस्ट किए जा सकने वाले एक कार्यशील Apache वर्चुअल होस्ट को कवर करते हुए।
LAMP स्टैक क्या है?
LAMP स्टैक डायनेमिक वेबसाइटों और वेब एप्लिकेशन को सर्व करने के लिए क्लासिक ओपन-सोर्स प्लेटफ़ॉर्म है। यह संक्षिप्त नाम चार परतों को दर्शाता है जो एक साथ काम करती हैं:
- Linux — ऑपरेटिंग सिस्टम (इस गाइड में, Ubuntu)
- Apache — वह वेब सर्वर जो HTTP अनुरोधों को संभालता है
- MySQL — वह रिलेशनल डेटाबेस जो आपके डेटा को संग्रहीत करता है
- PHP — वह भाषा जो डायनेमिक पेज जनरेट करती है
यह ट्यूटोरियल आपको Ubuntu 24.04 LTS पर एक पूर्ण, हार्डन की गई इंस्टॉलेशन के चरणों से गुज़ारता है (ये चरण 22.04 LTS और नए 26.04 LTS पर भी स्पष्ट रूप से लागू होते हैं)। अंत तक आपके पास एक टेस्ट किए गए वर्चुअल होस्ट वाला कार्यशील वेब सर्वर, एक सुरक्षित डेटाबेस, और पेजों को प्रोसेस करता हुआ PHP होगा।
यदि आप इसे किंगडम में किसी VPS या क्लाउड सर्वर पर चला रहे हैं, तो अपने डेटा को किंगडम के भीतर रखने से PDPL डेटा-रेज़िडेंसी आवश्यकताओं में मदद मिलती है, साथ ही रियाद, जेद्दा और दम्माम के उपयोगकर्ताओं को कम लेटेंसी प्रदान होती है।
पूर्वापेक्षाएँ
- एक Ubuntu 24.04 सर्वर (एक Skyline Cloud VPS अच्छी तरह काम करता है)।
sudoविशेषाधिकारों वाला एक नॉन-रूट उपयोगकर्ता।- सर्वर तक SSH एक्सेस।
पैकेज इंडेक्स को रिफ़्रेश करके शुरू करें:
sudo apt update
sudo apt upgrade -y
चरण 1 — Apache इंस्टॉल करें और फ़ायरवॉल कॉन्फ़िगर करें
Apache वेब सर्वर इंस्टॉल करें:
sudo apt install apache2 -y
Ubuntu UFW फ़ायरवॉल के साथ आता है, और Apache इंस्टॉल होने पर इसके साथ एप्लिकेशन प्रोफ़ाइल पंजीकृत करता है। उन्हें सूचीबद्ध करें:
sudo ufw app list
आपको Apache, Apache Full, और Apache Secure दिखाई देंगे। HTTP (80) और HTTPS (443) दोनों को खोलने के लिए Apache Full की अनुमति दें। यदि UFW अभी तक सक्रिय नहीं है, तो पहले SSH की अनुमति दें ताकि आप खुद को बाहर लॉक न कर लें:
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable
पुष्टि करें कि Apache चल रहा है:
sudo systemctl status apache2
अब किसी ब्राउज़र में http://your_server_ip पर जाएँ। आपको डिफ़ॉल्ट Apache लैंडिंग पेज दिखाई देना चाहिए।
चरण 2 — MySQL इंस्टॉल करें और इसे सुरक्षित करें
MySQL डेटाबेस सर्वर इंस्टॉल करें:
sudo apt install mysql-server -y
सेवा स्वचालित रूप से शुरू हो जाती है। इसके बाद, बिल्ट-इन हार्डनिंग स्क्रिप्ट चलाएँ, जो असुरक्षित डिफ़ॉल्ट्स को हटाती है:
sudo mysql_secure_installation
स्क्रिप्ट आपको यह करने के लिए प्रॉम्प्ट करती है:
- वैकल्पिक रूप से VALIDATE PASSWORD कंपोनेंट सक्षम करें (यदि आप पासवर्ड जटिलता को लागू करना चाहते हैं तो एक पॉलिसी स्तर चुनें)।
- एनॉनिमस उपयोगकर्ताओं को हटाएँ — Y के साथ उत्तर दें।
- रिमोट रूट लॉगिन को अस्वीकार करें — Y के साथ उत्तर दें।
- टेस्ट डेटाबेस हटाएँ — Y के साथ उत्तर दें।
- विशेषाधिकार टेबलों को पुनः लोड करें — Y के साथ उत्तर दें।
एक नई इंस्टॉल पर रूट अकाउंट auth_socket का उपयोग करता है, इसलिए आप बिना पासवर्ड के शेल से लॉग इन करते हैं:
sudo mysql
एप्लिकेशन के लिए, कभी भी रूट का उपयोग न करें। इसके बजाय एक समर्पित उपयोगकर्ता और डेटाबेस बनाएँ:
CREATE DATABASE app_db;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'a_strong_password';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
चरण 3 — PHP इंस्टॉल करें
PHP, Apache PHP मॉड्यूल, और MySQL कनेक्टर इंस्टॉल करें:
sudo apt install php libapache2-mod-php php-mysql -y
अधिकांश एप्लिकेशन को कुछ सामान्य एक्सटेंशन की भी आवश्यकता होती है:
sudo apt install php-cli php-curl php-gd php-mbstring php-xml php-zip -y
इंस्टॉल किए गए संस्करण की जाँच करें:
php -v
चरण 4 — Apache को PHP फ़ाइलों को प्राथमिकता देने के लिए कहें
डिफ़ॉल्ट रूप से Apache index.php से पहले index.html को सर्व करता है। PHP एप्लिकेशन को अपेक्षा के अनुसार काम कराने के लिए, index.php की प्राथमिकता बढ़ाएँ। डायरेक्टरी-इंडेक्स कॉन्फ़िग खोलें:
sudo nano /etc/apache2/mods-enabled/dir.conf
index.php को सूची के सबसे आगे ले जाएँ:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
सहेजें, फिर Apache को रीलोड करें:
sudo systemctl reload apache2
चरण 5 — एक वर्चुअल होस्ट बनाएँ
वर्चुअल होस्ट एक ही सर्वर को कई साइटें होस्ट करने देते हैं। अपने डोमेन के लिए एक डॉक्यूमेंट रूट और एक कॉन्फ़िग फ़ाइल बनाएँ (example.com को बदलें):
sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
sudo nano /etc/apache2/sites-available/example.com.conf
निम्नलिखित जोड़ें:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
अपनी साइट सक्षम करें, डिफ़ॉल्ट साइट अक्षम करें, और रीलोड करें:
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
यदि आप क्लीन URL का उपयोग करने की योजना बना रहे हैं (WordPress और Laravel में आम), तो rewrite मॉड्यूल सक्षम करें:
sudo a2enmod rewrite
sudo systemctl restart apache2
चरण 6 — PHP प्रोसेसिंग का परीक्षण करें
अपने डॉक्यूमेंट रूट में एक टेस्ट फ़ाइल बनाएँ:
nano /var/www/example.com/info.php
जोड़ें:
<?php
phpinfo();
http://example.com/info.php (या अपने सर्वर IP) पर जाएँ। आपको PHP जानकारी पेज दिखाई देना चाहिए, जो पुष्टि करता है कि Apache .php फ़ाइलों को PHP को सौंप रहा है। इसके तुरंत बाद इस फ़ाइल को हटा दें — यह सर्वर विवरण उजागर करती है:
rm /var/www/example.com/info.php
त्वरित कमांड संदर्भ
| कार्य | कमांड |
|---|---|
| Apache को रीस्टार्ट करें | sudo systemctl restart apache2 |
| Apache कॉन्फ़िग रीलोड करें | sudo systemctl reload apache2 |
| Apache कॉन्फ़िग सिंटैक्स का परीक्षण करें | sudo apache2ctl configtest |
| MySQL को रीस्टार्ट करें | sudo systemctl restart mysql |
| MySQL में लॉग इन करें | sudo mysql |
| Apache एरर लॉग देखें | sudo tail -f /var/log/apache2/error.log |
अगले कदम
आपका LAMP सर्वर तैयार है। अनुशंसित फ़ॉलो-अप:
- HTTPS जोड़ें। Certbot के साथ एक मुफ़्त Let's Encrypt प्रमाणपत्र जारी करें, या एक प्रबंधित SSL विकल्प का उपयोग करें ताकि ट्रैफ़िक एन्क्रिप्ट हो।
- एक डोमेन पॉइंट करें। प्रबंधित DNS के माध्यम से एक
.saया अन्य डोमेन कनेक्ट करें ताकि उपयोगकर्ता नाम से आपकी साइट तक पहुँच सकें। - बिज़नेस ईमेल सेट करें। अपनी साइट को अपने स्वयं के डोमेन पर विश्वसनीय बिज़नेस ईमेल होस्टिंग के साथ जोड़ें।
- बैकअप शेड्यूल करें।
/var/wwwके क्लाउड बैकअप और अपने डेटाबेस के नियमितmysqldumpएक्सपोर्ट को स्वचालित करें।
क्या आप इस स्टैक के साथ तैयार सर्वर, किंगडम के भीतर डेटा रेज़िडेंसी, और स्थानीय अरबी सपोर्ट चाहते हैं? Skyline Cloud के लिए साइन अप करें और मिनटों में अपना VPS शुरू करें।
Comments
0 total · 0 threads