Fedora 40 또는 39에 Apache HTTPD를 설치하는 방법

Apache HTTP 서버(HTTPD)는 유연성, 강력한 성능 및 광범위한 구성 옵션으로 잘 알려진 세계에서 가장 널리 사용되는 웹 서버 중 하나입니다. 정적 및 동적 콘텐츠를 모두 제공할 수 있으며 모듈식 설계를 통해 SSL/TLS 암호화, URL 리디렉션, 인증 등과 같은 광범위한 기능을 사용할 수 있습니다. Apache HTTPD는 안정성, 보안 및 확장성이 중요한 환경에서 특히 선호됩니다. 소규모 개인 프로젝트부터 대규모 기업 솔루션에 이르기까지 웹사이트와 애플리케이션을 호스팅하는 데 탁월한 선택입니다.

Fedora 40 또는 39에서는 dnf 패키지 관리자를 통해 Fedora의 AppStream을 사용하여 Apache HTTPD를 쉽게 설치할 수 있습니다. 이 방법을 사용하면 Fedora의 공식 리포지토리에 유지되는 최신 버전에 액세스할 수 있는 간단한 설치 프로세스를 제공하여 안전하고 최신 웹 서버를 확보할 수 있습니다. 이 가이드는 Fedora에서 웹 서버를 설정하고 구성할 수 있도록 명령줄 터미널을 사용하여 Apache HTTPD를 설치하는 과정을 안내합니다.

Apache 설치 전 Fedora 패키지 업데이트

시작하려면 Fedora 시스템을 업데이트하면 호환성과 보안에 필수적인 최신 소프트웨어가 실행됩니다.

터미널을 열고 다음 명령을 실행하십시오.

sudo dnf upgrade --refresh

이 명령은 관리 권한을 위한 sudo 사용과 dnf 업그레이드를 결합하여 모든 패키지를 업데이트합니다. –refresh 옵션을 사용하면 리포지토리에서 최신 정보를 얻을 수 있습니다. 시스템 무결성과 원활한 작동을 유지하려면 다음 단계로 이동하기 전에 이 프로세스를 완료하는 것이 중요합니다.

DNF 명령을 통해 Apache(HTTPD) 설치

시스템을 최신 상태로 유지하면 HTTPD라고도 알려진 Apache를 설치하는 것은 간단합니다. Fedora는 이러한 작업을 위해 DNF 패키지 관리자를 활용합니다.

터미널에서 다음을 실행하세요.

sudo dnf install httpd

이 명령은 Fedora 시스템에 Apache를 가져와 설치합니다. DNF는 종속성과 구성을 처리하여 설치를 단순화합니다. 프로세스는 일반적으로 빠르며 완료되면 Apache를 사용할 준비가 됩니다.

Apache(HTTPD) 서비스 활성화

Apache가 설치되면 다음 단계는 서비스를 시작하고 활성화하여 부팅 시 실행되도록 하는 것입니다. 자동으로 활성화되지 않으면 다음 명령을 사용하십시오.

sudo systemctl start httpd
sudo systemctl enable httpd

"sudo systemctl start httpd"는 Apache 서비스를 시작하고 "sudo systemctl 활성화 httpd"는 부팅 시 실행되도록 설정합니다. 이 2단계 접근 방식은 Apache가 활성화되고 지속적으로 사용 가능하도록 보장합니다.

또는 다음 단계를 결합할 수 있습니다.

sudo systemctl enable httpd --now

sudo systemctl 활성화 httpd의 –now 플래그는 Apache를 즉시 시작하고 부팅 시 실행되도록 구성하여 프로세스를 간소화합니다.

Apache(HTTPD) 서비스 상태 확인

마지막으로 Apache의 상태를 확인합니다.

systemctl status httpd

이 명령은 Apache의 작동 상태를 제공합니다. 출력에는 문제 해결에 필수적인 서비스의 현재 상태와 오류 메시지가 포함됩니다. 이를 정기적으로 확인하면 Fedora 시스템에서 안정적이고 기능적인 Apache 설정을 유지하는 데 도움이 될 수 있습니다.

Apache에 대한 방화벽 규칙 구성

HTTP 및 HTTPS용 포트 열기

