কম্পিউটার

CentOS 7-এ PHP 5.x থেকে PHP 7-এ স্থানান্তর করা হচ্ছে


এই নিবন্ধে, আমরা শিখব কিভাবে PHP 5.x-কে PHP 7, PHP 7-এ আপগ্রেড ও আপডেট করা যায় যা PHP-এর পুরানো সংস্করণের সাথে তুলনীয় গতির উন্নতির সাথে 2015 সালে প্রকাশিত হয়েছিল৷

পূর্বশর্ত

ধরে নিচ্ছি যে আমরা ইতিমধ্যেই CentOS7 এ PHP 5.x ইনস্টল করেছি, এবং mod_php মডিউলটি Apache দ্বারা সক্রিয় করা উচিত, এবং আমাদের সুডো বিশেষাধিকার বা রুট ব্যবহারকারীর প্রয়োজন৷

PHP 7 সংগ্রহস্থল সক্রিয় করা হচ্ছে

যেহেতু PHP 7.x অফিসিয়াল রিপোজিটরিতে পাওয়া যায় না, তাই আমাদের IUS কমিউনিটি প্রজেক্ট রিপোজিটরি ব্যবহার করতে হবে।

নিচের কমান্ড দিয়ে মেশিনে IUS সংগ্রহস্থল ডাউনলোড করুন

# curl 'https://setup.ius.io/' -o setup-ius.sh
curl 'https://setup.ius.io/' -o setup-ius.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1913 100 1913 0 0 1554 0 0:00:01 0:00:01 --:--:-- 1555


নীচের কমান্ড দিয়ে স্থানীয় মেশিনে IUS সংগ্রহস্থল ইনস্টল করা হচ্ছে

# bash setup-ius.sh
bash setup-ius.sh
detected CentOS 7
Loaded plugins: fastestmirror
base | 3.6 kB
epel/x86_64/metalink | 5.2 kB
epel | 4.3 kB
extras | 3. 4 kB 00:00:00
mysql56-community | 2.5 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/3): updates/7/x86_64/primary_db | 5.7 MB 00:00:00
(2/3): epel/x86_64/updateinfo | 584 kB 00:00:02
(3/3): epel/x86_64/primary_db | 4.3 MB 00:00:03
Loading mirror speeds from cached hostfile
* base: mirrors.nhanhoa.com
* epel: kodeterbuka.beritagar.id
* extras: mirrors.nhanhoa.com
* updates: mirrors.nhanhoa.com
Package epel-release-7-7.noarch already installed and latest version
Nothing to do
Loaded plugins: fastestmirror
ius-release.rpm | 8.1 kB 00:00:00
Examining /var/tmp/yum-root-BRDs50/ius-release.rpm: ius-release-1.0-14.ius.centos7.noarch
Marking /var/tmp/yum-root-BRDs50/ius-release.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package ius-release.noarch 0:1.0-14.ius.centos7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================
Package Arch Version Repository Size=========================================================================================================================
Installing:
ius-release noarch 1.0-14.ius.centos7 /ius-release 8.
Transaction Summary
=========================================================================================================================
Install 1 Package
Total size: 8.5 k
Installed size: 8.5 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : ius-release-1.0-14.ius.centos7.noarch 1/1
Verifying : ius-release-1.0-14.ius.centos7.noarch 1/1
Installed:
ius-release.noarch 0:1.0-14.ius.centos7
Complete!

Apache-এ mod_php মডিউল আপগ্রেড করা হচ্ছে

এখানে, আমরা Apachhe মডিউল mod_php-এর জন্য সিস্টেম আপগ্রেড করব। প্রথমে, আমরা নীচের কমান্ডটি ব্যবহার করে পুরানো প্যাকেজগুলি সরিয়ে দেব।

# yum remove php-cli mod_php php-common

নিচের কমান্ডটি ব্যবহার করে IUS সংগ্রহস্থল ব্যবহার করে নতুন PHP 7 মডিউল ইনস্টল করা।

