본문 바로가기

IoT Server 설계/Web Programming

(APM) Apache, PHP, MySQL 이론 및 설치 (2)

본 포스팅에서는 지난시간 APM (Apaceh, PHP, MySQL)의 이론 및 구동환경에 대해서 설명했던 포스팅에 이어 APM의 설치 및 설치관련 이슈사항에 대하여 포스팅 한다. 본 포스팅을 하며 설치했던 시스템의 환경은 아래와 같다


설치 환경 및 APM 설치 버전

CentOS Linux

 7.5.1804

Kernal version

 3.10.0-862

Apaceh version

 2.4.6

PHP version

 5.4.16 (본 포스팅에서 설치 후 PHP 7 버전 업데이트 기술)

MySQL version

 5.6.42


1. 아파치 설치


// 설치 전 아파치, PHP, MySQL이 설치 되어 있는지 확인 및 업데이트

# find / -name

# http -v

# php -v

# mysql --version

# yum -y update


// 아파치 설치 (명령어 한줄로 설치가 가능하다.)

# yum -y install httpd


// 설치된 아파치 버전 확인 및 아파치 실행

# httpd -v

# service httpd start


// 부팅시 마다 httpd 서비스가 자동으로 실행되게 설정

# systemctl enable httpd.service


//아파치 실행 여부 확인

# ps -ef | grep httpd



//아파치 포트 80번이 열려있는지 확인

# netstat -tnlp



(httpd 80번 포트가 Listen 상태로 떠야 하며 만약 위의 그림과 다르다면 아래의 80포트를 열어주는 작업을 진행하야함)

// 80번 포트 열어주기

# firewall-cmd --zone=public --add-port=80/tcp --permanent

# firewall-cmd --reload


//여기까지 진행이 완료되었다면 URL에 자신의 IP:80 입력을 통해서 아래와 같은 페이지 확인이 가능함




2. PHP 설치


// PHP 설치 및 설치된 PHP 버전 확인 (최초 설치시 PHP 5버전으로 설치됨.)

# yum install -y php

# php -v


* 트러블 슈팅

// PHP 설치 후 자주 발생되는 상황은 아니지만 초기 PHP 세팅의 경우 PHP 실행시 문법상 오류가 없어도 화면에 내용이 출력되지 않고 PHP 소스가 그대로 출력이 되는 경우가 발생함. 이런 경우는 PHP 설정을 확인해줘야함. 설정의 경우 php.ini 파일 혹은 phpinfo();를 통해 php의 설정값 중 short_open_tag 옵션을 off에서 on으로 바꿔줘야함.


short_open_tag란?

: PHP 코드의 시작과 끝을 <? ~~~~ ?>로 사용할 수 있게 해주는 옵션으로 만약 short_open_tag가 off로 설정이 되어 있다면 <? 로 시작되는 문법을 php가 해석하지 못함.


// PHP 옵션 설정 및 재시작

# cd /etc/php.ini 

# vim php.ini (short_open_tag = on 으로 설정)

# service httpd restart


// PHP 테스트

# cd /var/www/html

# vim phpinfo.php (테스트를 위한 php 파일 만들기)


<?php

phpinfo();

?>


위의 코드를 작성 후 URL에 IP:80/phpinfo 접속을 하면 info 화면이 출력


2. PHP 7 버전 설치


상기의 PHP의 경우 리스 디폴트로 설치되는 PHP 5버전으로 PHP 7 버전을 원한다면 기존의 PHP 5버전을 삭제 후 새롭게 PHP 7 버전의 설치 과정이 필요하다. 현재 PHP 5버전과 PHP 7 버전의 문법이 많이 바뀌었으며 이로 인해 버전 확인을 하지 않고 서로 다른 문법을 사용하게 되면 작동을 하지 않는 경우가 발생한다. 본 포스팅에서는 앞으로 PHP 7 버전의 문법을 사용하기 때문에 PHP 5버전의 삭제와 PHP 7으로의 업데이트에 대해서 포스팅한다.


// 기존 PHP 삭제

# yum remove php-*

# yum remove php-common mod_php php-cli


// PHP 7 버전의 설치를 위해서 EPEL (Extra Packages for Enterprise Linux) 와 WebTatic 저장소를 설치해줘야한다. 대표적인 써드파티 저장소로 페도라 리눅스의 저장소인 ELEL 저장소와 PHP와 다른 패키지의 최신 버전을 제공하는 REMI 저장소, 웹 개발 패키지의 최신 안정 버전을 제공하기 위한 WebTatic 저장소가 존재한다.


// EPEL / WebTatic 설치

# yum install epel-release

# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm


// PHP 7 버전 설치

# yum install php70w



// 필요한 추가 모듈 설치 및 서비스 재시작

# yum install php70w-xml php70w-xmlrpc php70w-soap php70w-mbstring php70w-json php70w-gd php70w-mcrypt php70w-mysql

systemctl restart httpd


3. MySQL 설치

MySQL의 경우 아파치와 마찬가지로 간단한 명령어 몇줄이면 설치가 가능하다. wget으로 외부에서 필요한 레퍼지토리를 설치 후 설치해주면 된다.


# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

# yum update

// MySQL 설치

# yum install mysql-server

# service mysqld start


본 포스팅에서는 APM의 설치 및 PHP 이슈에 대해서 포스팅 하였다. 다음 시간에는 설치된 APM의 외부 활용을 위해 MySQL을 활용하여 사용자 추가, 권한 설정, 외부접속허용, HeidiSQL을 활용한 외부접속 방법에 대해서 포스팅 하도록 하겠다.!