OpenBSD 6.2 amd64를 실행하는 OpenBSD 시스템에서는 rcctl을 사용하여 httpd를 시작할 수 없습니다.
# rcctl start httpd
httpd(failed)
그러나 처음 입력을 시작하면 httpd
작동하지만 올바른 방법은 아닌 것 같습니다. /var/log/messages
프롬프트는 포함되지 않으며 다른 파일도 포함되지 않습니다 /var/log/
.
내 것은 /etc/httpd.conf
비교적 간단합니다.
server "default" {
listen on * port 80
}
/var/www
/var/www/htdocs
수동 시작 시 제공되는 파일이 존재하며 포함되어 있습니다. "root"를 지정해도 /etc/httpd.conf
아무런 효과가 없습니다.
httpd
자동으로 활성화/시작하려면 어떻게 해야 합니까 rcctl
?
답변1
문제는 httpd
데몬에 잘못된 명령줄 인수(끈YES
rcctl
) 따라서 사용을 시작할 때 제대로 시작할 수 없습니다.
XXX_flags
변수의 유일한 "특수" 값은 해당 서비스를 비활성화하는 /etc/rc.conf.local
두 글자 문자열 입니다 . NO
이는 대부분의 OpenBSD 서비스에 대한 기본값입니다(참고 /etc/rc.conf
:안 돼요조정).
rcctl
예를 들어 루트 ID를 사용하여 서비스를 활성화합니다 .
# rcctl enable httpd
이 경우에는 httpd
다음 줄이 작성됩니다.
httpd_flags=
로 전환 /etc/rc.conf.local
하면 서비스가 활성화됩니다 httpd
.
값은 시작 시 httpd_flags
실제 데몬에 전달 됩니다. httpd
예를 들어 대체 구성 파일을 읽도록 할 수 있습니다.
httpd_flags=-f /etc/httpd.conf.local
rcctl
/etc/rc.conf.local
다음과 같이 수정할 수 있습니다 .
# rcctl set httpd flags -f /etc/httpd.conf.local
에디터를 이용해 직접 rcctl
수정하는 것보다 활용하는 것이 더 좋습니다 ./etc/rc.conf.local
답변2
비슷한 문제가 발생할 수 있는 다른 사람들이 나중에 참조할 수 있도록 rcctl에서 로그를 얻는 가장 쉬운 방법은 do 를 수행하는 것입니다. rcctl -d start httpd
이는 적어도 문제를 진단하는 데 도움이 됩니다.
답변3
Kusalananda가 지적했듯이 /etc/rc.conf에는 다음이 포함되어야 합니다.
httpd_flags=NO
/etc/rc.conf.local에는 다음이 포함됩니다.
httpd_flags=
httpd 또는 httpd가 아닌 항목을 활성화하여 비활성화합니다.