본문 바로가기

IT, Computer/Linux

CentOS 7 APM 설치 - Apache2.4.38 설치(컴파일설치)

순서는 다음과같습니다.

openssl 업데이트 → mysql설치 → apache설치 → php설치

 

사용버전정리

centOS 7 openssl pcre apache apr apr-util mysql php
1810 1.1.1b 8.43 2.4.38 1.6.5 1.6.1 8.0.15 7.3.3

 


아파치는 최신버전이 rpm으로 거의 배포되고있지 않음으로 주로 컴파일설치(소스설치)를 통해 이루어집니다.

 

필수 설치

# yum install gcc-c++

# yum install expat-devel

 

우선은 아파치설치에 앞서, pcre를 설치합니다.

https://www.pcre.org/

 

PCRE - Perl Compatible Regular Expressions

PCRE - Perl Compatible Regular Expressions The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that corr

www.pcre.org

download 미러에서 가장 최신버전을 받았습니다. (pcre2는 안된다고합니다)

# mkdir -p /usr/local/src/apache

# cd /usr/local/src/apache

# wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

# tar -xvzf pcre-8.43.tar.gz

# cd pcre-8.43

# ./configure

# make

# make install

 

pcre설치가 완료되었습니다.

 

 

아파치설치에 필요한 파일들을 받습니다.

http://apache.mirror.cdnetworks.com/

 

Index of /

Apache Software Foundation Distribution Directory The directories linked below contain current software releases from the Apache Software Foundation projects. Older non-recommended releases can be found on our archive site. To find the right download for a

apache.mirror.cdnetworks.com

아파치 다운로드 미러입니다.

여기서 httpd를 검색해(ctrl+f를 활용합시다~) 들어갑니다.

그 다음 httpd.tar.gz 나 bz2 를 우클릭하여 링크주소 복사를 합니다.

저는 tar.gz를 사용하도록 하겠습니다.

# cd ..

# wget http://apache.mirror.cdnetworks.com/httpd/httpd-2.4.38.tar.gz 

 

다음엔 다운로드 미러에서 apr을 검색합니다

apr-1.6.5.tar.gz, apr-util-1.6.1.tar.gz

요거 두개도 wget을 활용하여 다운로드 받습니다.

# wget http://apache.mirror.cdnetworks.com/apr/apr-1.6.5.tar.gz

# wget http://apache.mirror.cdnetworks.com/apr/apr-util-1.6.1.tar.gz

 

3파일 모두 압축을 풉니다.

# tar -xvzf httpd-2.4.38.tar.gz

# tar -xvzf apr-1.6.5.tar.gz

# tar -xvzf apr-util-1.6.1.tar.gz

 

apr친구들을 httpd srclib폴더에 넣어줍니다.

# mv apr-1.6.5 httpd-2.4.38/srclib/apr

# mv apr-util-1.6.1 httpd-2.4.38/srclib/apr-util

 

apache를 설치합니다.

# cd httpd-2.4.38 

# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl=shared --with-ssl=/usr/local/ssl --enable-rewrite

주의! 앞에서 설치한 openssl 업데이트데로 업데이트했을때는 이것이 확실히 적용되며

다른방법으로 openssl을 업데이트했을경우 다르게 해야할 가능성이 존재함.

제가알기론 centos7순정의 openssl은 공유라이브러리인걸로 알아서 상관없을 겁니다.

# make

# make install

 

 

서비스를 등록합니다.

# vi /usr/lib/systemd/system/httpd.service (새로운파일작성)

 

[Unit]

Description=The Apache HTTP Server

 

[Service]

Type=forking

PIDFile=/usr/local/apache/logs/httpd.pid

ExecStart=/usr/local/apache/bin/apachectl start

ExecReload=/usr/local/apache/bin/apachectl graceful

ExecStop=/usr/local/apache/bin/apachectl stop

KillSignal=SIGCONT

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

서비스파일명이 곧 서비스이름이기때문에 httpd든 apache든 원하는 이름으로 하시길 바랍니다.

apache설치가 완료되었습니다.

 

아파치를 실행합니다.

# systemctl httpd start

 

웹브라우저에 웹서버 ip를 쳐서 접속확인

 

 

 

 

 

 

오류

{

pcre configure과정중

 

configure: error: Invalid C++ compiler or C++ compiler flags

# yum install gcc-c++

}

{

httpd make과정중

 

xml/apr_xml.c:35:19: fatal error: expat.h: 그런 파일이나 디렉터리가 없습니다.

# yum install expat-devel

# make clean

# make

}

{

마지막에 웹으로 접근이 되지않을때

1. 방화벽끄기(초간단방법)

# systemctl stop firewalld

 

2. 방화벽에서 웹포트열기(권장)

# vi /etc/firewalld/zones/public.xml

<?xml version="1.0" encoding="utf-8"?>

<zone>

  <short>Public</short>

  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>

  <service name="ssh"/>

  <service name="dhcpv6-client"/>

  <service name="http"/>

  <service name="https"/>

  <port protocol="tcp" port="8080"/>

</zone>

# firewall-cmd --reload

웹에 쓰이는 80포트 443포트 8080포트를 열어주는 것입니다.

}