Fedora에 Apache(HTTPD)를 설치한 후에는 포트 80(HTTP) 및 443(HTTPS)에서 트래픽을 허용하도록 Firewalld를 구성하는 것이 중요합니다. 이러한 단계는 웹 애플리케이션의 보안과 접근성을 위해 필수적입니다.

포트 80(HTTP) 열기:

다음 명령을 실행하여 HTTP 트래픽에 사용되는 포트 80을 엽니다.

sudo firewall-cmd --permanent --add-port=80/tcp

이 명령은 일반적으로 암호화되지 않은 웹 트래픽에 사용되는 포트 80에서 들어오는 TCP 트래픽을 허용하도록 Firewalld를 구성합니다.

포트 443(HTTPS) 열기:

안전하고 암호화된 트래픽을 허용하려면 다음 명령을 사용하여 포트 443을 엽니다.

sudo firewall-cmd --permanent --add-port=443/tcp

포트 443은 HTTPS 트래픽에 사용되어 클라이언트와 서버 간의 암호화된 통신을 제공합니다.

방화벽 변경 사항 적용:

규칙을 설정한 후 Firewalld를 다시 로드하여 적용합니다.

sudo firewall-cmd --reload

방화벽을 다시 로드하면 모든 변경 사항이 즉시 활성화되고 적용됩니다.

보안 고려 사항

이러한 변경 사항이 보안에 미치는 영향을 이해하는 것이 중요합니다. 필요한 포트만 열어 잠재적인 취약점을 최소화하고 무단 액세스 및 위협으로부터 애플리케이션을 보호합니다.

Apache 접근성 확인

성공적인 구성을 확인하려면 Apache(HTTPD) 랜딩 페이지에 액세스하십시오.

  1. 웹 브라우저를 엽니다.
  2. http://localhost 또는 http://로 이동하세요 .

올바르게 구성되면 Apache 기본 페이지가 나타나 서버의 작동 상태를 확인해야 합니다.

액세스 문제 해결

랜딩 페이지에 액세스할 수 없는 경우 다음 단계를 고려하세요.

  • 정확성을 위해 방화벽 규칙을 검토하세요.
  • Apache 서비스 상태를 확인하세요.
  • 서버 구성에 오류가 있는지 검사하십시오.

이러한 측면을 해결하면 Fedora에서 Apache에 대한 액세스를 방해하는 문제를 식별하고 해결하는 데 도움이 됩니다.

Apache에서 가상 호스트 생성

가상 호스트용 디렉터리 생성 및 구성

Fedora Linux에서 가상 호스트용 디렉터리를 생성하는 것부터 시작하세요. 이 디렉토리는 웹사이트 파일의 루트 역할을 합니다. "example.com"과 같은 도메인의 경우 다음 명령을 사용합니다.

sudo mkdir /var/www/example.com

“example.com”을 실제 도메인 이름으로 바꾸세요. 이 디렉토리에는 HTML, 이미지, 스크립트를 포함한 모든 웹사이트 파일이 보관됩니다. 조직 및 보안 목적을 위해 서로 다른 가상 호스트에 대해 별도의 디렉터리를 만드는 것이 좋습니다.

Apache가 액세스할 수 있도록 디렉터리의 소유권과 권한을 설정합니다.

sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com

첫 번째 명령은 디렉터리 소유권을 Apache 사용자 및 그룹으로 변경하고 두 번째 명령은 필요한 권한을 설정합니다.

이 디렉터리에 index.html 파일을 만듭니다. 이 파일은 방문자가 보게 되는 첫 번째 페이지입니다. Nano와 같은 텍스트 편집기를 사용하여 이 파일을 만듭니다.

sudo nano /var/www/example.com/index.html

편집기 내에서 다음 HTML 구조를 추가할 수 있습니다.

<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Welcome to Example Domain</h1>
    <p>This is a sample page for the domain example.com.</p>
  </body>
</html>

사이트의 요구 사항에 맞게 이 HTML을 사용자 정의하세요. Ctrl + X를 누른 다음 Y와 Enter를 눌러 편집기를 저장하고 종료하세요.

가상 호스트 생성

Apache용 디렉터리 설정

먼저 사이트 사용 가능 및 사이트 활성화 디렉터리를 만듭니다.

sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

이러한 디렉토리는 가상 호스트 구성을 구성하는 데 도움이 됩니다. 이제 Apache 구성 파일을 편집합니다.

