Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

CentOS 7 पर PHP 5.x से PHP 7 में Migration


CentOS 7 पर PHP 5.x से PHP 7.x में upgrade करने का चरण-दर-चरण गाइड। PHP 7 में महत्वपूर्ण प्रदर्शन सुधार (2x speed) और नई सुविधाएं हैं।

पूर्वापेक्षाएँ

  • CentOS 7 पर चल रहा PHP 5.x
  • Apache में mod_php module सक्षम
  • 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() deprecatedmysqli या PDO पर migrate करें
each() deprecatedforeach उपयोग करें
create_function() deprecatedAnonymous functions उपयोग करें
Array key order changesCode review करें
Integer handling changesType 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 के लिए उपयोग करें।

  1. - PHP TypeError

    परिचय TypeError क्लास Error क्लास को एक्सटेंड करती है। यह त्रुटि तब उठती है जब वास्तविक और औपचारिक आर्गुमेंट प्रकार मेल नहीं खाते, रिटर्न प्रकार घोषित रिटर्न प्रकार से मेल नहीं खाता, या किसी बिल्ट-इन फ़ंक्शन को अमान्य आर्गुमेंट पास किए जाते हैं। ध्यान दें कि strict_types को declare() फ़ंक्शन के साथ

  1. - PHP टैग्स (Tags) - कैननिकल, शॉर्ट और इको टैग

    परिभाषा और उपयोग एक PHP कोड स्क्रिप्ट एक टेक्स्ट फ़ाइल है जिसका एक्सटेंशन .php होता है और यह वेब सर्वर पर संग्रहीत होती है। सर्वर पर PHP पार्सर विशेष वर्ण अनुक्रम <?php और ?> की तलाश करता है। इन्हें PHP के प्रारंभिक और समापन टैग कहा जाता है। इन दोनों के भीतर के स्टेटमेंट पार्सर द्वारा व्याख्य

  1. - PHP pi() फ़ंक्शन - π मान प्राप्त करना

    PHP का pi() फ़ंक्शन गणितीय स्थिरांक **π (पाई)** का मान लौटाता है। यह M_PI स्थिरांक के समान मान (3.1415926535898) देता है। सिंटैक्स pi(): float पैरामीटर्स कोई पैरामीटर नहीं। लौटाया गया मान π का मान (फ्लोट)। M_PI स्थिरांक के बराबर। उदाहरण 1. वृत्त का क्षेत्रफल: πr² <?php $radius = 5; echo area