"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > ECith Nginx, MySQL, PHP और Git पर एक PHP वेबसाइट स्थापित करना

ECith Nginx, MySQL, PHP और Git पर एक PHP वेबसाइट स्थापित करना

2024-08-25 को प्रकाशित
ब्राउज़ करें:204

Setting Up a PHP Website on ECith Nginx, MySQL, PHP, and Git

यह मार्गदर्शिका आपको वेब सर्वर के रूप में Nginx, डेटाबेस के रूप में MySQL, सर्वर-साइड स्क्रिप्टिंग के लिए PHP का उपयोग करके Amazon EC2 इंस्टेंस पर एक PHP वेबसाइट स्थापित करने की प्रक्रिया के बारे में बताएगी। और संस्करण नियंत्रण के लिए Git। हम प्रारंभिक सेटअप से लेकर सामान्य समस्याओं के निवारण तक सब कुछ कवर करेंगे।

विषयसूची

  1. एक EC2 इंस्टेंस लॉन्च करें
  2. अपने EC2 इंस्टेंस से कनेक्ट करें
  3. सिस्टम को अपडेट और अपग्रेड करें
  4. Nginx स्थापित करें
  5. MySQL स्थापित करें
  6. PHP इंस्टॉल करें
  7. गिट स्थापित करें
  8. Nginx कॉन्फ़िगर करें
  9. अपनी वेबसाइट निर्देशिका सेट करें
  10. अपना रिपॉजिटरी क्लोन करें
  11. सही अनुमतियां सेट करें
  12. PHP कॉन्फ़िगर करें
  13. एसएसएल सेट करें (वैकल्पिक लेकिन अनुशंसित)
  14. सामान्य समस्याओं का निवारण
  15. सर्वोत्तम अभ्यास और सुरक्षा संबंधी विचार

1. EC2 इंस्टेंस लॉन्च करें

  1. अपने AWS प्रबंधन कंसोल में लॉग इन करें।
  2. EC2 पर नेविगेट करें और "लॉन्च इंस्टेंस" पर क्लिक करें।
  3. एक उबंटू सर्वर एएमआई चुनें (उदाहरण के लिए, उबंटू सर्वर 22.04 एलटीएस)।
  4. एक इंस्टेंस प्रकार चुनें (t2.micro फ्री टियर के लिए पात्र है)।
  5. आवश्यकतानुसार इंस्टेंस विवरण कॉन्फ़िगर करें, स्टोरेज और टैग जोड़ें।
  6. SSH (पोर्ट 22), HTTP (पोर्ट 80), और HTTPS (पोर्ट 443) ट्रैफ़िक की अनुमति देने के लिए सुरक्षा समूह को कॉन्फ़िगर करें।
  7. कुंजी जोड़ी का चयन या निर्माण करके इंस्टेंस की समीक्षा करें और लॉन्च करें।

2. अपने EC2 इंस्टेंस से कनेक्ट करें

अपने इंस्टेंस से कनेक्ट करने के लिए SSH का उपयोग करें:

ssh -i /path/to/your-key.pem ubuntu@your-instance-public-dns

/path/to/your-key.pem को अपनी कुंजी फ़ाइल के पथ से बदलें और अपने-instance-public-dns को अपने इंस्टेंस के सार्वजनिक DNS नाम से बदलें।

3. सिस्टम को अपडेट और अपग्रेड करें

एक बार कनेक्ट होने के बाद, अपने सिस्टम को अपडेट और अपग्रेड करें:

sudo apt update
sudo apt upgrade -y

4. Nginx स्थापित करें

Nginx वेब सर्वर स्थापित करें:

sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

सत्यापित करें कि Nginx चल रहा है:

sudo systemctl status nginx

5. MySQL इंस्टॉल करें

MySQL सर्वर स्थापित करें:

sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql

अपना MySQL इंस्टालेशन सुरक्षित करें:

sudo mysql_secure_installation

रूट पासवर्ड सेट करने और असुरक्षित डिफ़ॉल्ट सेटिंग्स हटाने के लिए संकेतों का पालन करें।

6. PHP स्थापित करें

हम 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

7. गिट स्थापित करें

संस्करण नियंत्रण के लिए Git स्थापित करें:

sudo apt install git -y

Git इंस्टॉलेशन सत्यापित करें:

git --version

8. Nginx कॉन्फ़िगर करें

एक नया 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

9. अपनी वेबसाइट निर्देशिका सेट करें

वेब रूट निर्देशिका बनाएं:

sudo mkdir -p /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain
sudo chmod -R 755 /var/www/your_domain

10. अपने रिपॉजिटरी को क्लोन करें

यदि आपके पास अपनी वेबसाइट के लिए मौजूदा 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

11. सही अनुमतियाँ सेट करें