sudo nano /etc/httpd/conf/httpd.conf

파일 끝에 다음을 추가합니다.

#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

Ctrl + O 및 Ctrl + X를 사용하여 저장하고 종료합니다.

가상 호스트 구성

도메인에 대한 구성 파일을 만듭니다.

sudo nano /etc/httpd/sites-available/example.com.conf

파일에 다음 구성을 추가하고 필요에 따라 ServerName, ServerAlias ​​및 DocumentRoot를 조정합니다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example.com/
</VirtualHost>

액세스 권한 수정

공개 액세스를 허용하도록 Apache의 액세스 권한을 수정합니다. 기본 구성 파일을 편집합니다.

sudo nano /etc/httpd/conf/httpd.conf

끝에 다음 줄을 추가하세요.

<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Ctrl + O 및 Ctrl + X를 사용하여 저장하고 종료합니다.

가상 호스트 활성화

가상 호스트를 활성화하기 위한 심볼릭 링크를 생성합니다:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/

변경 사항을 적용하려면 Apache를 다시 시작하십시오.

sudo systemctl restart httpd

Apache를 다시 시작한 후 웹 브라우저에서 http://example_domain을 방문하세요. 도메인을 등록하지 않은 경우 서버의 IP 주소를 사용하세요. 이전에 만든 랜딩 페이지가 표시되어야 합니다.

Apache(HTTPD) 서비스 관리0

Apache 서버 로그

Apache 서버 로그는 모니터링 및 문제 해결에 중요합니다. 기본적으로 /var/log/httpd/에 있습니다. 표준 파일 이름은 액세스 로그의 경우 access.log이고 오류 로그의 경우 error.log입니다. 그러나 가상 호스트 구성 파일에서 이러한 파일 이름을 사용자 정의할 수 있습니다.

로그 파일 이름 사용자 정의

로그 파일 이름을 변경하려면 가상 호스트 구성 파일을 편집하십시오. 사용자 정의 로그 이름의 예는 다음과 같습니다.

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/example.com
    
    # Change access log to custom-access.log
    CustomLog /var/log/httpd/custom-access.log combined
    
    # Change error log to custom-error.log
    ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>

이 구성은 custom-access.log 및 custom-error.log를 액세스 및 오류 로그의 새 파일 이름으로 설정합니다. 사용자 정의 로그 이름을 구성할 때 올바른 파일 경로를 제공해야 합니다.

서비스 관리를 위한 Apache 명령

Apache 서비스 관리에는 해당 작업을 제어할 수 있는 명령 집합이 포함됩니다.

Apache 중지:

Apache 서버를 중지하려면 다음을 사용하십시오.

sudo systemctl stop httpd

이 명령은 다시 시작될 때까지 Apache 서비스를 중지합니다.

아파치 시작하기:

Apache 서버를 시작하려면 다음을 사용하십시오.

sudo systemctl start httpd

이 명령은 Apache 서비스를 활성화하여 웹 콘텐츠를 제공할 수 있도록 준비합니다.

아파치 다시 시작하기:

Apache 서버를 다시 시작하려면 다음을 사용하십시오.

sudo systemctl restart httpd

다시 시작은 구성 변경 사항을 적용하거나 중요하지 않은 오류를 복구하는 데 유용합니다.

Apache를 다시 로드하는 중:

Apache 서버를 다시 로드하려면 다음을 사용하십시오.

sudo systemctl reload httpd

다시 로드하면 실행 중인 서비스를 중단하지 않고 구성 변경 사항이 적용됩니다.

부팅 시 Apache 비활성화:

부팅 시 Apache가 자동으로 시작되지 않도록 하려면 다음을 사용하십시오.

sudo systemctl disable httpd

이 명령은 시스템 부팅 시 시작되는 서비스 목록에서 Apache를 제거합니다.

부팅 시 Apache 활성화:

부팅 시 Apache가 자동으로 시작되도록 설정하려면 다음을 사용하세요.

sudo systemctl enable httpd

이를 통해 시스템이 부팅될 때마다 Apache가 시작되어 일관된 웹 서비스 가용성을 제공합니다.

Let's Encrypt SSL 무료 인증서로 Apache 보호

SSL/TLS 인증서 자동화를 위한 Certbot 설치

