📌 APM이란?
- A(Apache) : 웹서버
- P(PHP) : 웹 프로그래밍 언어
- M(MYSQL) : 데이터베이스
APM 소프트웨어가 존재하는 것이 아니라, 이 3가지가 연동되어 운영되도록 만든 환경을 APM이라고 한다. Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용한다.
📌 PHP
php는 1995년 라스무스 러도프가 처음 만들었다. 데이터베이스와 상호 작용을 하면서 데이터를 저장하며 직접 서버를 설치하여 운영 가능하다. 프로그래밍 언어 일종이며 서버 사이드 스크립트 언어라고도 불린다. C언어 기반으로 만들어졌다. HTML 소스 문서에 넣어 php를 처리했지만 지금은 따로 파일을 분리하여 쓰고 있다. 의미를 확대하여 php는 널리 사용되는 범용 스크립트 언어로 웹 개발에 적절한 언어다.
패키지가 아닌 소스설치를 하는 이유
내가 사용하는 우분투(Ubuntu)를 예로 들면 apt라는 리눅스 계열의 패키지 관리 명령어 도구가 있다. 하지만 개인적인 목적이 아닌 회사에서 업무적인 목적이나 공공이 사용하는 경우 필요에 따라 패키지 설치를 막을 수 있다. 따라서 수동 설치를 해주기로 했다. (그리고 패키지 설치면 코드 몇 줄이면 끝나서 매우 간단하기도 하다)
지난번에 Ubuntu 20.04.에 Apache 2.4.46 설치와 MySQL 9.0.19 설치를 완료했다.
PHP 8.0.3 소스(수동) 설치
패키지 설치
$ apt-get install libxml2-dev
$ apt-get install libjpeg-dev
$ apt-get install libpng-dev
php설치
앞서 apache와 mysql과 동일하게 tar.gz를 다운로드하여 압축 해제한다
$ cd /usr/local/
$ wget https://www.php.net/distributions/php-7.4.1.tar.gz
$ tar xvfz php-7.4.1.tar.gz
php confifure & make & make install
./configure 옵션으로 mysql을 지원할 것을 명시할 수 있다.
$ cd php-7.4.1
$ ./configure \
--with-apxs2=/usr/local/apache2.4/bin/apxs \
--enable-mysqlnd \
--with-mysql-sock=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-imap-ssl \
--with-iconv \
--enable-gd \
--with-jpeg \
--with-libxml \
--with-openssl
$ make
$ make test
$ make install
만약 다음과 같은 오류가 뜬다면
$ apt install libsqlite3-dev
를 통해 해결해준다.
make
make 가 완료되면 아래와 같이 Build complete라는 메시지가 출력된다.
make test
make test 중에 warning이 하나 나왔으나 에러가 아니니 그냥 진행하였다.
make install
make install까지 마치면, 다음과 같은 화면이 출력된다.
Apache와 PHP 연동
아파치 설정 파일인 httpd.conf파일을 열어 PHP 모듈이 설치되어 있는지 확인한다.
$ cd /usr/local/apache2.4/conf
$ sudo gedit httpd.conf
모듈이 잘 설치되어 있다면 똑같은 httpd.conf에서 mine_module을 찾아 다음과 같이 작성한다.
PHP.ini 파일 세팅
$ cd /usr/local/php-7.4.1
$ cp php.ini-production /usr/local/lib/php.ini
테스트용 php 파일 작성
$ cd /usr/local/apache2.4/htdocs $ sudo gedit phpinfo.php
<?php phpinfo(); ?>
많은 타 블로그에서는 sudo getit을 쓰지 않고 vi을 이용했는데 나는 그럴 경우 편집이 되지 않고 view 즉 보는 것만 가능하여
gedit을 명령어를 통해 테스트 파일을 만들어 주었다.
연결 확인
httpd -k start 명령어로 아파치를 실행시킨다. ps -ef | grep httpd 명령어로 아파치가 실행 중인지도 확인한다.
$ sudo /usr/local/apache2.4/bin/httpd -k start
$ ps -ef|grep httpd|grep -v grep
$ sudo netstat -anp|grep httpd
$ sudo curl http://127.0.01
브라우저를 통해 http://127.0.1.1/phpinfo.php로 접속한다. (127.0.1.1 은 내가 실행시킨 아파치 서버의 IP)
다음과 같은 창이 뜬다면 성공!
APM설치 완료 후기
서버 개발자로서 필수적인 리눅스 기반 명령어들을 알 수 있게 되는 기회였고 오류를 직접 찾아 해결하는 능력을 기를 수 있었던 것 같다.
그래도 많은 블로그에 친절하게 설명이 되어 있었고 본인들이 겪었던 오류를 잘 정리해 놓아 주셔서 큰 어려움 없이 설치를 완료한 것 같다.
정말 감사합니다! :)
Reference :
https://minhyeok-rithm.tistory.com/entry/Install-PHP?category=854409
https://salix97.tistory.com/142?category=837576
'CS' 카테고리의 다른 글
API란? (SOAP API, REST API) (0) | 2021.10.11 |
---|---|
HTTP와 SSL 그리고 HTTPS (0) | 2021.10.06 |
[서버/Server] APM 소스 설치(수동 설치)하기 - MySQL (0) | 2021.09.12 |
[서버/Server] APM 소스 설치(수동 설치)하기 - Apache(아파치) (0) | 2021.09.12 |
리눅스(Linux)와 우분투(Ubuntu)의 정의 그리고 차이 (0) | 2021.09.07 |