परिचय: स्थानीय विकास से प्रोडक्शन सर्वर तक
\nस्थानीय मशीन पर PHP एप्लिकेशन विकसित करना केवल आधा काम है। असली महारत तब शुरू होती है जब कोड सर्वर पर जाता है और वास्तविक उपयोगकर्ताओं की सेवा करना शुरू करता है। VPS पर PHP की उन्नत तैनाती केवल FTP के माध्यम से फ़ाइलों की प्रतिलिपि बनाना नहीं है। यह एक व्यापक प्रक्रिया है जिसमें वातावरण सेटअप, सुरक्षा, स्वचालन और निगरानी शामिल है।
\nइस लेख में, हम देखेंगे कि आधुनिक DevOps टूल और प्रथाओं का उपयोग करके PHP एप्लिकेशन की पेशेवर होस्टिंग के लिए VPS कैसे सेटअप करें। आप सीखेंगे कि Nginx + PHP-FPM स्टैक पर एप्लिकेशन कैसे तैनात करें, CI/CD पाइपलाइन सेटअप करें, प्रदर्शन को अनुकूलित करें और निगरानी लागू करें।
\nयह माना जाता है कि आपको Linux, PHP और वेब सर्वर का बुनियादी ज्ञान है। हम उन्नत स्तर पर जा रहे हैं।
\n\n1. VPS तैयारी और वातावरण सेटअप
\nसर्वर चयन और प्रारंभिक सेटिंग
\nउन्नत तैनाती के लिए, कम से कम 2 GB RAM और SSD डिस्क वाला VPS चुनें। अनुशंसित OS — Ubuntu 22.04 LTS या Debian 12। SSH के माध्यम से पहुँच प्राप्त करने के बाद, बुनियादी सेटिंग करें:
\n- \n
- पैकेज अपडेट:
sudo apt update && sudo apt upgrade -y\n - sudo अधिकारों वाला उपयोगकर्ता बनाएँ:
sudo adduser deployer && sudo usermod -aG sudo deployer\n - SSH कुंजियाँ सेटअप करें (पासवर्ड लॉगिन अक्षम करें) \n
- ब्रूटफोर्स सुरक्षा के लिए fail2ban स्थापित करें \n
- UFW सेटअप करें (पोर्ट 22, 80, 443 अनुमति दें) \n
LEMP स्टैक स्थापना (Nginx + PHP-FPM + MySQL)
\nहम PHP को संसाधित करने के लिए Nginx को फ्रंटएंड सर्वर और PHP-FPM का उपयोग करते हैं। एक कमांड से सभी घटक स्थापित करें:
\nsudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip composer git -y\nसंस्करण जाँचें:
\nphp -v\nnginx -v\nmysql --version\n\nउच्च प्रदर्शन के लिए PHP-FPM सेटिंग
\nउन्नत तैनाती के लिए, PHP-FPM कॉन्फ़िगरेशन बदलें। फ़ाइल /etc/php/8.3/fpm/pool.d/www.conf संपादित करें (संस्करण भिन्न हो सकता है):
pm = dynamic\npm.max_children = 50\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 35\npm.max_requests = 500\nप्रोडक्शन के लिए महत्वपूर्ण php.ini सेटिंग्स:
memory_limit = 256M\nupload_max_filesize = 64M\npost_max_size = 64M\nmax_execution_time = 300\ndate.timezone = Europe/Moscow\nPHP-FPM पुनरारंभ करें: sudo systemctl restart php8.3-fpm
2. एप्लिकेशन तैनाती: Git से प्रोडक्शन तक
\nक्लोनिंग और अनुमतियाँ सेट करना
\nप्रोजेक्ट के लिए निर्देशिका बनाएँ और रिपॉजिटरी क्लोन करें:
\nsudo mkdir -p /var/www/yourproject\nsudo chown -R deployer:deployer /var/www/yourproject\ncd /var/www/yourproject\ngit clone git@github.com:yourusername/yourproject.git .\nपहुँच अनुमतियाँ सेट करें:
\nsudo chown -R www-data:www-data /var/www/yourproject/storage\nsudo chown -R www-data:www-data /var/www/yourproject/bootstrap/cache\nsudo chmod -R 775 /var/www/yourproject/storage\nsudo chmod -R 775 /var/www/yourproject/bootstrap/cache\n\nNginx वर्चुअल होस्ट सेटिंग
\nअपने डोमेन के लिए कॉन्फ़िगरेशन फ़ाइल बनाएँ:
\nsudo nano /etc/nginx/sites-available/yourproject\nकैशिंग और संपीड़न के साथ उन्नत कॉन्फ़िगरेशन का उदाहरण:
\nserver {\n listen 80;\n server_name yourdomain.com www.yourdomain.com;\n root /var/www/yourproject/public;\n\n index index.php index.html;\n\n charset utf-8;\n\n location / {\n try_files $uri $uri/ /index.php?$query_string;\n }\n\n location ~ \\.php$ {\n fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;\n fastcgi_index index.php;\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n include fastcgi_params;\n }\n\n location ~ /\