반응형

[ 설치 환경 ]

OS Centos 7.6
Apache 2.4
PHP 7.3
MariaDB 10.3

PHP 컴파일 바로 진행하면 아래의 오류가 발생됩니다.
PHP 7.3.4 는 libzip 0.11 이상부터 지원합니다. CentOS 7 기준으로 yum 설치 시 0.10이 설치됩니다.
PHP 컴파일 진행하기 전 libzip 패키지는 소스설치로 진행하겠습니다.

configure: error: Please reinstall the libzip distribution

 4-1. libzip 패키지 소스 설치 진행

cd /root/src
wget https://libzip.org/download/libzip-1.2.0.tar.gz
tar xvfz libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install
ldconfig / 라이브러리 적용

 4-2. PHP 설치

 설치링크 : https://www.php.net/releases/

 

PHP: Releases

The most recent branches to reach end of life status are: 7.2: 1 Oct 20207.1: 24 Oct 2019

www.php.net


 4-3. PHP 다운로드


wget 뒤에 링크 주소 복사를 붙여 넣으시면 됩니다.
해당 링크 주소 시간이 지나면 변하기 때문에 직접 들어가서 다운로드하시는 걸 추천드립니다.

mkdir /root/src/
cd /root/src
wget https://www.php.net/distributions/php-7.3.5.tar.gz
tar xvfz php-7.3.5.tar.gz
cd /root/src/php-7.3.5

 4-4. PHP 컴파일

./configure --prefix=/opt/php --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/opt/apache/bin/apxs --with-curl --with-gd --with-jpeg-dir=/usr --with-freetype-dir=/usr --with-png-dir=/usr --with-xpm-dir=/usr --with-zlib --with-zlib-dir=/usr --with-gdbm --with-gettext --with-iconv --with-openssl --with-libxml-dir=/usr/lib --with-bz2 --enable-exif --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-soap --enable-mbstring=all --enable-bcmath --enable-zip

위에 컴파일 내용은 아래의 내용 참고 부탁드립니다.
--with-mysql     - mysql 데이터베이스 지원.
--with-pdo-mysql  - pdo mysql 지원.
--with-mysqli         - mysqli 지원.
--with-apxs2    - apache2 와 연동 지원.
--with-freetype-dir - FreeType 폰트 라이브러리 디렉토리 지정.
--with-pear     - php 라이브러리인 pear 를 지원.
--with-gettext  - php내에 국제화를 위한 프로그램을 지원하기 위해서 필요한 기능을 지원.
--with-iconv     - 문자셋 변환을 위한 기능을 지원.
--with-bz2      - 압축프로그램인 BZip2 기능을 지원.
--with-gmp      - GNU MP 지원. GNU MP는 멀티 프로세싱을 위한 것입니다. 쓰레드, Fork 와는 또 다른 병렬 프로그래밍 기법입니다.
--with-apxs2    - apache2 와 연동 지원.
--with-zlib      - ZLIB 지원.
--with-mcrypt   - mcrypt 로 암호화 과련 기능을 지원.
--with-mhash    - mhash 지원.
--with-mysql     - mysql 데이터베이스 지원.
--with-pdo-mysql  - pdo mysql 지원.
--with-mysqli         - mysqli 지원.
--with-pgsql      - pgsql 데이터베이스 지원.
--with-pdo-pgsql  - pdo pgsql 지원.
--with-xmlrpc      - xmlrpc 지원.
--with-libxml-dir    - XML2 지원을 위한 libxml2 라이브러리 디렉토리 지정.
--with-pcre-dir    - Perl Compatible Regular Expression 지원을 위한 라이브러리 디렉토리 지정.
--with-gd          - GD 그래픽 지원.
--with-native-ttf     - TrueType 문자열 지원.
--with-jpeg-dir    - JPEG 그래픽 지원을 위한 라이브러리 디렉토리 지정.
--with-png-dir     - PNG 그래픽 지원을 위한 라이브러리 디렉토리 지정.
--with-xpm-dir     - XPM 그래픽 지원을 위한 라이브러리 디렉토리 지정.
--with-ttf          - FreeType 폰트 지원.
--with-freetype-dir - FreeType 폰트 라이브러리 디렉토리 지정.
--enable-safe-mode      - safe mode 지원.
--enable-zend-multibyte  - Zend 의 multibyte 지원.
--enable-soap   - SOAP 웹 서비스 지원.
--enable-curl     - cURL 지원.
--enable-sockets  - fsockopen 과 같은 소켓 함수를 쓰기 위해서는 필요합니다.
--enable-zip        - Zip 파일을 읽고 쓸수 있는 기능 지원.
--enable-magic-quotes  - '," 와 같은 것을 자동으로 처리해주는 기능을 제공합니다.
--enable-mbstring   - multibyte 문자열 처리를 위한 지원.
--enable-shmop      - Shared Memory Operations 으로서 공유 메모리 접근 기능을 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 
--enable-pcntl(CLI/CGI only)  - Process Control 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다.
--enable-sysvmsg    - System V message 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다.
--enable-soap   - SOAP 웹 서비스 지원.
--enable-mbstring   - multibyte 문자열 처리를 위한 지원.
--enable-bcmath     - bc 스타일의 수학함수를 지원합니다.
--enable-zip        - Zip 파일을 읽고 쓸수 있는 기능 지원.


 4-5. PHP 설치