अपनी वेब फ़ाइलों के लिए सही अनुमतियाँ सेट करें:

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

समूह परिवर्तनों को प्रभावी करने के लिए आपको लॉग आउट करने और वापस लॉग इन करने की आवश्यकता हो सकती है।

12. PHP कॉन्फ़िगर करें

यदि आवश्यक हो तो 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

13. एसएसएल सेट करें (वैकल्पिक लेकिन अनुशंसित)

अपनी वेबसाइट को HTTPS से सुरक्षित करने के लिए, आप Let's Encrypt का उपयोग कर सकते हैं:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain -d www.your_domain

एसएसएल सेट करने के लिए संकेतों का पालन करें।

14. सामान्य समस्याओं का निवारण

अनुमति अस्वीकृत त्रुटियाँ

यदि आप Nginx त्रुटि लॉग में "अनुमति अस्वीकृत" त्रुटियों का सामना करते हैं:

  1. फ़ाइल स्वामित्व की जाँच करें:
   ls -l /var/www/your_domain
  1. सुनिश्चित करें कि Nginx सही उपयोगकर्ता के रूप में चल रहा है:
   ps aux | grep nginx
  1. Nginx कॉन्फ़िगरेशन की जाँच करें:
   sudo nano /etc/nginx/nginx.conf

सुनिश्चित करें कि उपयोगकर्ता www-data पर सेट है।

पीएचपी त्रुटियाँ

PHP-संबंधी त्रुटियों के लिए:

  1. PHP-FPM लॉग जांचें:
   sudo tail -f /var/log/php8.1-fpm.log
  1. सुनिश्चित करें कि PHP-FPM चल रहा है:
   sudo systemctl status php8.1-fpm
  1. सत्यापित करें कि PHP-FPM सॉकेट फ़ाइल मौजूद है:
   ls /var/run/php/php8.1-fpm.sock

गिट मुद्दे

यदि आपको Git अनुमति संबंधी समस्याओं का सामना करना पड़ता है:

  1. सुनिश्चित करें कि .git निर्देशिका का स्वामित्व आपके उपयोगकर्ता के पास है:
   sudo chown -R ubuntu:ubuntu /var/www/your_domain/.git
  1. Git संचालन के लिए sudo का उपयोग करें या अस्थायी रूप से स्वामित्व बदलें:
   sudo chown -R ubuntu:ubuntu /var/www/your_domain
   git pull
   sudo chown -R www-data:www-data /var/www/your_domain

15. सर्वोत्तम प्रथाएँ और सुरक्षा संबंधी विचार

  1. अपने सिस्टम और सॉफ़्टवेयर को नियमित रूप से अपडेट करें:
   sudo apt update && sudo apt upgrade -y
  1. सभी सेवाओं (MySQL, SSH, आदि) के लिए मजबूत पासवर्ड का उपयोग करें।

  2. आने वाले ट्रैफ़िक को प्रतिबंधित करने के लिए फ़ायरवॉल कॉन्फ़िगर करें (जैसे, UFW):

   sudo ufw allow OpenSSH
   sudo ufw allow 'Nginx Full'
   sudo ufw enable
  1. क्रूर-बल के हमलों से बचाने के लिए फेल2बैन लागू करें:
   sudo apt install fail2ban -y
   sudo systemctl start fail2ban
   sudo systemctl enable fail2ban
  1. नियमित रूप से अपनी वेबसाइट और डेटाबेस का बैकअप लें।

  2. असामान्य गतिविधि के लिए अपने सर्वर लॉग की निगरानी करें:

   sudo tail -f /var/log/nginx/access.log
   sudo tail -f /var/log/nginx/error.log
  1. अपने सभी कोड परिवर्तनों के लिए संस्करण नियंत्रण (Git) का उपयोग करें।

  2. अपने PHP एप्लिकेशन में उचित त्रुटि प्रबंधन और लॉगिंग लागू करें।

  3. एसक्यूएल इंजेक्शन हमलों को रोकने के लिए तैयार कथन या ओआरएम का उपयोग करें।

  4. अपने एप्लिकेशन निर्भरता को अद्यतित रखें और PHP परियोजनाओं के लिए कंपोजर जैसे निर्भरता प्रबंधक का उपयोग करें।

इस गाइड का पालन करके, आपके पास Nginx, MySQL और Git के साथ EC2 इंस्टेंस पर चलने वाली एक पूरी तरह कार्यात्मक PHP वेबसाइट होनी चाहिए।
निर्देशों को अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित करना याद रखें और अपने सेटअप में हमेशा सुरक्षा को प्राथमिकता दें।

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/manojspace/setting-pe-a-php-website-on-ec2-with-nginx-mysql-php-and-git-3471?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3