Solaris 11.4에서 아파치(Apache) 웹 서버를 기동하는 방법은 기본적으로 Solaris의 서비스 관리 프레임워크인 **SMF(Service Management Facility)**를 사용합니다. Solaris 11.4에는 보통 Apache 2.4 버전이 기본으로 포함되어 있습니다.
가장 빠르고 표준적인 방법은 다음과 같습니다.
1. 서비스 이름 확인
먼저 시스템에 등록된 아파치 서비스의 정확한 이름을 확인합니다.
svcs -a | grep apache
- 보통 svc:/network/http:apache24와 같은 형식으로 출력됩니다.
2. 아파치 기동 및 관리 명령어
SMF 명령어인 svcadm을 사용하여 서비스를 제어합니다. (루트 권한 또는 sudo가 필요합니다.)
| 작업 | 명령어 |
| 서비스 기동 (시작) | svcadm enable apache24 |
| 서비스 중지 | svcadm disable apache24 |
| 서비스 재시작 | svcadm restart apache24 |
| 상태 확인 | svcs apache24 |
- 참고: enable 명령어를 사용하면 시스템이 재부팅된 후에도 아파치가 자동으로 시작되도록 설정됩니다.
3. 상태 확인 및 트러블슈팅
서비스가 정상적으로 online 상태가 되었는지 확인합니다.
svcs -x apache24
만약 상태가 maintenance로 나온다면 설정 파일 오류나 포트 충돌일 가능성이 높습니다. 이 경우 로그 파일을 확인해야 합니다.
- 로그 파일 위치: /var/svc/log/network-http:apache24.log
- 설정 파일 위치: /etc/apache2/2.4/httpd.conf (버전에 따라 경로가 다를 수 있음)
4. 전통적인 방식 (apachectl)
SMF를 통하지 않고 아파치 바이너리에 포함된 제어 스크립트를 직접 사용할 수도 있습니다. (주로 설정 테스트용으로 사용 권장)
/usr/apache2/2.4/bin/apachectl start
추가 팁: 처음 기동하시는 것이라면 /etc/apache2/2.4/httpd.conf 파일에서 ServerName이나 Listen 포트 설정이 올바른지 먼저 확인해 보세요.
혹시 특정 오류 메시지가 발생하여 기동이 되지 않는 상황인가요? 상세 상황을 알려주시면 더 구체적으로 도와드릴 수 있습니다.
"svc:/system/apache-stats-24:default" 를 enable하면 상태가 offline 되는 이유?
Solaris 11.4에서 svc:/system/apache-stats-24:default 서비스가 enable을 했음에도 offline 상태에 머무는 가장 큰 이유는 이 서비스가 감시할 아파치 인스턴스가 설정되지 않았기 때문입니다.
이 서비스는 단순히 아파치를 띄우는 서비스가 아니라, 실행 중인 아파치 서버의 로그와 상태 페이지를 읽어 **통계(StatsStore)**로 변환해주는 '통계 제공자(Statistics Provider)' 역할을 합니다.
구체적인 원인과 해결 방법은 다음과 같습니다.
1. 주요 원인: "모니터링 대상 부재"
Solaris 11.4의 apache-stats 매뉴얼에 따르면, 이 서비스는 설정된 아파치 인스턴스가 없을 경우 스스로를 일시 정지(Temporarily disable/Offline) 시키도록 설계되어 있습니다.
- 설정 미비: 아파치 2.4 서비스(svc:/network/http:apache24)는 활성화되어 있지만, apache-stats 서비스에 어떤 인스턴스를 모니터링할지 속성(Property)이 정의되지 않았을 때 발생합니다.
- 상태 페이지 비활성화: 아파치 설정(httpd.conf)에서 mod_status가 활성화되어 있지 않아 통계 데이터를 가져올 수 없는 경우입니다.
2. 해결 방법: 서비스 설정 확인 및 구성
단계 1: 상세 오류 원인 확인
가장 먼저 SMF 시스템이 말하는 이유를 직접 확인하세요.
svcs -xv apache-stats-24
- 만약 "Reason: Dependency ... is absent" 또는 "Temporarily disabled"와 같은 메시지가 나온다면 설정 문제입니다.
- 로그 파일을 확인하여 더 자세한 내용을 봅니다: svcs -L apache-stats-24
단계 2: 모니터링할 아파치 인스턴스 지정
apache-stats 서비스가 어떤 아파치를 감시할지 속성을 설정해야 합니다. (기본 인스턴스가 apache24인 경우)
# 아파치 인스턴스 속성 설정
svccfg -s apache-stats-24 setprop config/instances = "apache24"
# 설정 변경 사항 반영
svccfg -s apache-stats-24 refresh
# 서비스 재시작
svcadm restart apache-stats-24
단계 3: 아파치 mod_status 활성화 확인
apache-stats는 아파치의 server-status 페이지를 통해 정보를 수집합니다. /etc/apache2/2.4/httpd.conf 파일에 아래와 같은 설정이 포함되어 있고 주석이 해제되어 있는지 확인하세요.
<Location "/server-status">
SetHandler server-status
Require local
</Location>
이후 아파치를 재시작합니다: svcadm restart apache24
요약: 상태 비교
| 서비스 상태 | 의미 |
| online | 정상적으로 아파치 데이터를 수집하여 통계 저장소(sstore)에 기록 중 |
| offline | 서비스는 켜졌으나(Enabled), 감시할 대상이 없거나 설정이 누락되어 대기 중 |
| maintenance | 설정 오류나 실행 스크립트 결함으로 인해 기동 실패 |
추가 조치: 만약 통계 기능이 꼭 필요한 상황이 아니라면, 이 서비스가 offline이라고 해서 실제 웹 서비스(apache24)에 영향이 가지는 않으므로 그대로 두셔도 무방합니다.
기능을 반드시 활성화해야 한다면, 위에서 언급한 svcs -L 로그 내용을 공유해 주시면 더 정확한 수정 방법을 안내해 드릴 수 있습니다.
"svc:/network/http:apache24"가 maintenance 인 이유?
"svc:/network/http:apache24"가 maintenance 인 이유? 해결 방법은? 재설치 해야 하나?
Solaris에서 서비스가 maintenance 상태가 되는 것은 시스템이 해당 서비스를 기동하려 했으나 연속적으로 실패하여, 더 큰 장애를 막기 위해 기동 시도를 중단했다는 뜻입니다.
재설치는 최후의 수단입니다. 대부분 설정 오류나 권한 문제이므로 아래 순서대로 진단하고 해결해 보세요.
1. 원인 분석 (진단)
가장 먼저 시스템이 기록한 구체적인 에러 메시지를 확인해야 합니다.
- 진단 명령어:이 명령어를 치면 Reason: ... 항목에 왜 실패했는지와 함께 로그 파일 경로가 나옵니다.
-
Bash
svcs -xv apache24 - 상세 로그 확인:
-
Bash
# 위 출력에서 나온 로그 파일 경로를 확인 (예시) tail -n 50 /var/svc/log/network-http:apache24.log
2. 대표적인 원인 TOP 3
대부분의 maintenance는 다음 중 하나 때문입니다.
- 설정 파일(httpd.conf) 문법 오류: 최근 설정을 수정했다면 오타나 잘못된 지시어가 원인일 수 있습니다.
- 포트 충돌: 아파치가 사용하려는 포트(예: 80번)를 다른 프로세스가 이미 사용 중인 경우입니다.
- 권한 문제: 로그 파일이나 SSL 인증서 파일에 아파치 실행 계정(webservd)이 접근할 수 없는 경우입니다.
3. 해결 절차
단계 1: 설정 파일 문법 검사
SMF를 거치지 않고 아파치 자체 도구로 설정을 검사합니다.
/usr/apache2/2.4/bin/apachectl configtest
- Syntax OK가 나오면 설정 파일은 정상입니다.
- 에러가 나온다면 해당 줄(Line)을 수정해야 합니다.
단계 2: 에러 수정 후 서비스 복구 (Clear)
문제를 수정한 후에는 반드시 clear 명령어로 "나 이제 고쳤으니 다시 시도해봐"라고 알려줘야 합니다. 단순히 enable만 해서는 안 됩니다.
# 1. 유지보수 상태 해제 (매우 중요)
svcadm clear apache24
# 2. 서비스 기동
svcadm enable apache24
# 3. 상태 재확인
svcs apache24
4. 재설치가 필요 없는 이유
Solaris의 maintenance 상태는 소프트웨어가 깨진 것보다는 환경 설정 문제인 경우가 99%입니다. 재설치를 해도 설정 파일(httpd.conf)을 그대로 둔다면 똑같은 증상이 반복됩니다.
[!TIP] 포트 충돌 확인 방법: netstat -an | grep 80을 입력하여 80번 포트가 이미 사용 중인지 확인해 보세요.
svcs -xv apache24 명령어를 실행했을 때 나오는 구체적인 Reason 문구를 알려주시면 바로 정답을 찾아드릴 수 있습니다. 어떤 메시지가 나오나요?
실패 이유가 "reason: start method exited with $SMF_EXIT_ERR_FATAL." 이다. 해결 방법은?
$SMF_EXIT_ERR_FATAL은 아파치 프로세스가 시작 도중 치명적인 오류를 만나 즉시 종료되었음을 의미합니다. 이 에러는 주로 설정 파일의 심각한 오류나 시스템 리소스(포트, 파일 권한) 문제로 발생합니다.
재설치 없이 아래의 3단계 해결 과정을 따라가 보시기 바랍니다.
1단계: 아파치 자체 도구로 상세 에러 파악
SMF 로그 파일보다 아파치의 configtest 기능이 더 명확한 이유를 알려줍니다. 아래 명령어를 실행하세요.
/usr/apache2/2.4/bin/apachectl configtest
나올 수 있는 주요 에러 메시지와 조치:
- AH00526: Syntax error on line ...: 해당 라인의 오타나 잘못된 지시어를 수정해야 합니다.
- Address already in use: AH00072: make_sock: could not bind to address [::]:80: 80번 포트를 다른 프로세스가 사용 중입니다. netstat -an | grep 80으로 확인하세요.
- AH00094: Command line: '/usr/apache2/2.4/bin/httpd -D FOREGROUND': 이 메시지 뒤에 나오는 권한(Permission denied) 오류를 확인하세요.
2단계: 로그 파일에서 실질적인 에러 라인 찾기
svcs -xv에서 알려준 로그 파일의 가장 마지막 부분을 다시 확인해야 합니다.
tail -n 20 $(svcs -L apache24)
여기서 [error] 또는 [crit]라고 적힌 줄을 찾으세요. 보통 다음과 같은 내용이 적혀 있습니다:
- DefaultRuntimeDir /var/run/apache2/2.4 does not exist (디렉토리 누락)
- Cannot open /etc/apache2/2.4/httpd.conf for reading (권한 문제)
3단계: 권한 및 디렉토리 복구
Solaris 11.4에서 아파치는 기본적으로 webservd 계정으로 실행됩니다. 만약 로그 파일이나 설정 파일의 소유권이 꼬여있다면 FATAL 에러가 발생합니다.
# 로그 및 런타임 디렉토리 권한 확인
chown -R webservd:webservd /var/apache2/2.4/logs
chown -R webservd:webservd /var/run/apache2/2.4 (존재하지 않으면 생성)
4단계: 서비스 복구 (Clear & Start)
문제를 해결한 후에는 반드시 상태를 초기화해야 다시 기동됩니다.
# 1. 유지보수 상태 해제
svcadm clear apache24
# 2. 서비스 시작
svcadm enable apache24
# 3. 상태 확인
svcs apache24
요약: 왜 FATAL이 떴을까?
대부분 "포트 중복" 혹은 "잘못된 SSL 설정(인증서 파일 경로 오류)" 때문입니다. 만약 최근에 SSL 설정을 건드리셨다면 인증서 파일(SSLCertificateFile)의 경로가 올바른지, 파일에 읽기 권한이 있는지 꼭 확인해 보세요.
apachectl configtest 결과 화면을 복사해서 보여주시면 바로 어떤 부분을 수정해야 할지 짚어드릴 수 있습니다. 결과가 어떻게 나오나요?
재설치 해야 하나? 재설치 방법은?
다시 한번 강조드리지만, Solaris에서 아파치가 maintenance 상태인 경우 재설치로 해결될 가능성은 매우 낮습니다. 윈도우와 달리 Solaris의 패키지 삭제 후 재설치는 기존 설정 파일(/etc/apache2/2.4/httpd.conf)을 그대로 남겨두거나, 설정 오류의 원인인 환경(포트, 권한)을 해결해주지 않기 때문입니다.
하지만 시스템 파일 자체가 손상되었다고 의심되거나, 깨끗한 상태에서 다시 시작하고 싶으시다면 아래의 재설치(재구성) 절차를 따르십시오.
1. 아파치 패키지 재설치 방법
Solaris 11.4는 pkg 명령어를 사용합니다.
# 1. 기존 서비스 중지 및 삭제
svcadm disable -s apache24
pkg uninstall apache-24
# 2. 패키지 다시 설치
pkg install apache-24
# 3. 서비스 기동
svcadm enable apache24
주의: pkg uninstall을 해도 /etc/apache2/2.4에 있는 사용자 설정 파일은 보존될 수 있습니다.
2. 재설치보다 효과적인 "설정 초기화"
만약 설정이 꼬여서 발생하는 문제라면, 패키지를 지우는 것보다 기본 설정 파일로 되돌리는 것이 훨씬 빠르고 확실합니다.
# 1. 현재 설정 백업
mv /etc/apache2/2.4/httpd.conf /etc/apache2/2.4/httpd.conf.bak
# 2. 원본 샘플 파일로 교체 (Solaris는 보통 .original 또는 샘플 파일을 제공합니다)
cp /etc/apache2/2.4/httpd.conf.example /etc/apache2/2.4/httpd.conf
# (만약 위 경로에 없다면 /etc/apache2/2.4/samples/ 아래를 확인하세요)
# 3. 서비스 클리어 및 재시작
svcadm clear apache24
svcadm enable apache24
3. 마지막으로 꼭 확인해야 할 점 (재설치 전 필독)
$SMF_EXIT_ERR_FATAL 에러가 나면서 재설치까지 고려 중이시라면, 다음 두 가지만 마지막으로 체크해 보세요. 이 문제가 해결되지 않으면 재설치를 백 번 해도 똑같이 maintenance로 빠집니다.
- 로그 디렉토리 존재 여부:디렉토리가 없으면 mkdir -p /var/apache2/2.4/logs로 생성해야 합니다.
-
Bash
ls -ld /var/apache2/2.4/logs - 포트 점유 확인:만약 결과에 LISTEN 상태가 있다면 다른 프로세스가 80번 포트를 잡고 있는 것입니다. 그 프로세스를 죽이거나 아파치 포트를 바꿔야 합니다.
-
Bash
netstat -an | grep .80
추천하는 다음 단계
지금 바로 **cat /var/svc/log/network-http:apache24.log**의 마지막 10줄을 복사해서 보여주실 수 있나요?
그 로그 안에 "Permission denied", "Address already in use", "Cannot open file" 같은 진짜 이유가 적혀 있습니다. 그걸 보면 재설치 없이 1분 만에 고칠 수 있습니다.
apache 서비스 기동 확인 방법?
Solaris 11.4 환경에서 아파치(Apache) 서비스가 정상적으로 기동되었는지 확인하는 방법은 여러 층위에서 가능합니다. 서비스 관리자(SMF) 관점, 프로세스 관점, 그리고 네트워크 응답 관점에서 확인하는 것이 가장 확실합니다.
1. SMF 서비스 상태 확인 (가장 권장)
Solaris의 표준 서비스 관리 도구인 svcs를 사용하여 서비스가 online 상태인지 확인합니다.
svcs apache24
- 정상 상태: STATE 열에 **online**이라고 표시되어야 합니다.
- 비정상 상태: maintenance, offline, disabled로 표시된다면 문제가 있는 것입니다.
상세한 정보를 보고 싶다면 -l 옵션을 사용하세요:
svcs -l apache24
2. 실행 중인 프로세스 확인
서비스 상태가 online이라도 실제로 프로세스가 떠 있는지 ps 명령어로 더블 체크할 수 있습니다.
ps -ef | grep httpd
- /usr/apache2/2.4/bin/httpd 프로세스가 여러 개(부모 1개와 여러 개의 자식 프로세스) 보인다면 정상입니다.
3. 네트워크 포트 리스닝 확인
아파치가 설정된 포트(기본 80번 또는 443번)를 정상적으로 점유하고 있는지 확인합니다.
netstat -an | grep .80 | grep LISTEN
- 결과 행이 존재하고 끝에 LISTEN이 표시된다면, 외부 요청을 받을 준비가 된 것입니다.
4. 웹 페이지 응답 확인 (로컬 테스트)
서버 내부에서 직접 웹 페이지 호출을 시도하여 응답이 오는지 확인합니다. Solaris 11.4에는 curl이 기본 포함되어 있습니다.
curl -I http://localhost
- 정상 응답: HTTP/1.1 200 OK
- 만약 Connection refused가 뜬다면 서비스가 응답하지 않는 상태입니다.
5. 한눈에 보는 요약 표
| 확인 대상 | 명령어 | 정상 지표 |
| 서비스 상태 | svcs apache24 | online |
| 프로세스 | `ps -ef | grep httpd` |
| 포트(Port) | `netstat -an | grep .80` |
| 응답(HTTP) | curl -I localhost | 200 OK |
트러블슈팅 팁
만약 위 확인 과정에서 문제가 발견된다면, 아파치 에러 로그를 직접 확인하는 것이 가장 빠릅니다.
- 아파치 에러 로그: tail -f /var/apache2/2.4/logs/error_log
- SMF 서비스 로그: tail -f $(svcs -L apache24)
현재 svcs apache24를 입력했을 때 어떤 상태(STATE)가 출력되나요? 상태에 따라 다음 조치 방법을 안내해 드릴 수 있습니다.
apache24 htdoc 또는 index.html 폴더 위치 확인 방법
Solaris 11.4에서 아파치 2.4의 기본 웹 문서 경로(DocumentRoot)와 index.html 위치를 찾는 방법은 크게 세 가지가 있습니다.
1. 기본 경로 직접 확인 (Solaris 표준)
Solaris 11.4 패키지로 설치된 아파치의 기본 경로는 다음과 같습니다.
- 기본 폴더 (DocumentRoot): /var/apache2/2.4/htdocs
- 기본 인덱스 파일: /var/apache2/2.4/htdocs/index.html
2. 설정 파일(httpd.conf)에서 확인 (가장 확실한 방법)
관리자가 경로를 변경했을 수도 있으므로, 현재 실행 중인 설정 파일을 통해 확인하는 것이 가장 정확합니다.
grep -i "DocumentRoot" /etc/apache2/2.4/httpd.conf
- 출력 예시: DocumentRoot "/var/apache2/2.4/htdocs" 라고 출력되는 부분이 실제 폴더 위치입니다.
또한, DirectoryIndex를 검색하면 첫 페이지로 사용되는 파일명을 확인할 수 있습니다.
grep -i "DirectoryIndex" /etc/apache2/2.4/httpd.conf
- 출력 예시: DirectoryIndex index.html index.php
3. 아파치 명령어로 확인
명령어 한 줄로 설정된 모든 가상 호스트와 문서 경로를 확인할 수 있습니다.
/usr/apache2/2.4/bin/httpd -S | grep Main
또는 전체 컴파일 설정을 확인합니다.
/usr/apache2/2.4/bin/httpd -V | grep HTTPD_ROOT
4. 파일 찾기 명령어 사용
만약 어디에 있는지 도저히 찾을 수 없다면 시스템 전체에서 index.html을 검색할 수 있습니다.
find /var/apache2 -name "index.html"
요약 및 팁
| 항목 | 기본 위치 (Solaris 11.4) |
| 설정 파일 | /etc/apache2/2.4/httpd.conf |
| 웹 콘텐츠 (htdocs) | /var/apache2/2.4/htdocs/ |
| 로그 파일 | /var/apache2/2.4/logs/ |
만약 파일을 찾았는데 브라우저에서 접속했을 때 403 Forbidden 에러가 난다면? 해당 폴더와 파일의 권한이 webservd 계정에서 읽을 수 있도록 설정되어 있는지 확인하세요.
ls -ld /var/apache2/2.4/htdocs
# 권한이 부족하다면:
# chmod 755 /var/apache2/2.4/htdocs
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
| solaris11.4에서 mysql 서비스 기동 (0) | 2026.01.21 |
|---|---|
| MySQL ERROR 1045 (28000): Access denied for user 'root' @'localhost ' (using password: YES) 오류 해결 (0) | 2026.01.21 |
| Mysql 설치방법 + 초기 비밀번호 설정 (0) | 2026.01.17 |
| Oracle Solaris 11.4 환경에서 MySQL의 설치 여부를 확인 (0) | 2026.01.16 |
| Solaris에서 PostgreSQL 서비스는 SMF(Service Management Facility)를 통해 관리 (0) | 2026.01.16 |