코이팅

APM 소스 설치(수동 설치)방법 - PHP 본문

Server

APM 소스 설치(수동 설치)방법 - PHP

코이팅 2023. 1. 30. 08:06
728x90
반응형

1. APM 개념

  • A(Apache) : 웹서버
  • P(PHP) : 웹 프로그래밍 언어
  • M(MYSQL) : 데이터베이스

이 3가지가 연동되어 운영되도록 만든 환경을 APM이라고 합니다.
Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용합니다.

2. PHP란?

PHP는 범용성을 지닌 널리 사용되는 오픈 소스 스크립트 언어입니다. 특히, 웹 개발 및 HTML에 포함하기에 적합한 언어입니다. PHP는 서버(Server) 측의 동작하는 기술 또는 언어입니다. 자바스크립트(JavaScript)와는 다르게 서버에서 실행하여, HTML을 생성하고 전송합니다. 보편적으로 많이 사용하는 웹서버는 아파치(Apache), IIS, Enginex 입니다.

 

즉, PHP 언어는 웹상에서 서버를 연동해 실행하는 대표적인 언어이며, 인터프리터 방식으로 편리하게 사용 가능한 언어입니다.

3. 소스(수동) 설치 이유?

APM을 설치하는 방법에는 패키지 관리자를 사용하여 패키지들을 설치하는 방법과, 직접 웹에서 압축파일을 받고 압축파일을 풀어 소스를 컴파일하여 설치하는 방법이 있습니다.

 

패키지 관리자를 사용하면 쉽게 설치할 수 있습니다. 하지만 우분투(Ubuntu)를 예로 들면 apt라는 리눅스 계열의 패키지 관리 명령어 도구가 있는데, 개인적인 목적이 아닌 회사에서 업무적인 목적이나 공공이 사용하는 경우에는 패키지 설치를 막을 수 있어서 소스설치를 한다고 합니다.

 

📌 소스설치 관례
/usr/local에 설치하는 것이 관례

1. 소스파일 내려받는다.
2. /configure로 설정
3. make로 컴파일
4. make install로 설치

4. PHP 소스(수동) 설치 방법

 ✅ 개발환경

  • macOS Ventura 13.1
  • UTM
  • Ubuntu 20.04.5
  • PHP 8.1.14

1) 우분투에 로그인하고 아래 사진의 빨간 박스 부분을 클릭합니다.

빨간 박스 부분 클릭

2) 검색창에 'terminal' 입력 후 2️⃣을 클릭합니다.

terminal 입력 후 클릭

그럼 아래 사진처럼 터미널 창이 열립니다.

터미널 창이 열린 모습

3) 필수 패키지를 설치합니다.

  • 소스설치 전, 필요한 패키지들을 먼저 설치합니다.
  • Apache, MySQL을 설치하는 과정에서 설치한 필수 패키지들은 제외하고 설치합니다.
$ sudo su
$ apt install libxml2-dev
$ apt install libjpeg-dev
$ apt install libpng-dev

4) 소스설치 파일을 다운로드 및 압축해제 합니다.

$ sudo su
$ cd /usr/local
$ wget https://www.php.net/distributions/php-8.1.14.tar.gz
$ tar xvfz php-8.1.14.tar.gz

💊 최신 버전 확인

아래 링크를 통해 최신 버전을 확인을 하고 wget 다운로드 시 버전을 바꿔서 진행합니다.

https://www.php.net/

 

PHP: Hypertext Preprocessor

PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.

www.php.net

최신 버전

5) PHP를 설치합니다.

$ cd php-8.1.14
$ ./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

🚨 에러 1 : Package requirements (sqlite3 > 3.7.4) were not met: No package 'sqlite3' found

에러 화면

이러한 에러가 뜨면 sqlite3를 설치해주면 됩니다. 설치 방법은 아래 명령어를 입력하세요!

$ apt-get install sqlite3 libsqlite3-dev

다시 설치코드를 입력합니다.

$ cd php-8.1.14
$ ./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

첫 번째 에러 해결!

🚨 에러 2 : make test 과정에서 tests fail 발생

make test 과정에서 Error가 발생했지만 make install 과정에서는 문제 생기지 않아 그대로 진행하였습니다.

5. Apache와 PHP 연동

1) httpd.conf에서 모듈 설치를 확인하고, AddType을 추가합니다.

  • 모듈 설치 확인
/usr/local $ cd apache2.4/conf
/usr/local/apache2.4/conf $ vi httpd.conf

# 165 line 근처에서 확인 가능

  • AddType 추가
AddType application/x-httpd-php .php .html

# 400 line 근처

추가한 화면

2) php.ini 파일을 설정합니다.

  • production 시스템용 설정 파일인 php.ini-production 파일을 /usr/local/lib/php.ini에 복사
  • php configure 시에 옵션으로 php.ini의 위치를 지정하지 않으면 기본으로 /usr/local/lib/php.ini를 사용
  • php.ini은 PHP설정 파일
    • php-8.1.14 디렉토리로 가면 php.ini-development와 php.ini-production 두개의 파일이 있다. development는 개발용, production은 프로덕션 시스템용 버전으로 개발용 같은 경우 더 많은 오류와 경고를 표시해주지만 보안상 문제가 생길 수 있으므로 개발 환경에서만 사용해야한다.
/usr/local $ cd php-8.1.14
/usr/local/php-8.1.14 $ cp php.ini-production /usr/local/lib/php.ini

3) 테스트용 php 파일을 세팅합니다.

  • Apache의 웹 콘텐츠(html, php 파일 등)는 htdocs 디렉토리에 위치합니다.
$ cd /usr/local/apache2.4/htdocs
$ vi phpinfo.php
  • vi 명령어를 통해 열린 phpinfo.php 파일에 아래와 같이 입력합니다.
  • 띄어쓰기를 잘못 입력할 경우 이후 빈 페이지가 나온다고 합니다. ❗️띄어쓰기 주의❗️
<?php
phpinfo();
?>

# 띄어쓰기 주의할 것

4) Apache를 실행하고, php 연동을 확인합니다.

  • Apache 실행
  • ps -ef | grep httpd 명령어로 Apache가 실행중인지 확인 가능합니다.
$ 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.0.1

5) firefox에서 실행을 확인합니다.

클릭
입력
성공 화면~!!

 

728x90
반응형
Comments