# yum install php70-mysqlnd mod_php70u php70u-cli
Loaded plugins: fastestmirror
ius | 2.2 kB 00:00:00
ius/x86_64/primary_db | 173 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: mirrors.nhanhoa.com
* epel: kodeterbuka.beritagar.id
* extras: mirrors.nhanhoa.com
* ius: hkg.mirror.rackspace.com
* updates: mirrors.nhanhoa.com
Resolving Dependencies
--> Running transaction check
---> Package mod_php70u.x86_64 0:7.0.8-1.ius.centos7 will be installed
--> Processing Dependency: php-common(x86-64) = 7.0.8-1.ius.centos7 for package: mod_php70u-7.0.8-1.ius.centos7.x86_64
---> Package php70u-cli.x86_64 0:7.0.8-1.ius.centos7 will be installed
---> Package php70u-mysqlnd.x86_64 0:7.0.8-1.ius.centos7 will be installed
--> Processing Dependency: php-pdo(x86-64) = 7.0.8-1.ius.centos7 for package: php70u-mysqlnd-7.0.8-1.ius.centos7.x86_64
--> Running transaction check
---> Package php70u-common.x86_64 0:7.0.8-1.ius.centos7 will be installed
---> Package php70u-pdo.x86_64 0:7.0.8-1.ius.centos7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================
Installing:
mod_php70u x86_64 7.0.8-1.ius.centos7 ius 2.6 M
php70u-cli x86_64 7.0.8-1.ius.centos7 ius 4.0 M
php70u-mysqlnd x86_64 7.0.8-1.ius.centos7 ius 239 k
Installing for dependencies:
php70u-common x86_64 7.0.8-1.ius.centos7 ius 1.1 M
php70u-pdo x86_64 7.0.8-1.ius.centos7 ius 126 k
Transaction Summary
=========================================================================================================================
Install 3 Packages (+2 Dependent packages)
Total download size: 8.0 M
Installed size: 30 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): php70u-pdo-7.0.8-1.ius.centos7.x86_64.rpm | 126 kB 00:00:00
(2/5): mod_php70u-7.0.8-1.ius.centos7.x86_64.rpm | 2.6 MB 00:00:01
(3/5): php70u-common-7.0.8-1.ius.centos7.x86_64.rpm | 1.1 MB 00:00:01
(4/5): php70u-mysqlnd-7.0.8-1.ius.centos7.x86_64.rpm | 239 kB 00:00:01
(5/5): php70u-cli-7.0.8-1.ius.centos7.x86_64.rpm | 4.0 MB 00:00:03
-------------------------------------------------------------------------------------------------------------------------
Total 2.2 MB/s | 8.0 MB 00:00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : php70u-common-7.0.8-1.ius.centos7.x86_64 1/5
Installing : php70u-pdo-7.0.8-1.ius.centos7.x86_64 2/5
Installing : php70u-mysqlnd-7.0.8-1.ius.centos7.x86_64 3/5
Installing : php70u-cli-7.0.8-1.ius.centos7.x86_64 4/5
Installing : mod_php70u-7.0.8-1.ius.centos7.x86_64 5/5
Verifying : php70u-cli-7.0.8-1.ius.centos7.x86_64 1/5
Verifying : php70u-common-7.0.8-1.ius.centos7.x86_64 2/5
Verifying : mod_php70u-7.0.8-1.ius.centos7.x86_64 3/5
Verifying : php70u-pdo-7.0.8-1.ius.centos7.x86_64 4/5
Verifying : php70u-mysqlnd-7.0.8-1.ius.centos7.x86_64 5/5
Installed:
mod_php70u.x86_64 0:7.0.8-1.ius.centos7 php70u-cli.x86_64 0:7.0.8-1.ius.centos7
php70u-mysqlnd.x86_64 0:7.0.8-1.ius.centos7
Dependency Installed:
php70u-common.x86_64 0:7.0.8-1.ius.centos7 php70u-pdo.x86_64 0:7.0.8-1.ius.centos7
Complete!

অবশেষে, আমরা অ্যাপাচি পুনরায় চালু করব এবং অ্যাপাচির স্থিতি পরীক্ষা করব

# systemctl restart httpd

অ্যাপাচি পরিষেবার স্থিতি পরীক্ষা করা হচ্ছে

# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2016-07-21 10:24:44 EDT; 46s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 3636 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─3636 /usr/sbin/httpd -DFOREGROUND
├─3637 /usr/sbin/httpd -DFOREGROUND
├─3638 /usr/sbin/httpd -DFOREGROUND
├─3639 /usr/sbin/httpd -DFOREGROUND
├─3640 /usr/sbin/httpd -DFOREGROUND
└─3641 /usr/sbin/httpd -DFOREGROUND
Jul 21 10:24:43 centos-linux-1.shared systemd[1]: Starting The Apache HTTP Server...
Jul 21 10:24:44 centos-linux-1.shared systemd[1]: Started The Apache HTTP Server.

PHP সংস্করণ পরীক্ষা করা হচ্ছে

আমরা একটি কমান্ড লাইন মোড ব্যবহার করে পিএইচপি সংস্করণ যাচাই করতে পারি এবং আমরা একটি info.php তৈরি করতে পারি এবং PHP-এর সংস্করণ পরীক্ষা করতে পারি

# php -v
PHP 7.0.8 (cli) (built: Jun 23 2016 11:34:57) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

নিচের কোডটি ব্যবহার করে info.php ফাইল তৈরি করুন এবং GUI মোডে তথ্য পরীক্ষা করুন।

# /var/www/html/info.php
<?php
Phpinfo();
?>

আমরা ফাইলটি তৈরি করার পর নিচের url

দিয়ে ওয়েব ব্রাউজারে প্রবেশ করি
https://IP_Address /info.php

CentOS 7-এ PHP 5.x থেকে PHP 7-এ স্থানান্তর করা হচ্ছে

আমরা উপরের ধাপগুলি সেটআপ এবং কনফিগার করার পরে আমরা এখন Centos 7 / RHEL 7-এ PHP 5.x-কে PHP 7-এ আপডেট করতে সক্ষম হব কারণ এখন পর্যন্ত CentOS 7-এর অফিসিয়াল রিপোজিটরি প্রকাশ করা হয়নি। আমরা দেখতে পাচ্ছি যে PHP 7 সার্ভারে আপগ্রেড হয়েছে।


  1. জিরো ত্রুটি দ্বারা পিএইচপি বিভাগ

  2. পিএইচপি টাইপ ত্রুটি

  3. পিএইচপি ট্যাগ

  4. পিএইচপি পাই() ফাংশন