- 질문 게시판입니다.
Date | 19/05/07 23:28:27 |
Name | 토비 |
Subject | apachectl 시작 페이지 설정... |
service httpd start 로 띄우는 페이지와 apachectl start로 띄우는 페이지가 다릅니다. 둘 중에 하나만 쓰면 되기는 하겠습니다만, apachectl start로 띄우는 페이지를 service와 동일한 페이지를 띄우도록 수정하고 싶습니다. 어딜 디벼봐야 할까요 0
이 게시판에 등록된 토비님의 최근 게시물 |
apachectl configtest 과 httpd -t를 쓰셔서 같은 conf를 읽는 지 확인해보시는건 어떨까요?
https://www.commandlinux.com/man-page/man8/apachectl.8.html
항상 작업하시는 conf파일 외의 다른 위치의 기본conf설정을 읽는 또다른 버전의 아파치가 있을수도 있으니, 윗 분 말씀대로 서비스를 디벼보시는 게 가장 빠를 것 같네요.
https://www.commandlinux.com/man-page/man8/apachectl.8.html
항상 작업하시는 conf파일 외의 다른 위치의 기본conf설정을 읽는 또다른 버전의 아파치가 있을수도 있으니, 윗 분 말씀대로 서비스를 디벼보시는 게 가장 빠를 것 같네요.
답변 감사합니다.
두개의 conf 파일이 있고 각각의 경로도 알고 있는데요.
apachectl 실행시 service httpd 와 동일한 동작을 하게끔 하고 싶습니다.
그냥 service를 계속 쓰면 되기는 하는데, SSL 셋팅을 위해 Let's Encrypt 자동화 도구인 certbot을 쓰려고 하니 apachectl graceful stop 단계에서 에러가 나서... 관련 부분 살펴보다가 이 질문을 올렸습니다.
일단 제일 시급한 목표는 Let's Encrypt로 SSL 설정을 하는 것이구요. (이게 안되어서 새 서버를 사놓고 아직 못쓰고 있습니다)
apachectl configtes... 더 보기
두개의 conf 파일이 있고 각각의 경로도 알고 있는데요.
apachectl 실행시 service httpd 와 동일한 동작을 하게끔 하고 싶습니다.
그냥 service를 계속 쓰면 되기는 하는데, SSL 셋팅을 위해 Let's Encrypt 자동화 도구인 certbot을 쓰려고 하니 apachectl graceful stop 단계에서 에러가 나서... 관련 부분 살펴보다가 이 질문을 올렸습니다.
일단 제일 시급한 목표는 Let's Encrypt로 SSL 설정을 하는 것이구요. (이게 안되어서 새 서버를 사놓고 아직 못쓰고 있습니다)
apachectl configtes... 더 보기
답변 감사합니다.
두개의 conf 파일이 있고 각각의 경로도 알고 있는데요.
apachectl 실행시 service httpd 와 동일한 동작을 하게끔 하고 싶습니다.
그냥 service를 계속 쓰면 되기는 하는데, SSL 셋팅을 위해 Let's Encrypt 자동화 도구인 certbot을 쓰려고 하니 apachectl graceful stop 단계에서 에러가 나서... 관련 부분 살펴보다가 이 질문을 올렸습니다.
일단 제일 시급한 목표는 Let's Encrypt로 SSL 설정을 하는 것이구요. (이게 안되어서 새 서버를 사놓고 아직 못쓰고 있습니다)
apachectl configtest 과 httpd -t 는 모두 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Syntax OK 라는 메시지가 나오네요.
두개의 conf 파일이 있고 각각의 경로도 알고 있는데요.
apachectl 실행시 service httpd 와 동일한 동작을 하게끔 하고 싶습니다.
그냥 service를 계속 쓰면 되기는 하는데, SSL 셋팅을 위해 Let's Encrypt 자동화 도구인 certbot을 쓰려고 하니 apachectl graceful stop 단계에서 에러가 나서... 관련 부분 살펴보다가 이 질문을 올렸습니다.
일단 제일 시급한 목표는 Let's Encrypt로 SSL 설정을 하는 것이구요. (이게 안되어서 새 서버를 사놓고 아직 못쓰고 있습니다)
apachectl configtest 과 httpd -t 는 모두 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Syntax OK 라는 메시지가 나오네요.
일때문에 답변이 늦었습니다. ssl 업데이트 때문이시군요... 마음 이해됩니다.
cerbot-auto 실행 중 apachectl graceful stop에서 멈추신 에러인것 같아서 조금 구글링해봤으니 먼저 링크를 공유드립니다(Error while running apachectl graceful. 에러인것 같더라고요.)
문제: https://github.com/certbot/certbot/issues/543... 더 보기
cerbot-auto 실행 중 apachectl graceful stop에서 멈추신 에러인것 같아서 조금 구글링해봤으니 먼저 링크를 공유드립니다(Error while running apachectl graceful. 에러인것 같더라고요.)
문제: https://github.com/certbot/certbot/issues/543... 더 보기
일때문에 답변이 늦었습니다. ssl 업데이트 때문이시군요... 마음 이해됩니다.
cerbot-auto 실행 중 apachectl graceful stop에서 멈추신 에러인것 같아서 조금 구글링해봤으니 먼저 링크를 공유드립니다(Error while running apachectl graceful. 에러인것 같더라고요.)
문제: https://github.com/certbot/certbot/issues/5439#issuecomment-365789137
해결1: https://github.com/certbot/certbot/issues/5439#issuecomment-381447027
실마리: https://github.com/certbot/certbot/issues/5439#issuecomment-381870072
해결3: https://github.com/certbot/certbot/issues/5439#issuecomment-382034179
핵심은 certbot-auto 0.22.x 이하 버전에서 메모리 얼로케이션 에러 비스무리한게 뜨는 것 같습니다. (사실 apachectl graceful과 증명서 갱신 그 자체와는 별 연관없는 문제이지만, 에러로 전 프로세스가 종료되버려서 인증까지 가지 못하고 failed가 뜨는 것 같네요.)
0.23을 업데이트하고 해결이 됐다는 다른 글타래가 해결1이고, 주인이 실마리와 해결3으로 해결을한듯합니다.
certbot디렉토리의 renewal/exmon.com.conf파일에 pre_hook과 post_hook으로 apachectl을 종료하고 켜는 스크립트를 넣었습니다.
pre_hook = apachectl -k stop
post_hook = apachectl -k start
제 환경에서 테스트해본 것은 아니라 확실하지는 않지만 이걸로 해결이 된다면 다행입니다.
cerbot-auto 실행 중 apachectl graceful stop에서 멈추신 에러인것 같아서 조금 구글링해봤으니 먼저 링크를 공유드립니다(Error while running apachectl graceful. 에러인것 같더라고요.)
문제: https://github.com/certbot/certbot/issues/5439#issuecomment-365789137
해결1: https://github.com/certbot/certbot/issues/5439#issuecomment-381447027
실마리: https://github.com/certbot/certbot/issues/5439#issuecomment-381870072
해결3: https://github.com/certbot/certbot/issues/5439#issuecomment-382034179
핵심은 certbot-auto 0.22.x 이하 버전에서 메모리 얼로케이션 에러 비스무리한게 뜨는 것 같습니다. (사실 apachectl graceful과 증명서 갱신 그 자체와는 별 연관없는 문제이지만, 에러로 전 프로세스가 종료되버려서 인증까지 가지 못하고 failed가 뜨는 것 같네요.)
0.23을 업데이트하고 해결이 됐다는 다른 글타래가 해결1이고, 주인이 실마리와 해결3으로 해결을한듯합니다.
certbot디렉토리의 renewal/exmon.com.conf파일에 pre_hook과 post_hook으로 apachectl을 종료하고 켜는 스크립트를 넣었습니다.
pre_hook = apachectl -k stop
post_hook = apachectl -k start
제 환경에서 테스트해본 것은 아니라 확실하지는 않지만 이걸로 해결이 된다면 다행입니다.
확인해봤는데 혹시 httpd 설치 폴더의 conf파일중에 ssl.conf 라고 생성되셨나요?
아파치2.4.6 centos7 yum 으로 설치했을때 /etc/httpd/conf.d , conf 이런식으로 생성되어있는데
include로 httpd.conf에서 참조하는 설정입니다.
이게 443 https 를 받아서 virtualhost로 보내주거든요. 여기에 documentroot도 설정되어있고 servername도 있고.. 얘를 httpd에서 참조하면 https로 떨어지는건데 만약 이 설정을 수동으로 해아한다면 virtualhost 기능 내에 ssl module을 로드하고 on 명령어로 따로 pem 파일등을 로드해야해요. 저는 처음설정할때 이걸 했었는데 두번째할때는 그냥 ssl.conf 자동생성된것만 참조해도 알아서 잘 되더라고요.
도움이 되셨길 바라겠습니다!
아파치2.4.6 centos7 yum 으로 설치했을때 /etc/httpd/conf.d , conf 이런식으로 생성되어있는데
include로 httpd.conf에서 참조하는 설정입니다.
이게 443 https 를 받아서 virtualhost로 보내주거든요. 여기에 documentroot도 설정되어있고 servername도 있고.. 얘를 httpd에서 참조하면 https로 떨어지는건데 만약 이 설정을 수동으로 해아한다면 virtualhost 기능 내에 ssl module을 로드하고 on 명령어로 따로 pem 파일등을 로드해야해요. 저는 처음설정할때 이걸 했었는데 두번째할때는 그냥 ssl.conf 자동생성된것만 참조해도 알아서 잘 되더라고요.
도움이 되셨길 바라겠습니다!
음 그렇군요
LoadModule ssl_module modules/mod_ssl.so
된 상태에서
virtualhost 아래에 (ssl.conf 참조를 변경하셨다고 가정하고)
RewriteEngine on
RewriteCond %{SERVER_NAME} = 접속도메인(virtualhost에 servername 선언한 주소)
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
나중에 계속 안되시면 이거 한번 추가해보시겠어요? 이게 80으로 온거 https로 자동으로 바꿔서 접속하게 해주는 옵션인데... 이걸 넣으면 443포트로 넘어가서 ssl 설정에 맞는 방식으로 체크하고 접속되는거 같거든요.
명확한 도움을 못드려서 죄송합니다 ㅋㅋ;
LoadModule ssl_module modules/mod_ssl.so
된 상태에서
virtualhost 아래에 (ssl.conf 참조를 변경하셨다고 가정하고)
RewriteEngine on
RewriteCond %{SERVER_NAME} = 접속도메인(virtualhost에 servername 선언한 주소)
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
나중에 계속 안되시면 이거 한번 추가해보시겠어요? 이게 80으로 온거 https로 자동으로 바꿔서 접속하게 해주는 옵션인데... 이걸 넣으면 443포트로 넘어가서 ssl 설정에 맞는 방식으로 체크하고 접속되는거 같거든요.
명확한 도움을 못드려서 죄송합니다 ㅋㅋ;
처음 말씀하신것처럼 certbot이 인식하는 기본 아파치가 apachectl이라서 현재 conf파일을 인식하지 못하나보네요...
아마 위의 언급하신대로 apachectl의 기본경로에 ssl이 설치되어 생기는 문제로 보입니다.
apachectl -k stop하시고 service httpd start하면 아마 사이트 보이지 않을까 싶긴 한데...
말씀하신건 아래와 같은 SSLEngine 등의 키워드를 /etc/httpd/conf.d/에서 grep -n하시면 바로 찾으실 수 있을거 같아요.
예)
<VirtualHost 192.168.0.1:443>
DocumentRoot /v... 더 보기
아마 위의 언급하신대로 apachectl의 기본경로에 ssl이 설치되어 생기는 문제로 보입니다.
apachectl -k stop하시고 service httpd start하면 아마 사이트 보이지 않을까 싶긴 한데...
말씀하신건 아래와 같은 SSLEngine 등의 키워드를 /etc/httpd/conf.d/에서 grep -n하시면 바로 찾으실 수 있을거 같아요.
예)
<VirtualHost 192.168.0.1:443>
DocumentRoot /v... 더 보기
처음 말씀하신것처럼 certbot이 인식하는 기본 아파치가 apachectl이라서 현재 conf파일을 인식하지 못하나보네요...
아마 위의 언급하신대로 apachectl의 기본경로에 ssl이 설치되어 생기는 문제로 보입니다.
apachectl -k stop하시고 service httpd start하면 아마 사이트 보이지 않을까 싶긴 한데...
말씀하신건 아래와 같은 SSLEngine 등의 키워드를 /etc/httpd/conf.d/에서 grep -n하시면 바로 찾으실 수 있을거 같아요.
예)
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>
원론적으로는 apachectl과 httpd가 같은 디렉토리를 보게 하면 될 것 같긴하네요. which apachectl과 which httpd의 결과, 혹은 rpm -qf /sbin/httpd와 rpm -qf /sbin/apachectl의 결과를 알 수 있을까요?
아마 위의 언급하신대로 apachectl의 기본경로에 ssl이 설치되어 생기는 문제로 보입니다.
apachectl -k stop하시고 service httpd start하면 아마 사이트 보이지 않을까 싶긴 한데...
말씀하신건 아래와 같은 SSLEngine 등의 키워드를 /etc/httpd/conf.d/에서 grep -n하시면 바로 찾으실 수 있을거 같아요.
예)
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>
원론적으로는 apachectl과 httpd가 같은 디렉토리를 보게 하면 될 것 같긴하네요. which apachectl과 which httpd의 결과, 혹은 rpm -qf /sbin/httpd와 rpm -qf /sbin/apachectl의 결과를 알 수 있을까요?
Include /etc/httpd/conf.d/ssl.conf 을 시도해보았습니다만 에러를 만났습니다.
[root@localhost conf]# service httpd start
AH00526: Syntax error on line 23 of /etc/httpd/conf.d/ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
[root@localhost conf]# service httpd start
AH00526: Syntax error on line 23 of /etc/httpd/conf.d/ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
다른 파일을 수정해서 다시 include 시도 해보았는데 같은 에러를 만나는군요
[root@localhost extra]# vi httpd-ssl.conf
[root@localhost extra]# service httpd start
AH00526: Syntax error on line 73 of /usr/local/apache/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
[root@localhost extra]# vi httpd-ssl.conf
[root@localhost extra]# service httpd start
AH00526: Syntax error on line 73 of /usr/local/apache/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 의 주석을 해제하니 에러가 사라졌습니다.
고생이 많으십니다...
현 httpd 위에서 certbot --webroot을 이용해 다시 발급을 받아보는 것도 좋겠습니다.
(혹시 아래의 방법도 해보셨다면 그냥 알려주시면 다른 방법도 알아보겠습니다.)
certbot certonly --webroot -w {documentRoot 위치} -d {임의의 도메인}
이렇게 하면 증명서 발급을 진행하기 위해 {DocumentRoot}/.well-known/acme-challenge/{hash} 디렉토리를 스스로 만들고
acme-challenge 측에서 해당 임의 도메인의 well-known 주소로 접속해 바로 발급은 됩니다.
(증명서는 /e... 더 보기
현 httpd 위에서 certbot --webroot을 이용해 다시 발급을 받아보는 것도 좋겠습니다.
(혹시 아래의 방법도 해보셨다면 그냥 알려주시면 다른 방법도 알아보겠습니다.)
certbot certonly --webroot -w {documentRoot 위치} -d {임의의 도메인}
이렇게 하면 증명서 발급을 진행하기 위해 {DocumentRoot}/.well-known/acme-challenge/{hash} 디렉토리를 스스로 만들고
acme-challenge 측에서 해당 임의 도메인의 well-known 주소로 접속해 바로 발급은 됩니다.
(증명서는 /e... 더 보기
고생이 많으십니다...
현 httpd 위에서 certbot --webroot을 이용해 다시 발급을 받아보는 것도 좋겠습니다.
(혹시 아래의 방법도 해보셨다면 그냥 알려주시면 다른 방법도 알아보겠습니다.)
certbot certonly --webroot -w {documentRoot 위치} -d {임의의 도메인}
이렇게 하면 증명서 발급을 진행하기 위해 {DocumentRoot}/.well-known/acme-challenge/{hash} 디렉토리를 스스로 만들고
acme-challenge 측에서 해당 임의 도메인의 well-known 주소로 접속해 바로 발급은 됩니다.
(증명서는 /etc/letsencrypt/{임의의 도메인}/archive/{키 파일} 로 저장되니, 발급이 잘 되었는지 디렉토리에서 최종 파일의 날짜를 직접 확인해보시기 바랍니다.)
그다음 httpd 의 ssl.conf 해당 virtualhost에 아래의 네줄을 추가하고 service httpd reload 하시면 될 것으로 보입니다만 ...
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/{도메인}/cert.pem;
SSLCertificateKeyFile /etc/letsencrypt/live/{도메인}/privkey.pem;
SSLCertificateChainFile /etc/letsencrypt/live/{도메인}/chain.pem;
현 httpd 위에서 certbot --webroot을 이용해 다시 발급을 받아보는 것도 좋겠습니다.
(혹시 아래의 방법도 해보셨다면 그냥 알려주시면 다른 방법도 알아보겠습니다.)
certbot certonly --webroot -w {documentRoot 위치} -d {임의의 도메인}
이렇게 하면 증명서 발급을 진행하기 위해 {DocumentRoot}/.well-known/acme-challenge/{hash} 디렉토리를 스스로 만들고
acme-challenge 측에서 해당 임의 도메인의 well-known 주소로 접속해 바로 발급은 됩니다.
(증명서는 /etc/letsencrypt/{임의의 도메인}/archive/{키 파일} 로 저장되니, 발급이 잘 되었는지 디렉토리에서 최종 파일의 날짜를 직접 확인해보시기 바랍니다.)
그다음 httpd 의 ssl.conf 해당 virtualhost에 아래의 네줄을 추가하고 service httpd reload 하시면 될 것으로 보입니다만 ...
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/{도메인}/cert.pem;
SSLCertificateKeyFile /etc/letsencrypt/live/{도메인}/privkey.pem;
SSLCertificateChainFile /etc/letsencrypt/live/{도메인}/chain.pem;
목록 |
|