यह मार्गदर्शिका आपको वेब सर्वर के रूप में Nginx, डेटाबेस के रूप में MySQL, सर्वर-साइड स्क्रिप्टिंग के लिए PHP का उपयोग करके Amazon EC2 इंस्टेंस पर एक PHP वेबसाइट स्थापित करने की प्रक्रिया के बारे में बताएगी। और संस्करण नियंत्रण के लिए Git। हम प्रारंभिक सेटअप से लेकर सामान्य समस्याओं के निवारण तक सब कुछ कवर करेंगे।
अपने इंस्टेंस से कनेक्ट करने के लिए SSH का उपयोग करें:
ssh -i /path/to/your-key.pem ubuntu@your-instance-public-dns
/path/to/your-key.pem को अपनी कुंजी फ़ाइल के पथ से बदलें और अपने-instance-public-dns को अपने इंस्टेंस के सार्वजनिक DNS नाम से बदलें।
एक बार कनेक्ट होने के बाद, अपने सिस्टम को अपडेट और अपग्रेड करें:
sudo apt update sudo apt upgrade -y
Nginx वेब सर्वर स्थापित करें:
sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
सत्यापित करें कि Nginx चल रहा है:
sudo systemctl status nginx
MySQL सर्वर स्थापित करें:
sudo apt install mysql-server -y sudo systemctl start mysql sudo systemctl enable mysql
अपना MySQL इंस्टालेशन सुरक्षित करें:
sudo mysql_secure_installation
रूट पासवर्ड सेट करने और असुरक्षित डिफ़ॉल्ट सेटिंग्स हटाने के लिए संकेतों का पालन करें।
हम PHP 8.1 (या उबंटू रिपॉजिटरी में उपलब्ध नवीनतम स्थिर संस्करण) स्थापित करेंगे:
sudo apt install php8.1-fpm php8.1-mysql php8.1-common php8.1-cli php8.1-curl php8.1-mbstring php8.1-xml php8.1-zip -y
PHP स्थापना सत्यापित करें:
php -v
संस्करण नियंत्रण के लिए Git स्थापित करें:
sudo apt install git -y
Git इंस्टॉलेशन सत्यापित करें:
git --version
एक नया Nginx सर्वर ब्लॉक कॉन्फ़िगरेशन बनाएं:
sudo nano /etc/nginx/sites-available/your_domain
निम्न कॉन्फ़िगरेशन जोड़ें (अपने_डोमेन को अपने वास्तविक डोमेन या आईपी पते से बदलें):
server { listen 80; server_name your_domain www.your_domain; root /var/www/your_domain; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~ /\.ht { deny all; } }
नई साइट सक्षम करें:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Nginx कॉन्फ़िगरेशन का परीक्षण करें:
sudo nginx -t
यदि परीक्षण सफल है, तो Nginx को पुनः लोड करें:
sudo systemctl reload nginx
वेब रूट निर्देशिका बनाएं:
sudo mkdir -p /var/www/your_domain sudo chown -R $USER:$USER /var/www/your_domain sudo chmod -R 755 /var/www/your_domain
यदि आपके पास अपनी वेबसाइट के लिए मौजूदा Git रिपॉजिटरी है, तो इसे अपने वेब रूट में क्लोन करें:
cd /var/www/your_domain git clone https://github.com/your-username/your-repo.git .
https://github.com/your-username/your-repo.git को अपने वास्तविक रिपॉजिटरी URL से बदलें।
यदि आप एक नया प्रोजेक्ट शुरू कर रहे हैं, तो एक नया Git रिपॉजिटरी आरंभ करें:
cd /var/www/your_domain git init
अपनी वेब फ़ाइलों के लिए सही अनुमतियाँ सेट करें:
sudo chown -R www-data:www-data /var/www/your_domain sudo find /var/www/your_domain -type d -exec chmod 755 {} \; sudo find /var/www/your_domain -type f -exec chmod 644 {} \;
उबंटू उपयोगकर्ता को फ़ाइलें प्रबंधित करने की अनुमति देने के लिए:
sudo usermod -a -G www-data ubuntu sudo chmod g s /var/www/your_domain
समूह परिवर्तनों को प्रभावी करने के लिए आपको लॉग आउट करने और वापस लॉग इन करने की आवश्यकता हो सकती है।
यदि आवश्यक हो तो PHP सेटिंग्स समायोजित करें:
sudo nano /etc/php/8.1/fpm/php.ini
समायोजित करने के लिए सामान्य सेटिंग्स:
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 memory_limit = 256M
परिवर्तन करने के बाद, PHP-FPM को पुनरारंभ करें:
sudo systemctl restart php8.1-fpm
अपनी वेबसाइट को HTTPS से सुरक्षित करने के लिए, आप Let's Encrypt का उपयोग कर सकते हैं:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain -d www.your_domain
एसएसएल सेट करने के लिए संकेतों का पालन करें।
यदि आप Nginx त्रुटि लॉग में "अनुमति अस्वीकृत" त्रुटियों का सामना करते हैं:
ls -l /var/www/your_domain
ps aux | grep nginx
sudo nano /etc/nginx/nginx.conf
सुनिश्चित करें कि उपयोगकर्ता www-data पर सेट है।
PHP-संबंधी त्रुटियों के लिए:
sudo tail -f /var/log/php8.1-fpm.log
sudo systemctl status php8.1-fpm
ls /var/run/php/php8.1-fpm.sock
यदि आपको Git अनुमति संबंधी समस्याओं का सामना करना पड़ता है:
sudo chown -R ubuntu:ubuntu /var/www/your_domain/.git
sudo chown -R ubuntu:ubuntu /var/www/your_domain git pull sudo chown -R www-data:www-data /var/www/your_domain
sudo apt update && sudo apt upgrade -y
सभी सेवाओं (MySQL, SSH, आदि) के लिए मजबूत पासवर्ड का उपयोग करें।
आने वाले ट्रैफ़िक को प्रतिबंधित करने के लिए फ़ायरवॉल कॉन्फ़िगर करें (जैसे, UFW):
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable
sudo apt install fail2ban -y sudo systemctl start fail2ban sudo systemctl enable fail2ban
नियमित रूप से अपनी वेबसाइट और डेटाबेस का बैकअप लें।
असामान्य गतिविधि के लिए अपने सर्वर लॉग की निगरानी करें:
sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
अपने सभी कोड परिवर्तनों के लिए संस्करण नियंत्रण (Git) का उपयोग करें।
अपने PHP एप्लिकेशन में उचित त्रुटि प्रबंधन और लॉगिंग लागू करें।
एसक्यूएल इंजेक्शन हमलों को रोकने के लिए तैयार कथन या ओआरएम का उपयोग करें।
अपने एप्लिकेशन निर्भरता को अद्यतित रखें और PHP परियोजनाओं के लिए कंपोजर जैसे निर्भरता प्रबंधक का उपयोग करें।
इस गाइड का पालन करके, आपके पास Nginx, MySQL और Git के साथ EC2 इंस्टेंस पर चलने वाली एक पूरी तरह कार्यात्मक PHP वेबसाइट होनी चाहिए।
निर्देशों को अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित करना याद रखें और अपने सेटअप में हमेशा सुरक्षा को प्राथमिकता दें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3