반응형
개요
윈도우 에서 아파치 웹 서버를 등록하고, 시작/종료 하는 배치 스크립트 입니다.
압축 파일로 내려받은 경우, installer 를 안 거쳤기 때문에, 윈도우 서비스 에 등록되어 있지 않습니다. 이 경우에 커맨드 명령어를 통해서 '윈도우 서비스'에 등록할 수 있습니다.
본문
이 배치 파일에서는
echo 0. 서비스 등록여부 확인
echo 1. 서비스 등록하기
echo 2. 서비스 등록 해제하기
echo 3. 등록된 아파치 서비스 시작
echo 4. 등록된 아파치 서비스 종료
echo 5. 커맨드 종료
와 같은 키를 넣어두었습니다. 실행하고 해당 번호를 입력하면 됩니다.
소스 코드 내에서는
set SERVICE_NAME=httpd-2.4.33
와 같은 부분이 있는데, 등록될 '서비스' 명을 수정할 수 있습니다.
실행할 때에는 httpd 최상위 폴더 에 복사해놓고 '관리자 모드로 실행' 하시면 됩니다.
소스 코드
전체 소스는 아래와 같습니다.
@echo off
setlocal
REM ====================================
REM 환경설정 부분
REM ====================================
set SERVICE_NAME=httpd-2.4.33
REM ====================================
REM 구문 시작
REM ====================================
REM 창 색상 및 크기 지정
mode con cols=60 lines=20
COLOR 3F
REM 현재 경로로 이동
PUSHD "%~DP0"
REM ====================================
REM 경로 설정
REM ====================================
REM httpd.exe 의 경로를 찾기
set CURPATH=%~DP0
set APPPATH=%CURPATH%
:SELECTION
cls
echo ==========================================
echo ★ Apache Web Server Service Add/Remover ★
echo Author : Hong seok-hoon
echo version : 1.0.0
echo ==========================================
echo (선택항목)
echo 0. 서비스 등록여부 확인
echo 1. 서비스 등록하기
echo 2. 서비스 등록 해제하기
echo 3. 등록된 아파치 서비스 시작
echo 4. 등록된 아파치 서비스 종료
echo 5. 커맨드 종료
echo.
set CHOICE=
CALL NET SESSION >nul 2>&1
IF NOT %ERRORLEVEL% == 0 (
echo 관리자권한이 필요 합니다. 관리자모드 로 재시작해주세요.
goto EXITPROG
)
set /p CHOICE=작업할 번호를 입력해주세요 :
if "%CHOICE%" == "" goto :SELECTION
if %CHOICE% == 0 (
goto CHECK
)
if %CHOICE% == 1 (
goto INSTALL
)
if %CHOICE% == 2 (
goto REMOVE
)
if %CHOICE% == 3 (
goto SERVICE_START
)
if %CHOICE% == 4 (
goto SERVICE_STOP
)
if %CHOICE% == 5 (
goto EXITPROG
)
REM ==========================================
REM 서비스 등록 확인
REM ==========================================
:CHECK
sc query "%SERVICE_NAME%" >nul
if "%ERRORLEVEL%" == "0" (
echo 아파치 웹서버가 설치되어 있습니다.
timeout /t 60
goto SELECTION
) else (
echo 아파치 웹서버가 아직 설치되지 않았습니다.
timeout /t 60
goto SELECTION
)
REM ==========================================
REM 서비스 등록
REM ==========================================
:INSTALL
REM 설치 여부 확인
sc query "%SERVICE_NAME%" >nul
if "%ERRORLEVEL%" == "0" (
echo 아파치 웹서버가 이미 등록되어있습니다.
timeout /t 60
goto SELECTION
)
REM 설치 진행
"%APPPATH%\bin\httpd" -n "%SERVICE_NAME%" -k install
if "%ERRORLEVEL%"=="0" (
CLS
echo ======================================
echo 아파치 웹서버가 시스템 서비스에 '등록' 되였습니다.
echo ======================================
) else (
echo ======================================
echo 아파치 웹서버 등록 과정 중에 오류가 발생하였습니다.
echo ======================================
)
timeout /t 60
goto SELECTION
REM ==========================================
REM 서비스 등록 해제
REM ==========================================
:REMOVE
sc query "%SERVICE_NAME%" >nul
if "%ERRORLEVEL%" == "0" (
"%APPPATH%\bin\httpd" -n "%SERVICE_NAME%" -k stop
"%APPPATH%\bin\httpd" -n "%SERVICE_NAME%" -k uninstall
if "%ERRORLEVEL%"=="0" (
cls
echo ======================================
echo 아파치 웹서버가 시스템 서비스에서 '등록해제' 되였습니다.
echo ======================================
) else (
cls
echo ======================================
echo 아파치 웹서버 등록해제 과정 중에 오류가 발생하였습니다.
echo ======================================
)
) else (
echo 아파치 웹서버가 이미 서비스 등록되어있지 않습니다.
)
timeout /t 60
goto SELECTION
REM ==========================================
REM 서비스 시작
REM ==========================================
:SERVICE_START
sc query "%SERVICE_NAME%" >nul
if "%ERRORLEVEL%" == "0" (
"%APPPATH%\bin\httpd" -n "%SERVICE_NAME%" -k start
echo 아파치 웹서버를 시작합니다.
) else (
echo 아파치 웹서버가 이미 서비스 등록되어있지 않습니다.
)
timeout /t 60
goto SELECTION
REM ==========================================
REM 서비스 종료
REM ==========================================
:SERVICE_STOP
sc query "%SERVICE_NAME%" >nul
if "%ERRORLEVEL%" == "0" (
"%APPPATH%\bin\httpd" -n "%SERVICE_NAME%" -k stop
echo 아파치 웹서버를 종료합니다.
) else (
echo 아파치 웹서버가 이미 서비스 등록되어있지 않습니다.
)
timeout /t 60
goto SELECTION
:EXITPROG
timeout /t 60
이 코드는 git 에도 올려두었습니다.
반응형
'내가 만든 것 > 스크립트 Scripts' 카테고리의 다른 글
[윈도우 Batch-Script, Powershell] 압축백업 배치 스크립트 (수정 2019-03-14) (0) | 2015.12.30 |
---|---|
[윈도우 Batch-Script] hosts 에 도메인 지정하기. (개발자용)(업데이트 2019-03-05) (0) | 2015.12.29 |
[윈도우 Batch-Script] 토렌트파일 삭제 배치파일 (0) | 2015.09.28 |
[울트라에디트 UltraEdit 매크로] 줄앞뒤로 쌍따옴표 매크로 (0) | 2012.10.25 |
[마이크로소프트 워드 매크로] 표에서 오른쪽 라인 추가 (0) | 2010.05.25 |
[마이크로소프트 워드 매크로] 라인 삭제 매크로 (0) | 2010.05.25 |
[파워포인트 매크로] 이미지 크기 조절 매크로 (3) | 2010.05.25 |