CentOS 7에 Apache2.4 설치 및 컴파일 그리고 httpd Service 등록하는 방법에 대한 정리 글입니다.
1. 필수 툴 설치
# yum install gcc gcc-c++ expat-devel.x86_64 pcre-devel
2. pcre 다운로드 및 컴파일
# mkdir /usr/local/download
# cd /usr/local/download
# wget https://sourceforge.net/projects/pcre/files/pcre/8.44/pcre-8.44.tar.gz
# tar zxvf pcre-8.44.tar.gz
# cd pcre-8.44
# ./configure --prefix=/usr/local
# make
# make install
3. apr-util, apr, httpd 다운로드 및 컴파일
# cd /usr/local/download
# wget http://mirror.apache-kr.org/httpd/httpd-2.4.46.tar.gz
# wget http://mirror.apache-kr.org/apr/apr-1.7.0.tar.gz
# wget http://mirror.apache-kr.org/apr/apr-util-1.6.1.tar.gz
# tar zxvf apr-1.7.0.tar.gz
# tar zxvf apr-util-1.6.1.tar.gz
# tar zxvf httpd-2.4.46.tar.gz
# mv apr-1.7.0 ./httpd-2.4.46/srclib/apr
# mv apr-util-1.6.1 ./httpd-2.4.46/srclib/apr-util
# cd /usr/local/download/httpd-2.4.46
# ./configure
# make
# make install
4. httpd.conf의 ServerName 수정
# vi /usr/local/apache2/conf/httpd.conf
파일의 193번째 라인
ServerName localhost:80
5. apache 실행 및 확인
# cd /usr/local/apache2/bin
# ./apachectl start
#ps -ef|grep httpd
6. apache 테스트
1) 내부 작동 테스트
# wget http://127.0.0.1
/usr/local/apache2/htdocs 경로에 위치한 index.html이 다운로드 된다.
2) 외부 접근 테스트
방화벽이 실행되고 있고, 80포트에 대한 허가가 없다면 외부에서 접근할 수 없다.
2-1) 방화벽 80포트 허용하기
# 방화벽 실행 확인
# firewall-cmd --state
running
# 현재 사용중인 Zone 확인
# firewall-cmd --get-default-zone
public
# 80포트 허용
# firewall-cmd --permanent --zone=public --add-port=80/tcp
success
# 방화벽 재시작
# firewall-cmd --reload
success
# 방화벽 적용 확인
# firewall-cmd --zone=public --list-all
외부에서 접근이 되는지 테스트해보려면 브라우저에 IP 또는 도메인을 입력하면 된다.
7. httpd service 등록 ( init.d, systemctl )
둘 중 한가지 선택해주시면 됩니다.
1) /etc/init.d (CentOS 6에서 주로 쓰임)
# cd /etc/init.d
# cp /usr/local/apache2/bin/apachectl ./httpd
# vi httpd
맨 위에 다음과 같이 입력한다.
#!/bin/sh
# httpd Startup script for the Apache HTTP Server
# chkconfig: 345 85 15
# description: Apache is a World Wide Web server. It is used to serve
# processname: httpd
# pidfile: /usr/local/apache2/logs/httpd.pid
...
저장 후에 서비스에 등록한다.
# chkconfig --add httpd
# chkconfig --level 345 httpd on
# chkconfig --list
# service 명령어 테스트
# service httpd stop
# service httpd start
2) systemctl (CentOS 7에서 주로 쓰임)
# cd /usr/lib/systemd/system
# vi apache.service
[Unit] Description=apache2 Service
After=syslog.target
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecStop=/usr/local/apache2/bin/apachectl graceful-stop
ExecReload=/usr/local/apache2/bin/apachectl graceful
User=root
Group=root
[Install]
WantedBy=multi-user.target
//데몬 재시작
# systemctl daemon-reload
//linux 재시작 시 apache 자동 실행 등록
# systemctl enable apache
'IT > Linux' 카테고리의 다른 글
[Linux] 리눅스 timezone KST로 변경하기 (0) | 2020.10.29 |
---|---|
[Linux] CentOS 7 apache와 tomcat 연동 방법 (6) | 2020.08.26 |
[Linux] MariaDB 로그 남기기 (2) | 2020.03.06 |
[Linux] CentOS 7 Galera Cluster 사용하기 (10) | 2020.03.03 |
[Linux] firewalld 방화벽 설정하기 (1) | 2020.03.02 |