SSL/TLS 인증서 획득 및 갱신을 자동화하여 웹사이트의 HTTPS 암호화를 보장하는 도구인 Certbot을 설치하는 것부터 시작하세요. Certbot을 설치하려면 다음을 실행하세요.

sudo dnf install certbot python3-certbot-apache

도메인에 대한 SSL/TLS 인증서 생성

설치 후 다음 명령을 사용하여 도메인에 대한 SSL/TLS 인증서를 생성하세요.

sudo certbot --apache -d example.com

“example.com”을 실제 도메인 이름으로 바꾸세요.

SSL 인증서 생성을 위한 대체 명령

포괄적인 SSL 설정을 위해서는 다음 명령을 사용하십시오.

sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
  • –dry-run: 시스템을 변경하지 않고 인증서 생성을 테스트합니다.
  • –apache: 인증서가 Apache 서버용임을 나타냅니다.
  • –agree-tos: Let's Encrypt의 서비스 약관에 동의합니다.
  • –redirect: HTTP 트래픽을 HTTPS로 리디렉션합니다.
  • –hsts: HTTP 엄격한 전송 보안을 활성화하여 보안 HTTPS 연결만 보장합니다.
  • –staple-ocsp: SSL 인증서 확인을 위해 OCSP 스테이플링을 활성화합니다.
  • –email: 인증서와 연결된 이메일 주소입니다.
  • -d: 인증서의 도메인 이름(여기서는 “www.example.com”)입니다.

SSL 인증서를 사용하도록 Apache 구성

Apache를 구성하려면 SSL 구성 파일을 엽니다.

sudo nano /etc/httpd/conf.d/ssl.conf

이 파일에 다음 줄을 추가하고 "example.com"을 도메인으로 바꿉니다.

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

SSL 인증서 확인 및 갱신

설치 후 웹 사이트는 암호화되고 안전한 통신을 보장하기 위해 "HTTP://www.example.com"에서 "HTTPS://www.example.com"으로 전환됩니다.

자동 인증서 갱신 설정

SSL 인증서를 최신 상태로 유지하려면 Certbot 갱신을 위한 크론 작업을 설정하세요. 먼저 갱신 프로세스를 테스트합니다.

sudo systemctl restart httpd 

이 테스트는 크론 작업으로 예약하기 전에 갱신 스크립트가 올바르게 작동하는지 확인합니다.

sudo certbot renew --dry-run

SSL 인증서 갱신 및 관리

SSL 인증서 상태 확인

갱신 프로세스를 자동화하기 전에 SSL 인증서의 현재 상태를 이해하는 것이 중요합니다. Certbot에서 관리하는 모든 인증서의 만료 날짜를 포함하여 상태를 확인하려면 다음 명령을 사용하세요.

sudo certbot certificates

이 명령은 Certbot이 처리하는 모든 SSL 인증서 목록과 해당 만료 날짜를 제공합니다. 이 정보는 인증서가 활성 상태인지 확인하고 갱신이 필요한 시기를 이해하는 데 필수적입니다.

SSL 인증서 갱신 자동화

중단 없는 HTTPS 서비스를 보장하려면 SSL 인증서를 주기적으로 갱신해야 합니다. 안전한 웹사이트를 유지하려면 이 프로세스를 자동화하는 것이 중요합니다.

Cron 작업을 위한 Cronie 설치

cron 작업 관리자인 Cronie가 Fedora 시스템에 설치되어 있지 않은 경우 다음을 사용하여 설치하십시오.

sudo crontab -e

Cronie를 사용하면 Certbot 갱신 스크립트와 같은 작업이 지정된 시간과 간격으로 실행되도록 예약할 수 있습니다.

크론 작업 구성 편집

Cronie를 설치한 후 cron 작업 구성을 편집하여 SSL 인증서 갱신을 예약합니다.

sudo dnf install cronie

이 명령은 예약된 작업을 추가할 수 있는 crontab 편집기를 엽니다.

갱신 작업 예약

crontab 편집기 내에서 다음 줄을 추가하여 갱신 명령이 매일 두 번 실행되도록 예약합니다.

0 6,18 * * * certbot renew --quiet

