소개
Apache HTTP server 은 가장 널리 사용되는 웹 서버에서 세계입니다. 제공하는 많은 강력한 기능을 포함하여 동적으로 링크 모듈,강력한 미디어를 지원,그리고 광범위한 통합과 함께 다른 인기 있는 소프트웨어입니다.
이 가이드에서는 Centos7 서버에 가상 호스트가있는 Apache 웹 서버를 설치합니다.
전제 조건
이 가이드를 완료하려면 다음이 필요합니다:
- 서버에 구성된 sudo 권한을 가진 비 루트 사용자로 CentOS7 의 초기 서버 설정 가이드에 따라 설정합니다.
- 새로운 CentOS7 서버 가이드에 대한 추가 권장 단계에 따라 구성된 기본 방화벽입니다.
1 단계—설치하는 아파치
아파치가 내에서 사용 가능한 CentOS 의 기본 소프트웨어 저장소를 의미하는,당신은 그것을 설치할 수 있으로yum
패키지 관리자입니다.
으로 루트가 아닌 sudo 사용자 구성된 전제 조건에서,업데이트 로컬 아파치httpd
패키지 색인을 반영하는 최신 업스트림 변화:
- sudo yum update httpd
면 패키지를 업데이트를 설치하는 아파치 패키지.
- sudo yum install httpd
을 확인한 후 설치 yum
것이 아파치를 설치하고 모든 필요한 종속성입니다.
를 완료한 경우 추가적인 권장 단계에 대한 새로운 7 가이드 서버 전제 조건에서 설명 섹션에서,당신은 당신이 설치되어 있는firewalld
80
firewalld
‘shttp
서비스는 다음과 같은 명령:
- sudo firewall-cmd --permanent --add-service=http
할 계획이라면 아파치를 구성하는 콘텐츠를 제공하는 HTTPS 를 통해,당신은 또한 열려 포트443
https
서비스:
- sudo firewall-cmd --permanent --add-service=https
다음,다시 방화벽에서 이러한 새로운 규칙으로 효과:
- sudo firewall-cmd --reload
후 방화벽에 다시 로드할 준비가 된 서비스를 시작하고 확인하는 웹 서버에 있습니다.
2 단계-웹 서버 확인
Apache 는 설치가 완료되면 centos 에서 자동으로 시작되지 않습니다. 당신이 필요합니다면 아파치를 시작 프로세스를 수동으로.
- sudo systemctl start httpd
는지 확인 서비스를 실행하는 다음과 같은 명령:
- sudo systemctl status httpd
당신이 볼 수 있는active
상태를 나타 서비스 실행:
OutputRedirecting to /bin/systemctl status httpd.service● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1290 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─1290 /usr/sbin/httpd -DFOREGROUND ├─1291 /usr/sbin/httpd -DFOREGROUND ├─1292 /usr/sbin/httpd -DFOREGROUND ├─1293 /usr/sbin/httpd -DFOREGROUND ├─1294 /usr/sbin/httpd -DFOREGROUND └─1295 /usr/sbin/httpd -DFOREGROUND...
에서 볼 수 있듯이 산출,서비스를 시작했습니다. 그러나이를 테스트하는 가장 좋은 방법은 아파치에서 페이지를 요청하는 것입니다.
기본 Apache 방문 페이지에 액세스하여 IP 주소를 통해 소프트웨어가 제대로 실행되고 있는지 확인할 수 있습니다. 서버의 IP 주소를 모르는 경우 명령 줄에서 몇 가지 다른 방법으로 얻을 수 있습니다.
유형이 서버에서의 명령 프롬프트
- hostname -I
이 명령을 표시하는 옵션을 제공합니다.의 호스트 네트워크 주소입니다,그래서 당신은 다시 얻을 몇 IP 주소로 공백으로 구분됩니다. 당신은 그들이 작동하는지 확인하기 위해 웹 브라우저에서 각을 시도 할 수 있습니다.
사용할 수 있습니다,또는curl
을 요청의 IP 에서icanhazip.com
줄 것이다,당신은 귀하의 공 IPv4 주소 보이는 다른 위치에서 인터넷에:
- curl -4 icanhazip.com
때 당신은 당신의 서버의 IP 주소를 입력,그것은 당신의 브라우저의 주소 표시줄
http://your_server_ip
당신이 볼 수는 기본 CentOS7 아파치 웹 페이지:
이 페이지를 나타내는 아파치가 제대로 작동하는지 확인합니다. 또한 중요한 아파치 파일 및 디렉토리 위치에 대한 몇 가지 기본 정보가 포함되어 있습니다. 지금 하는 서비스가 설치 및 실행,당신은 지금 사용할 수 있습니다 다른systemctl
명령을 관리 서비스입니다.
3 단계—을 관리하고 아파치 프로세스
이제는 당신이 당신의 웹 서버를 실행자의 몇 가지 기본적인 관리는 명령입니다.
를 중지 웹 서버의 종류:
- sudo systemctl stop httpd
를 웹 서버를 시작할 때 중지,종류:
- sudo systemctl start httpd
정지하고 다음 시작하”서비스”의 이용을 재개합니다,유형:
- sudo systemctl restart httpd
경우에 당신은 단순히 구성을 변경,아파치는 종종 다시 삭제하지 않고 연결이 있습니다. 이렇게하려면이 명령을 사용하십시오:
- sudo systemctl reload httpd
기본적으로 Apache 는 서버가 부팅 될 때 자동으로 시작되도록 구성됩니다. 되지 않은 경우,당신이 원하는 것 이 동작을 사용하여 입력:
- sudo systemctl disable httpd
을 다시 사용하려면 서비스를 시작한 부팅을 입력:
- sudo systemctl enable httpd
아파치는 이제 시작할 때 자동으로 서버에 부츠 다시합니다.
아파치의 기본 구성은 서버가 단일 웹 사이트를 호스팅 할 수있게합니다. 서버에서 여러 도메인을 호스팅 할 계획이라면 아파치 웹 서버에서 가상 호스트를 구성해야합니다.
4 단계—설정하는 가상호스트(권장)
사용하는 경우 아파치 웹서버 사용할 수 있는 가상호스트(비슷한 서버에서 블록 Nginx)을 캡슐화하는 구성 정보와 호스트 이상 하나의 도메인에서 단일 서버입니다. 이 단계에서는example.com
라는 도메인을 설정하지만이를 자신의 도메인 이름으로 대체해야합니다. DigitalOcean 으로 도메인 이름을 설정하는 방법에 대한 자세한 내용은 DIGITALOCEAN DNS 에 대한 소개를 참조하십시오.
아파치에 CentOS7 는 하나의 서버 블록을 기본적으로 사용하도록 구성된 봉사의 문서는/var/www/html
/var/www/html
/var/www
example.com
/var/www/html
에서는 장소를 기본값으로 디렉토리를 제공하는 경우 클라이언트 요청이 일치하지 않은 어떤 다른 사이트로 이동합니다.
만들기html
example.com
-p
플래그를 만들 필요한 모든 상위 디렉토리:
- sudo mkdir -p /var/www/example.com/html
추가로 만들 디렉토리를 저장하는 로그 파일에 대해 웹 사이트:
- sudo mkdir -p /var/www/example.com/log
다음에 할당 소유권의html
$USER
환경 변수를
- sudo chown -R $USER:$USER /var/www/example.com/html
있는지 확인하는 귀하의 웹 뿌리는 기본 설정한 권한:
- sudo chmod -R 755 /var/www
Next, create a sample index.html
page using vi
or your favorite editor:
- sudo vi /var/www/example.com/html/index.html
Press i
to switch to INSERT
mode and add the following sample HTML to the file:
<html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body></html>
Save and close the file by pressing ESC
, typing :wq
, and pressing ENTER
.
사이트 디렉토리와 샘플 인덱스 파일을 제자리에 사용하면 가상 호스트 파일을 만들 준비가 거의 완료됩니다. 가상 호스트 파일은 별도의 사이트의 구성을 지정하고 아파치 웹 서버에 다양한 도메인 요청에 응답하는 방법을 알려줍니다.
가상 호스트를 만들기 전에 저장할sites-available
디렉토리를 만들어야합니다. 또한 Apache 에 가상 호스트가 방문자에게 제공 할 준비가되었음을 알리는sites-enabled
sites-enabled
디렉토리는 게시하려는 가상 호스트에 대한 심볼릭 링크를 보유합니다. 모두를 만들 디렉토리에 다음과 같은 명령:
- sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
다음에,당신은 당신을 말할 것이다 아파치를 찾는 가상호스트에서sites-enabled
디렉토리에 있습니다. 이를 위해,편집,아파치의 주요 구성 파일에 추가하고 줄을 선언하는 선택 사항 디렉토리에 대한 추가 구성 파일:
- sudo vi /etc/httpd/conf/httpd.conf
추가 이 라인의 끝에서 파일:
IncludeOptional sites-enabled/*.conf
해당 줄 추가가 완료되면 파일을 저장하고 닫습니다. 이제 가상 호스트 디렉토리가 제자리에 있으므로 가상 호스트 파일을 만들 것입니다.
시작하여 새로운 파일을 만들는sites-available
디렉토리:
- sudo vi /etc/httpd/sites-available/example.com.conf
추가한 다음과 같은 구성에서 블록,변경하고example.com
도메인을 도메인 이름:
<VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/html ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/requests.log combined</VirtualHost>
이 아파치는 곳을 찾기 위해 루트로 직접 보유하고 있는 공개적으로 액세스 할 수있는 웹 문서입니다. 또한 아파치에게이 특정 사이트에 대한 오류 및 요청 로그를 저장할 위치를 알려줍니다.작업이 끝나면 파일을 저장하고 닫습니다.
이제 가상 호스트 파일을 만들었으므로 Apache 가 방문자에게 제공 할 수 있도록 활성화 할 것입니다. 이렇게하려면sites-enabled
디렉토리의 각 가상 호스트에 대한 심볼릭 링크를 만듭니다:
- sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
이제 가상 호스트가 구성되어 콘텐츠를 제공 할 준비가되었습니다. 아파치 서비스를 다시 시작하기 전에,의 SELinux 가 가상 호스트에 대한 장소에 올바른 정책을 가지고 있는지 확인하자.
5 단계—가상 호스트에 대한 SELinux 권한 조정(권장)
selinux 는 기본 Apache 구성에서 작동하도록 구성됩니다. 이후를 설정 사용자 지정 로그 디렉토리에서 가상호스트 설정 파일을 받게됩니다,오류가 시작하려는 경우 아파치 서비스입니다. 이 문제를 해결하려면 Selinux 정책을 업데이트하여 Apache 가 필요한 파일에 쓸 수 있도록해야합니다. SELinux 는 CentOS7 환경에 향상된 보안을 제공하므로 커널 모듈을 완전히 비활성화하지 않는 것이 좋습니다.
SELinux 를 사용하면 보안 수준을 사용자 정의 할 수 있으므로 환경의 요구에 따라 정책을 설정하는 다양한 방법이 있습니다. 이 단계는 두 가지 방법을 조정하는 아파치 정책:적으로 그리고 특정 디렉토리에 있습니다. 디렉토리에 대한 정책을 조정하는 것이 더 안전하므로 권장되는 방법입니다.
조정 Apache 정책 보편적으로
설정하면 아파치는 정책적으로 말할 것이다 SELinux 을 치료하는 모든 아파치 프로세스를 동일하게 사용하여httpd_unified
boolean. 이 방법은 더 편리하고,그것을 제공하지 않습니다 당신은 같은 수준의 제어로는 접근 방식에 초점을 맞추고 파일 또는 디렉토리 정책이 있습니다.
다음 명령을 실행하여 설정하는 보편적인 아파치 정책:
- sudo setsebool -P httpd_unified 1
setsebool
명령어 변경 SELinux 부울 값입니다. -P
httpd_unified
는 부울 값을 알려주는 SELinux 을 치료하는 모든 아파치 프로세스 동일한 유형으로,그래서 당신이 사용하는 그것의 값으로1
.
조정 Apache 정책에 Directory
개별적으로 설정 SELinux 를 사용 권한을/var/www/example.com/log
디렉토리에 있는 것을 더 효율적으로 제어할 수 있도 당신의 아파치는 정책이지만,필요할 수 있습니다 더 유지 보수입니다. 이 옵션은 보편적으로 설정 정책을 수동으로 설정의 컨텍스트 유형에 대한 모든 새로운 로그 디렉토리에서 지정한 가상호스트 구성이 있습니다.
먼저 확인 컨텍스트 유형는 SELinux 준/var/www/example.com/log
디렉토리:
- sudo ls -dZ /var/www/example.com/log/
이 명령 목록 및 인쇄 SELinux 컨텍스트의 디렉토리에 있습니다. 다음과 유사한 출력이 표시됩니다:
Outputdrwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/
현재 상황은httpd_sys_content_t
알려주는 SELinux 는 아파치 프로세스만 읽을 수 있습에서 작성한 파일이 디렉토리에 있습니다. 이 자습서에서는/var/www/example.com/log
httpd_log_t
로 변경합니다. 이 유형이 허용 아파치를 생성하고 추가하여 웹 응용 프로그램 로그 파일:
- sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"
다음 사용하십restorecon
명령어를 이러한 변경 사항을 적용하고 있는 그들을 지속서 재부팅:
- sudo restorecon -R -v /var/www/example.com/log
-R
-v
플래그는 명령이 수행 한 컨텍스트 변경을 인쇄합니다. 다음과 같은 출력을 확인하는 변화.
Outputrestorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0
할 수 있는 목록은 맥락에 한 번 더 많은 변화를 보
- sudo ls -dZ /var/www/example.com/log/
출력을 반영한 업데이트 컨텍스트 유형:
Outputdrwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log
이제는/var/www/example.com/log
httpd_log_t
유형,당신은 테스트를 준비하는 귀하의 가상호스트 구성이 있습니다.
6 단계—테스트하는 가상호스트(권장)
한 번 SELinux 컨텍스트를 업데이트되었습니다 두 가지 방법 중 한 가지 방법을 사용하면 아파치는 것이 쓸 수 있는/var/www/example.com/log
디렉토리에 있습니다. 당신은 이제 성공적으로 아파치 서비스를 다시 시작:
- sudo systemctl restart httpd
목록의 내용을/var/www/example.com/log
디렉토리를 참조하는 경우 아파치 로그를 만든 파일:
- ls -lZ /var/www/example.com/log
당신이 볼 수 있는 아파치를 만들 수 있었error.log
requests.log
에서 지정한 파일 가상호스트 구성:
Output-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log
이제는 당신이 당신의 가상호스트 설정 및 SELinux 를 사용 권한 업데이트 아파치는 이제 봉사하는 귀하의 도메인 이름입니다. 테스트할 수 있습니다 이 이동하여http://example.com
,어디에 다음과 같은 내용이 있어야 합니다:
이것은 가상 호스트가 성공적으로 구성되고 콘텐츠를 제공하는지 확인합니다. 4 단계와 5 단계를 반복하여 추가 도메인에 대한 SELinux 권한을 가진 새 가상 호스트를 만듭니다.
결론
이 튜토리얼에서는 아파치 웹 서버를 설치하고 관리했습니다. 이제는 당신이 당신의 웹 서버가 설치되어 있는 많은 옵션을 위한 유형의 콘텐츠를 제공할 수 있습과 기술을 만드는 데 사용할 수 있 풍부한 경험입니다.
하고 싶은 경우를 구축 더 완벽한 응용 프로그램 스택에서 볼 수 있는 방법에 대한 이 문서를 구성하 램프 스택에서 7.