http, php 소스를 사용하여 설치 실습

sso·2025년 4월 30일
0

리눅스 서버

목록 보기
35/40

Server A

소스 설치 순서
configure - make - make install

dnf -y install gcc gcc-c++

XML형식의 문서를 파싱(해석)할 수 있는 패키지 설치

dnf -y install expat expat-devel

XML, YAML 처럼 L로 끝나는 언어를 Markup Language로 즉 특정 양식에 따라 데이터를 기입하는언어를 뜻함

윈도우 PowerShell

cd .\download\
scp .\httpd=2.4.63.tar.bz2 root@192.168.111.100:/root

php, http-apache, arp, arp-utils 다운로드

wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
curl -O https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz

다운받은 파일 위치 이동

mv .gz /usr/local/src
mv
.bz2 /usr/local/src
cd /usr/local/src

다운받은 파일 압축 해제

tar xzf apr-1.7.5.tar.gz
tar xzf apr-util-1.6.3.tar.gz
tar xzf php-8.4.6.tar.gz
tar xfj httpd-2.4.63.tar.bz2

apr, apr-utils 디렉터리를 httpd 디렉터리 내부에 srclib 디렉터리에 복사

cp -a apr-1.7.5 ./httpd-2.4.63/srclib/apr
cp -a apr-util-1.6.3 httpd-2.4.63/srclib/apr-util

pcre 다운로드 - 아파치 설정에서 정규 표현식을 사용 가능하게 만들어줌

  • 정규 표현식 : 문자열의 지정이나 패턴 등을 기호로서 나타낸 것

https://www.pcre.org/

curl -L -O https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.tar.gz
tar xzf pcre2-10.45.tar.gz

configure 시스템에 설치하기 위한 준비 단계
컴파일러 유무, 경로 등을 확인하거나 지정 완료 후 Makefile 이라는 파일 생성

cd ./pcre2-10.45
dnf -y install make
./configure --prefix=/usr/local/pcre

명령어 입력 후 summary가 확인된다면 성공

makefile 확인 후 make

make
make install

make install 설치 전 웹데몬이 실행중이라면 종료

killall httpd

kill - PID를 kill 할 때 사용
killall - 데몬 이름으로 kill 할 때 사용

make install 설치

  • --prefix 설치 경로 지정
  • --enable-so 동적 모듈 로딩 활성화
    PHP 등의 추가 모듈 불러오기 시 필요함
  • --enable-mods-shared=all
    기본 보유 및 추가 모듈을 모두 공유 라이브러리 형태로 빌드 - 필요한 모듈만 골라서 불러오기 가능
  • --with-included-apr 배치한 apr 라이브러리 불러오기
  • --with-pcre=/usr/local/pcre2/bin/pcre2-config
    외부의 pcre 모듈 위치 지정해서 불러오기

    cd /usr/local/httpd-2.4.63

    ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all --with-included-apr --with-pcre=/usr/local/pcre/bin/pcre2-config

makefile 유무 확인 후 컴파일(make)

make
make install

완료 되었다면 ll /usr/local/apache/ 내에 파일이 아래와 같으면 성공

php 모듈 파일 생성 확인을 위한 기본 패키지 설치

dnf -y install libxml2 libxml2-devel sqlite-devel

php 파일로 위치 이동

cd /usr/local/src/php-8.4.6

php 파일 configure-make-make install 작업

  • --with-apxs2 아파치용 php 모듈 빌드 도구
    apxs 아파치에 내장되어 있음
  • --with0config-file-path php의 설정 파일인 php.ini 파일의 위치 지정

    ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf

    configure 완료 되었으면 license thank you가 뜨면 정상적으로 완료된 것

    make

    make install

php.ini-production을 복사하여 아파치 내부의 conf 내 php.ini에 복사

cp php.ini-production /usr/local/apache/conf/php.ini

아파치 설정 파일 내 403번째 줄에 명령어 추가

vi /usr/local/apache/conf/httpd.conf
AddType application/x-httpd-php .php .htm .html .inc .php8
AddType application/x-httpd-php-source .phps

아파치 시작

/usr/local/apache/bin/apachectl start

에러 발생 시 도메인 이름 입력
vi /usr/local/apache/conf/httpd.conf
207행 주석 제거

/usr/local/apache/htdocs/ = /var/www/html 동일한 경로라고 할 수 있음

방화벽 오픈

firewall-cmd --add-service=http

php 테스트

vi test.php


실습

Server B를 초기화 한 후, Apache 및 PHP를 /usr/local 디렉터리에 소스 설치하시오.
각 프로그램의 의존성을 해결하여 설치하고, 설치 완료 후 작동을 확인하시오.(index.html / test.php 확인)

dnf -y install gcc gcc-c++
dnf -y install expat expat-devel
dnf install -y bzip2

cd /usr/local/src

curl -O -L https://dlcdn.apache.org/httpd/httpd-2.4.63.tar.bz2
curl -O -L https://www.php.net/distributions/php-8.4.6.tar.gz
curl -O -L https://dlcdn.apache.org//apr/apr-1.7.5.tar.gz
curl -O -L https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
curl -L -O https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.tar.gz

tar xfj httpd-2.4.63.tar.bz2
tar xzf php-8.4.6.tar.gz
tar xzf apr-1.7.5.tar.gz
tar xzf apr-util-1.6.3.tar.gz
tar xzf pcre2-10.45.tar.gz

cp -a apr-1.7.5 ./httpd-2.4.63/srclib/apr
cp -a apr-util-1.6.3 httpd-2.4.63/srclib/apr-util

cd ./pcre2-10.45

dnf -y install make
./configure --prefix=/usr/local/pcre
make
make install

cd /usr/local/src/httpd-2.4.63

./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all --with-included-apr --with-pcre=/usr/local/pcre/bin/pcre2-config
make
make install

dnf -y install libxml2 libxml2-devel sqlite-devel
dnf install -y perl

cd /usr/local/src/php-8.4.6

vi /usr/local/apache/bin/apxs
#!/replace/with/path/to/perl/interpreter ➡ #!/usr/bin/perl 변경

./configure --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf
make
make install

cp php.ini-production /usr/local/apache/conf/php.ini
vi /usr/local/apache/conf/httpd.conf

  • 403행에 아래 명령어 두 줄 추가
    AddType application/x-httpd-php .php .htm .html .inc .php8
    AddType application/x-httpd-php-source .phps

vi /usr/local/apache/conf/httpd.conf

  • 207행 주석 제거 혹은 아래 명령어 추가
    ServerName www.example.com:80

/usr/local/apache/bin/apachectl start

firewall-cmd --add-service=http

cd /usr/local/apache/htdocs/
vi test.php

웹에서 192.168.111.200, 192.168.111.200/test.php 접속 확인

profile
오늘도 하나씩 해결해 나가자!

0개의 댓글