CentOS 7 पर PHP 5.x से PHP 7.x में upgrade करने का चरण-दर-चरण गाइड। PHP 7 में महत्वपूर्ण प्रदर्शन सुधार (2x speed) और नई सुविधाएं हैं।
पूर्वापेक्षाएँ
- CentOS 7 पर चल रहा PHP 5.x
- Apache में
mod_phpmodule सक्षम - Root या sudo privileges
- काम कर रहे एप्लिकेशन का बैकअप
चरण 1: IUS Repository जोड़ें
PHP 7 CentOS base repos में उपलब्ध नहीं है। IUS Community Project उपयोग करें:
# IUS setup script डाउनलोड और चलाएं curl 'https://setup.ius.io/' -o setup-ius.sh bash setup-ius.sh
चरण 2: पुराने PHP Packages हटाएं
# पुराने packages हटाएं yum remove php-cli php-common php-fpm php-mysqlnd php-pdo php-xml php-gd php-mbstring # या सभी php packages के लिए yum remove 'php*'
चरण 3: PHP 7.4 Install करें (अनुशंसित LTS)
# PHP 7.4 packages install करें
yum install php74u php74u-cli php74u-common php74u-fpm \
php74u-mysqlnd php74u-pdo php74u-xml php74u-gd \
php74u-mbstring php74u-json php74u-opcache php74u-zip \
php74u-curl php74u-bcmath php74u-intl php74u-process
# Apache के लिए
yum install mod_php74u
चरण 4: PHP-FPM कॉन्फ़िगर करें (अनुशंसित)
# /etc/php-fpm.d/www.conf संपादित करें ; User/group को apache/nginx पर सेट करें user = apache group = apache ; Listen पर socket (better performance) listen = /run/php-fpm/www.sock listen.owner = apache listen.group = apache listen.mode = 0660 ; Process manager settings pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35
चरण 5: Apache कॉन्फ़िगर करें
# /etc/httpd/conf.d/php.conf - सुनिश्चित करें कि यह mod_php या php-fpm उपयोग करता है # Option A: mod_php (सरल) # LoadModule php7_module modules/libphp7.so (auto-added by package) # Option B: PHP-FPM (बेहतर प्रदर्शन) - अनुशंसितSetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
चरण 6: Services Restart करें
systemctl restart php-fpm systemctl restart httpd systemctl enable php-fpm systemctl enable httpd
चरण 7: सत्यापित करें
# CLI version php -v # PHP 7.4.x (cli) (built: ...) # Web test echo '' > /var/www/html/info.php # Browser में https://your-server/info.php खोलें
आम Migration Issues और Fixes
| समस्या | समाधान |
|---|---|
mysql_connect() deprecated | mysqli या PDO पर migrate करें |
each() deprecated | foreach उपयोग करें |
create_function() deprecated | Anonymous functions उपयोग करें |
| Array key order changes | Code review करें |
| Integer handling changes | Type hints/juggling जांचें |
Rollback Plan
# यदि issues हों, तो rollback: yum remove 'php74u*' yum install php php-cli php-common php-fpm php-mysqlnd php-pdo systemctl restart httpd
नोट
यह गाइड PHP 7.4 (LTS, EOL Nov 2022) के लिए है। नए deployments के लिए PHP 8.1+ या 8.2+ पर विचार करें। EOL versions केवल legacy systems के लिए उपयोग करें।