परिचय: PHP प्रोजेक्ट के लिए VPS सबसे अच्छा विकल्प क्यों है?
\nPHP में वेब एप्लिकेशन विकसित करना केवल आधा काम है। दूसरा, कम महत्वपूर्ण हिस्सा नहीं, सही तैनाती है। यदि आप अपनी सीमाओं के साथ साझा होस्टिंग से आगे बढ़ गए हैं और पर्यावरण पर पूर्ण नियंत्रण चाहते हैं, तो वर्चुअल प्राइवेट सर्वर (VPS) एक आदर्श समाधान है। इस लेख में, हम सर्वर खरीदने से लेकर आपके PHP एप्लिकेशन को प्रोडक्शन मोड में लॉन्च करने तक का सफर तय करेंगे। आप सीखेंगे कि Nginx + PHP-FPM + MySQL स्टैक को कैसे कॉन्फ़िगर करें, डोमेन, SSL प्रमाणपत्र सेट करें और कोड अपडेट को स्वचालित करें।
\n\nचरण 1: VPS की प्रारंभिक सेटिंग और कनेक्शन
\n1.1 OS चयन और प्रारंभिक लॉगिन
\nहम Ubuntu 22.04 LTS का उपयोग करने की सलाह देते हैं - स्थिर और दीर्घकालिक समर्थन के साथ। VPS खरीदने के बाद, आपको एक IP पता और root पासवर्ड प्राप्त होगा।
\nSSH के माध्यम से कनेक्ट करें:
\nssh root@आपका_सर्वर_IP\n\n1.2 उपयोगकर्ता बनाना और सुरक्षा सेटिंग
\nroot के रूप में काम करना एक बुरी प्रथा है। आइए sudo अधिकारों के साथ एक अलग उपयोगकर्ता बनाएं:
\nadduser deployer\nusermod -aG sudo deployer\nअब सुविधाजनक और सुरक्षित लॉगिन के लिए SSH कुंजियाँ सेट करें। स्थानीय मशीन पर एक कुंजी जनरेट करें (यदि कोई नहीं है):
\nssh-keygen -t rsa -b 4096\nसार्वजनिक कुंजी को सर्वर पर कॉपी करें:
\nssh-copy-id deployer@आपका_सर्वर_IP\nकुंजी द्वारा लॉगिन की जाँच करने के बाद, पासवर्ड लॉगिन और root एक्सेस अक्षम करें:
\nsudo nano /etc/ssh/sshd_config\n# बदलें:\nPermitRootLogin no\nPasswordAuthentication no\n# SSH पुनरारंभ करें:\nsudo systemctl restart sshd\n\nचरण 2: LEMP स्टैक (Nginx, PHP, MySQL) की स्थापना और सेटिंग
\n2.1 Nginx स्थापना
\nपैकेज अपडेट करें और वेब सर्वर स्थापित करें:
\nsudo apt update && sudo apt upgrade -y\nsudo apt install nginx -y\nस्थिति जांचें:
\nsudo systemctl status nginx\n\n2.2 PHP 8.x और आवश्यक एक्सटेंशन की स्थापना
\nPHP के वर्तमान संस्करण के साथ रिपॉजिटरी जोड़ें:
\nsudo apt install software-properties-common\nsudo add-apt-repository ppa:ondrej/php\nsudo apt update\nsudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip -y\n\n2.3 MySQL (MariaDB) स्थापना
\nsudo apt install mariadb-server mariadb-client -y\nsudo mysql_secure_installation\nअपने एप्लिकेशन के लिए डेटाबेस और उपयोगकर्ता बनाएं:
\nsudo mysql -u root\nCREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong_password';\nGRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;\n\nचरण 3: Nginx में वर्चुअल होस्ट (सर्वर ब्लॉक) सेट करना
\nअपने डोमेन के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएं (उदाहरण के लिए, myapp.ru):
sudo nano /etc/nginx/sites-available/myapp\nPHP-FPM के लिए निम्नलिखित टेम्पलेट डालें:
\nserver {\n listen 80;\n server_name myapp.ru www.myapp.ru;\n root /var/www/myapp/public;\n index index.php index.html;\n\n location / {\n try_files $uri $uri/ /index.php?$query_string;\n }\n\n location ~ \\.php$ {\n include snippets/fastcgi-php.conf;\n fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;\n }\n\n location ~ /\\.ht {\n deny all;\n }\n}\nसाइट को सक्रिय करें और Nginx को पुनः लोड करें:
\nsudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/\nsudo nginx -t # कॉन्फ़िगरेशन जांच\nsudo systemctl reload nginx\n\nचरण 4: एप्लिकेशन कोड की तैनाती (Git + Composer)
\n4.1 रिपॉजिटरी क्लोन करना
\nप्रोजेक्ट के लिए निर्देशिका बनाएं और कोड क्लोन करें (उदाहरण के लिए, GitHub से):
\nsudo mkdir -p /var/www/myapp\nsudo chown -R deployer:depl