이 크론 작업은 매일 오전 6시와 오후 6시에 certbot 갱신 명령을 실행하도록 설정되어 있습니다. –quiet 옵션은 불필요한 출력을 생성하지 않고 Certbot이 자동으로 실행되도록 보장합니다.

Certbot의 갱신 프로세스 이해

Certbot은 갱신 프로세스를 지능적으로 관리합니다. 만료 30일 이내에 인증서 갱신만 시도합니다. 인증서 갱신이 필요하지 않은 경우 Certbot은 어떤 작업도 수행하지 않습니다. 이러한 효율성 덕분에 서버는 불필요한 프로세스로 인해 부담을 느끼지 않고 SSL 인증서를 항상 최신 상태로 유지할 수 있습니다.

이 자동 갱신 프로세스를 설정하는 것은 지속적인 HTTPS 암호화를 유지하여 사용자와 검색 엔진의 웹사이트 보안과 신뢰를 유지하기 위한 모범 사례입니다.

추가 명령 및 팁

Apache의 보안 디렉터리 및 파일

서버의 보안을 보장하려면 파일 및 디렉터리에 대한 적절한 권한을 설정해야 합니다. 지나치게 권한이 부여된 설정은 서버를 위험에 노출시킬 수 있습니다.

보안 권한 설정

/var/www/example.com/ 아래의 디렉터리 및 파일의 경우 다음 명령을 사용합니다.

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

이 명령은 디렉터리를 755(소유자를 위해 읽기, 쓰기, 실행, 다른 사람을 위해 읽고 실행)로 설정하고 파일을 644(소유자를 위해 읽기 및 쓰기, 다른 사람을 위해 읽기)로 설정합니다. 이는 표준 보안 권한입니다.

특정 애플리케이션에 대한 특별 권한

phpBB와 같은 일부 응용 프로그램은 특정 폴더에 대해 777 권한이 필요할 수 있습니다. 항상 애플리케이션 요구 사항에 따라 권한을 조정하십시오.

포괄적인 보안 접근 방식

권한 설정은 보안의 한 측면일 뿐이라는 점을 기억하세요. 강력한 서버 보호를 위해서는 SSL 인증서를 구현하고 적절한 방화벽 구성을 구현하는 것이 중요합니다.

Fedora에서 Apache(HTTPD) 업데이트

Apache를 최신 상태로 유지하는 것은 보안과 성능에 매우 중요합니다.

아파치 업데이트

다른 시스템 패키지와 함께 Apache를 업데이트하려면 다음을 사용하십시오.

sudo dnf update --refresh

이 명령은 패키지 데이터베이스를 새로 고치고 Apache를 포함하여 설치된 모든 패키지를 업데이트합니다.

업데이트 전 주의사항

잠재적인 문제로부터 보호하기 위해 업데이트를 수행하기 전에 항상 시스템을 백업하거나 이미지를 생성하십시오.

Fedora에서 Apache 제거(제거)

Apache를 시스템에서 제거해야 하는 시나리오에서는 다음 단계를 따르십시오.

Apache 비활성화 및 중지

먼저 Apache 서비스를 비활성화하고 중지합니다.

sudo systemctl disable httpd --now

이 명령은 Apache 서비스를 중지하고 부팅 시 자동으로 시작되지 않도록 합니다.

아파치 제거

시스템에서 Apache를 제거하려면 다음을 실행하십시오.

sudo dnf remove httpd

이 명령은 Apache 패키지를 제거합니다.

남은 파일 정리

제거 후 Apache 구성 디렉터리에서 잔여 파일을 제거합니다.

sudo rm -R /etc/httpd/

이 단계를 수행하면 모든 Apache 관련 파일이 시스템에서 완전히 제거됩니다.

결론

AppStream을 통해 Fedora에 Apache HTTPD를 설치하면 Fedora 시스템과 잘 통합된 강력하고 안정적인 웹 서버를 얻을 수 있습니다. dnf 패키지 관리자는 설치가 원활하고 업데이트가 쉽게 관리되도록 보장합니다. 설치 후에는 Apache의 광범위한 구성 옵션을 탐색하여 정적 웹 사이트 제공, 동적 애플리케이션 실행 또는 복잡한 웹 환경 관리 등 특정 요구 사항에 맞게 서버를 조정하는 것을 고려하십시오.

Joshua James

코멘트를 남겨주세요