이 기사에서는 PHP 5.x를 2015년에 출시된 PHP 7, PHP 7로 업그레이드하고 업데이트하는 방법에 대해 알아봅니다. PHP 7은 이전 버전의 PHP에 비해 속도가 향상되었습니다.
전제조건
CentOS7에 PHP 5.x가 이미 설치되어 있고 Apache에서 mod_php 모듈을 활성화해야 하며 Sudo 권한 또는 루트 사용자가 필요하다고 가정합니다.
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 모듈 업그레이드
여기에서는 Apache 모듈 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 버전 테스트
명령줄 모드를 사용하여 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의 공식 리포지토리가 릴리스되지 않은 현재 Centos 7 / RHEL 7에서 PHP 5.x를 PHP 7로 업데이트할 수 있습니다. 또한 서버에서 PHP 7이 업그레이드된 것을 볼 수 있습니다.