make -j `grep processor /proc/cpuinfo | wc -l`; make install

 4-6. fatal error: zipconf.h 에러 발생

이렇게 하면 PHP 설치가 될줄 알았는데, 아래의 에러가 발생하게 됩니다.
해당 에러는 /usr/local/include 해당 경로의 zipconf.h 디렉터리가 없어서 생긴 이유입니다.
실제로 include에서 c프로그램을 실질적으로 관리하기 때문에 해당 경로로 넣어준 거라고 생각하시면 됩니다.
/usr/include : C 프로그램에 필요한 헤드파일(*.h) 디렉토리. 

/usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory
 #include <zipconf.h>
                     ^
# zipconf.h를 /usr/local/include에 복사해주자
cp -arp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/
cp -arp /root/src/php-7.3.5/ext/zip/lib/zipconf.h /usr/local/include/

 4-7. PHP 설치

다시 make 및 make install 해주면 정상적으로 설치가 완료됩니다.

make -j `grep processor /proc/cpuinfo | wc -l`; make install

 4-8. Apache PHP 연동을 위해 httpd.conf 내용 추가

vi /opt/apache/conf/httpd.conf
AddType application/x-gzip .gz .tgz // 이 부분 찾아서 아래 2줄 추가 후 저장
AddType application/x-httpd-php .php .html .htm .inc
AddType application/x-httpd-php-source .phps

<IfModule dir_module>
    DirectoryIndex index.html.index.php // index.php 추가
</IfModule>

위에 내용은 아래의 내용 참고 부탁드립니다.

AddType application/x-tar .tgz : AddType은 MIME 설정 파일인 mime.types에 정의되어 있지 않은 타입을 추가로 설정하고자 할 때에 사용됩니다.

그럼 MIME type 무엇일까??
MIME type이란 Multipurpose Internet Mail Extensions의 약어로 메시지 컨텐트 형식을 정의하기 위한 인터넷 표준을 말합니다. MIME 메시지는 텍스트, 이미지, 오디오, 비디오, 및 기타 애플리케이션의 특정 데이터를 포함할 수 있으며 일반적으로 홈페이지 상에 표현되는 멀티미디어 데이터에 대한 형식을 말합니다. 클라이언트의 웹브라우저나 웹사이트를 제공하는 웹서버에서 MIME Type이 등록되지 않는다면 사용자들은 해당하는 컨텐트를 웹브라우저에서 볼 수 없게 됩니다. 공식 MIME 정보는 IETF(Internet Engineering Task Force)에서 RFC 기준으로 정의하고 있습니다.

DirectoryIndex : 웹사이트의 초기페이지 문서로 어떤 파일을 사용할 것인가를 결정하는 지시자입니다.
적힌 순서에 따라 읽어 들이며 위에 지정한 목록들이 디렉터리에 없다면 Options 지시자에 Indexes 또는 All이 지정되어 있을 경우 디렉토리내의 파일리스트를 보여줍니다.


 4-9. Apache PHP 연동을 위해 php.ini 수정

cp -f /root/src/php-7.3.5/php.ini-production /opt/php/lib/php.ini
vi /opt/php/lib/php.ini
↓ 내용 수정 ↓
short_open_tag = On
# 수정 완료 후 재시작
/opt/apache/bin/apachectl restart

PHP를 설치하셨다면 php.ini 파일이 존재할 것입니다.

이 파일을 열면 short_open_tag라는 부분이 있는데

short_open_tag=Off로 되어있으면

short_open_tag=On으로 바꿔줍시다.

PHP를 여는 태그의 짧은 형식을 허용해주는 것입니다.


 4-10. 연동 확인

DocumentRoot 웹 경로의 PHP 연동이 되었는지 확인해보자
웹 서버 DocumentRoot는 모든 웹 컨텐트가 저장될 디렉토리 구조이며 이 디렉토리에 위치된 컨텐츠는 웹을 통하여 공개됩니다.

# 웹경로 확인
cat /opt/apache/conf/httpd.conf | grep DocumentRoot | grep -v "#"
DocumentRoot "/opt/apache/htdocs"

# 웹경로 이동
cd /opt/apache/htdocs

# 추가
vi index.php
<? phpinfo(); ?> // 저장 나가기

4-11. PHP 버전 확인

/opt/php/bin/php -v 
PHP 7.3.5 (cli) (built: Jan 22 2021 07:33:54) ( NTS ) 
Copyright (c) 1997-2018 The PHP Group 
Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies

이제 브라우저를 실행해 주소창에 IP/index.php를 입력하시면 아래의 캡처처럼 연동되는 게 확인되실 겁니다.

이로서, 여기까지 진행하셨다면 APM 설치가 완료되었습니다. 모두 고생하셨습니다.

도움이 되셨다면 구독좋아요

궁금한 내용이 있으시면 댓글 부탁드리겠습니다!!

정리.txt
0.00MB

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
});