[linux] httpd 명령어
로빈아빠
본문
httpd 명령어
출처 : 리눅스포털 -수퍼유저코리아-
여러분들도 아시겠지만 httpd는 리눅스 명령어는 아니라 아파치의 데몬실행파일입니다.
하지만 리눅스가 웹서버로 사용될때에는 거의 필수적으로 사용되는 것이므로 서버관리자는 꼭 확인해 보아야할 파일입니다.
따라서 필자는 리눅스 서버관리자가 알아야하는 명령어에 포함시키고 이를 설명하는 것입니다.
또한 여기서 설명되는 아파치는 RPM버전의 아파치가 아니라 소스를 컴파일하여 사용하는 아파치를 대상으로 한 것입니다.
그리고 아파치의 설치위치는 /usr/local/apache임을 알려둡니다.
사용옵션
-D name : <IfDefine name> 지시자에서 사용되는 이름을 정의함. -d directory : 아파치실행시에 아파치의 Root 경로를 따로 지정해 줄 수 있음. -f file : 아파치 설정파일을 직접 지정해 줄 수 있음. -C "directive" : 아파치 설정파일을 읽기 전의 process directive -c "directive" : 아파치 설정파일을 읽은 후의 process directive -v : 아파치의 버전을 보여줌. -V : 컴파일시 사용했던 옵션을 보여줌. -h : httpd 실행시 사용할 수 있는 옵션들의 도움말을 보여줌. -l : 컴파일시 사용했던 모듈들을 보여줌. -L : 설정가능한 지시자를 보여줌. -S : 설정되어있는 가상호스트를 보여줌. -t : 설정파일(httpd.conf)파일의 문법적인 체크를 할 수 있음. -T : DocumentRoot 항목체크는 제외하고 설정파일의 문법적인 테스트함.
사용예 #1
설정파일을 지정하여 아파치를 실행합니다.
아파치는 아파치 실행시크립트인 apachectl을 이용하여 실행을 시킵니다.
apachectl은 기본위치에 존재하는 httpd.conf을 기본으로 사용하여 아파치를 실행합니다.
여기서 설명하는 -f옵션은 기본 설정파일이 아닌 다른 아파치설정파일을 이용하여 아파치를 실행시키고자 할때에 사용하는 것입니다.
주로 하나의 아파치에 두개이상의 설정파일을 용도별로 사용하고자할때 사용합니다.
다음은 /usr/local/apache/conf2/httpd.conf 아파치설정파일을 이용하여 아파치를 실행하는 예입니다.
[root@host3 bin]# ./httpd -f /usr/local/apache/conf2/httpd.conf [root@host3 bin]# [root@host3 bin]# ps -ef | grep httpd root 32170 1 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32171 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32172 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32173 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32174 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32175 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf [root@host3 bin]#
사용예 #2
-d옵션은 홈디렉토리(ServerRoot)를 지정하여 아파치를 실행하고자 할 때 사용합니다.
즉, 아파치 실행시에 서버루트(ServerRoot)를 지정하여 실행시킵니다.
[root@host3 bin]# ./httpd -d /usr/local/apache [root@host3 bin]# [root@host3 bin]# ps -ef | grep http root 32184 1 3 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32185 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32186 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32187 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32188 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32189 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache [root@host3 bin]#
사용예 #3
-v옵션은 현재 실행중인 아파치의 버전과 컴파일된 시간을 확인해 줍니다.
아래의 예를 보면 현재 실행중인 아파치의 버전이 1.3.28이라는 것과 컴파일된 시간이 2003년 10월 1일 오후 17시라는 것을 알려주고 있습니다.
[root@host3 bin]# ./httpd -v Server version: Apache/1.3.28 (Unix) Server built: Oct 1 2003 17:00:20 [root@host3 bin]#
사용예 #4
-V옵션은 아파치를 컴파일하여 설치한 설정내용을 확인시켜줍니다.
아래의 예를 보시면 아파치의 기본적인 설치내용과 설치위치등을 확인할 수 있습니다.
[root@host3 bin]# ./httpd -V Server version: Apache/1.3.28 (Unix) Server built: Oct 1 2003 17:00:20 Server's Module Magic Number: 19990320:15 Server compiled with.... -D HAVE_MMAP -D HAVE_SHMGET -D USE_SHMGET_SCOREBOARD -D USE_MMAP_FILES -D HAVE_FCNTL_SERIALIZED_ACCEPT -D HAVE_SYSVSEM_SERIALIZED_ACCEPT -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D DYNAMIC_MODULE_LIMIT=64 -D HARD_SERVER_LIMIT=1024 -D HTTPD_ROOT="/usr/local/apache" -D SUEXEC_BIN="/usr/local/apache/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard" -D DEFAULT_LOCKFILE="logs/httpd.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf" [root@host3 bin]#
사용예 #5
-l옵션은 아파치에 설치되어 현재 사용가능한 아파치모듈들 확인시켜 줍니다.
주로 운용중인 아파치모듈을 확인하고자 할때 사용합니다.
즉, 필요한 모듈이 아파치에 설정되어 있는가를 확인할 수 있습니다.
간단한 예로서 아래 결과의 맨 아래에 있는 mod_php4.c를 보면 현재 아파치에는 php4버전이 모듈로 들어있는 것을 알 수 있습니다.
[root@host3 bin]# ./httpd -l Compiled-in modules: http_core.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_status.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_userdir.c mod_alias.c mod_access.c mod_auth.c mod_setenvif.c mod_php4.c [root@host3 bin]#
사용예 #6
-L옵션은 현재 아파치의 아파치 설정지시자(configuration directives) 확인할 수 있습니다.
아파치에는 많은 설정지시자가 있으며 아래 결과는 그 일부분입니다.
만약 특정 지시가를 확인코자 한다면 "./httpd -L | grep 지시자명"과 같이 사용하시면 됩니다.
[root@host3 bin]# ./httpd -L <Directory (http_core.c) Container for directives affecting resources located in the specified directories Allowed in *.conf only outside <Directory>, <Files> or <Location> </Directory> (http_core.c) Marks end of <Directory> Allowed in *.conf only inside <Directory>, <Files> or <Location> <Location (http_core.c) Container for directives affecting resources accessed through the specified URL paths Allowed in *.conf only outside <Directory>, <Files> or <Location> </Location> (http_core.c) Marks end of <Location> Allowed in *.conf only inside <Directory>, <Files> or <Location> <VirtualHost (http_core.c) Container to map directives to a particular virtual host, takes one or more host addresses Allowed in *.conf only outside <Directory>, <Files> or <Location> </VirtualHost> (http_core.c) Marks end of <VirtualHost> Allowed in *.conf only outside <Directory>, <Files> or <Location> <Files (http_core.c) Container for directives affecting files matching specified patterns Allowed in *.conf anywhere and in .htaccess when AllowOverride isn't None </Files> (http_core.c)
사용예 #7
-S옵션은 아파치에 설정된 가상호스트를 확인해 줍니다.
가상호스트는 httpd.conf파일의 맨 마지막에 설정되는 것으로 직접 httpd.conf파일을 vi로 열어서 확인해 보면 알 수 있지만 현재 운용중인 아파치에 설정되어 있는 가상호스트를 확인하고자 한다면 아래와 같이 -S옵션을사용하시기 바랍니다.
[root@host3 bin]# ./httpd -S VirtualHost configuration: 192.168.0.113 :80 is a NameVirtualHost default server www.115.co.kr (/usr/local/apache/conf/httpd.conf:1036) port 80 namevhost www.115.co.kr (/usr/local/apache/conf/httpd.conf:1036) port 80 namevhost ftp.superuser.co.kr (/usr/local/apache/conf/httpd.conf:1052) port 80 namevhost mall.superuser.co.kr (/usr/local/apache/conf/httpd.conf:1058) port 80 namevhost www.owner.co.kr (/usr/local/apache/conf/httpd.conf:1064) port 80 namevhost www.woongsang.com (/usr/local/apache/conf/httpd.conf:1071) [root@host3 bin]#
사용예 #8
아파치의 설정파일인 httpd.conf의 문법을 검사하는 옵션으로 -t를 사용합니다.
이 옵션은 DocumentRoot에 설정된 값의 유효성을 확인하면서 아파치설정파일(httpd.conf)의 문법을 검사합니다.
아래의 결과를 보다시피 현재 httpd.conf의 문법은 DocumentRoot지시자의 내용을 포함하여 아무런 이상이 없음을 알 수 있습니다.
[root@host3 bin]# ./httpd -t Syntax OK [root@host3 bin]#
사용예 #9
아파치의 설정파일인 httpd.conf의 문법을 검사하는 옵션으로 -T를 사용합니다.
이 옵션은 DocumentRoot에 설정된 값의 유효성은 제외한채 아파치설정파일(httpd.conf)의 문법을 검사합니다.
아래의 결과를 보다시피 현재 httpd.conf의 문법은 정상임을 나타내고 있으나 DocumentRoot에 설정된 값들은 검사하지 않았으므로 그 유효성에 대한 보증은 하지 못합니다.
[root@host3 bin]# ./httpd -T Syntax OK [root@host3 bin]#
사용예 #10
httpd의 실행옵션을 확인하는 옵션은 -h옵션입니다.
httpd실행을 일반적인 실행외에 별도의 옵션을 주어서 실행하고자 할 때에 이 옵션으로 사용할 옵션을 한 번 확인해 보면 도움이 됩니다.
[root@host3 bin]# ./httpd -h Usage: ./httpd [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"] [-v] [-V] [-h] [-l] [-L] [-S] [-t] [-T] [-F] Options: -D name : define a name for use in <IfDefine name> directives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled-in modules -L : list available configuration directives -S : show parsed settings (currently only vhost settings) -t : run syntax check for config files (with docroot check) -T : run syntax check for config files (without docroot check) -F : run main process in foreground, for process supervisors [root@host3 bin]#
이상으로 httpd의 실행옵션에 대한 설명을 마무리합니다.
아파치를 일반적인 방법으로만 실행한다면 이 설명은 별다른 도움이 되지 못할 것입니다.
하지만, httpd.conf의 문법검사, 또는 아파치의 httpd.conf파일을 용도별로 사용하여 실행하는 방법, 그리고 아파치 모듈확인, 아파치 가상호스트확인등을 하기 위해서는 반드시 알고있어야할 것입니다.
출처 : 리눅스포털 -수퍼유저코리아-
여러분들도 아시겠지만 httpd는 리눅스 명령어는 아니라 아파치의 데몬실행파일입니다.
하지만 리눅스가 웹서버로 사용될때에는 거의 필수적으로 사용되는 것이므로 서버관리자는 꼭 확인해 보아야할 파일입니다.
따라서 필자는 리눅스 서버관리자가 알아야하는 명령어에 포함시키고 이를 설명하는 것입니다.
또한 여기서 설명되는 아파치는 RPM버전의 아파치가 아니라 소스를 컴파일하여 사용하는 아파치를 대상으로 한 것입니다.
그리고 아파치의 설치위치는 /usr/local/apache임을 알려둡니다.
사용옵션
-D name : <IfDefine name> 지시자에서 사용되는 이름을 정의함. -d directory : 아파치실행시에 아파치의 Root 경로를 따로 지정해 줄 수 있음. -f file : 아파치 설정파일을 직접 지정해 줄 수 있음. -C "directive" : 아파치 설정파일을 읽기 전의 process directive -c "directive" : 아파치 설정파일을 읽은 후의 process directive -v : 아파치의 버전을 보여줌. -V : 컴파일시 사용했던 옵션을 보여줌. -h : httpd 실행시 사용할 수 있는 옵션들의 도움말을 보여줌. -l : 컴파일시 사용했던 모듈들을 보여줌. -L : 설정가능한 지시자를 보여줌. -S : 설정되어있는 가상호스트를 보여줌. -t : 설정파일(httpd.conf)파일의 문법적인 체크를 할 수 있음. -T : DocumentRoot 항목체크는 제외하고 설정파일의 문법적인 테스트함.
사용예 #1
설정파일을 지정하여 아파치를 실행합니다.
아파치는 아파치 실행시크립트인 apachectl을 이용하여 실행을 시킵니다.
apachectl은 기본위치에 존재하는 httpd.conf을 기본으로 사용하여 아파치를 실행합니다.
여기서 설명하는 -f옵션은 기본 설정파일이 아닌 다른 아파치설정파일을 이용하여 아파치를 실행시키고자 할때에 사용하는 것입니다.
주로 하나의 아파치에 두개이상의 설정파일을 용도별로 사용하고자할때 사용합니다.
다음은 /usr/local/apache/conf2/httpd.conf 아파치설정파일을 이용하여 아파치를 실행하는 예입니다.
[root@host3 bin]# ./httpd -f /usr/local/apache/conf2/httpd.conf [root@host3 bin]# [root@host3 bin]# ps -ef | grep httpd root 32170 1 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32171 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32172 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32173 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32174 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf nobody 32175 32170 0 21:35 ? 00:00:00 ./httpd -f /usr/local/apache/conf2/httpd.conf [root@host3 bin]#
사용예 #2
-d옵션은 홈디렉토리(ServerRoot)를 지정하여 아파치를 실행하고자 할 때 사용합니다.
즉, 아파치 실행시에 서버루트(ServerRoot)를 지정하여 실행시킵니다.
[root@host3 bin]# ./httpd -d /usr/local/apache [root@host3 bin]# [root@host3 bin]# ps -ef | grep http root 32184 1 3 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32185 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32186 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32187 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32188 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache nobody 32189 32184 0 21:36 ? 00:00:00 ./httpd -d /usr/local/apache [root@host3 bin]#
사용예 #3
-v옵션은 현재 실행중인 아파치의 버전과 컴파일된 시간을 확인해 줍니다.
아래의 예를 보면 현재 실행중인 아파치의 버전이 1.3.28이라는 것과 컴파일된 시간이 2003년 10월 1일 오후 17시라는 것을 알려주고 있습니다.
[root@host3 bin]# ./httpd -v Server version: Apache/1.3.28 (Unix) Server built: Oct 1 2003 17:00:20 [root@host3 bin]#
사용예 #4
-V옵션은 아파치를 컴파일하여 설치한 설정내용을 확인시켜줍니다.
아래의 예를 보시면 아파치의 기본적인 설치내용과 설치위치등을 확인할 수 있습니다.
[root@host3 bin]# ./httpd -V Server version: Apache/1.3.28 (Unix) Server built: Oct 1 2003 17:00:20 Server's Module Magic Number: 19990320:15 Server compiled with.... -D HAVE_MMAP -D HAVE_SHMGET -D USE_SHMGET_SCOREBOARD -D USE_MMAP_FILES -D HAVE_FCNTL_SERIALIZED_ACCEPT -D HAVE_SYSVSEM_SERIALIZED_ACCEPT -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D DYNAMIC_MODULE_LIMIT=64 -D HARD_SERVER_LIMIT=1024 -D HTTPD_ROOT="/usr/local/apache" -D SUEXEC_BIN="/usr/local/apache/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard" -D DEFAULT_LOCKFILE="logs/httpd.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf" [root@host3 bin]#
사용예 #5
-l옵션은 아파치에 설치되어 현재 사용가능한 아파치모듈들 확인시켜 줍니다.
주로 운용중인 아파치모듈을 확인하고자 할때 사용합니다.
즉, 필요한 모듈이 아파치에 설정되어 있는가를 확인할 수 있습니다.
간단한 예로서 아래 결과의 맨 아래에 있는 mod_php4.c를 보면 현재 아파치에는 php4버전이 모듈로 들어있는 것을 알 수 있습니다.
[root@host3 bin]# ./httpd -l Compiled-in modules: http_core.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_status.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_userdir.c mod_alias.c mod_access.c mod_auth.c mod_setenvif.c mod_php4.c [root@host3 bin]#
사용예 #6
-L옵션은 현재 아파치의 아파치 설정지시자(configuration directives) 확인할 수 있습니다.
아파치에는 많은 설정지시자가 있으며 아래 결과는 그 일부분입니다.
만약 특정 지시가를 확인코자 한다면 "./httpd -L | grep 지시자명"과 같이 사용하시면 됩니다.
[root@host3 bin]# ./httpd -L <Directory (http_core.c) Container for directives affecting resources located in the specified directories Allowed in *.conf only outside <Directory>, <Files> or <Location> </Directory> (http_core.c) Marks end of <Directory> Allowed in *.conf only inside <Directory>, <Files> or <Location> <Location (http_core.c) Container for directives affecting resources accessed through the specified URL paths Allowed in *.conf only outside <Directory>, <Files> or <Location> </Location> (http_core.c) Marks end of <Location> Allowed in *.conf only inside <Directory>, <Files> or <Location> <VirtualHost (http_core.c) Container to map directives to a particular virtual host, takes one or more host addresses Allowed in *.conf only outside <Directory>, <Files> or <Location> </VirtualHost> (http_core.c) Marks end of <VirtualHost> Allowed in *.conf only outside <Directory>, <Files> or <Location> <Files (http_core.c) Container for directives affecting files matching specified patterns Allowed in *.conf anywhere and in .htaccess when AllowOverride isn't None </Files> (http_core.c)
사용예 #7
-S옵션은 아파치에 설정된 가상호스트를 확인해 줍니다.
가상호스트는 httpd.conf파일의 맨 마지막에 설정되는 것으로 직접 httpd.conf파일을 vi로 열어서 확인해 보면 알 수 있지만 현재 운용중인 아파치에 설정되어 있는 가상호스트를 확인하고자 한다면 아래와 같이 -S옵션을사용하시기 바랍니다.
[root@host3 bin]# ./httpd -S VirtualHost configuration: 192.168.0.113 :80 is a NameVirtualHost default server www.115.co.kr (/usr/local/apache/conf/httpd.conf:1036) port 80 namevhost www.115.co.kr (/usr/local/apache/conf/httpd.conf:1036) port 80 namevhost ftp.superuser.co.kr (/usr/local/apache/conf/httpd.conf:1052) port 80 namevhost mall.superuser.co.kr (/usr/local/apache/conf/httpd.conf:1058) port 80 namevhost www.owner.co.kr (/usr/local/apache/conf/httpd.conf:1064) port 80 namevhost www.woongsang.com (/usr/local/apache/conf/httpd.conf:1071) [root@host3 bin]#
사용예 #8
아파치의 설정파일인 httpd.conf의 문법을 검사하는 옵션으로 -t를 사용합니다.
이 옵션은 DocumentRoot에 설정된 값의 유효성을 확인하면서 아파치설정파일(httpd.conf)의 문법을 검사합니다.
아래의 결과를 보다시피 현재 httpd.conf의 문법은 DocumentRoot지시자의 내용을 포함하여 아무런 이상이 없음을 알 수 있습니다.
[root@host3 bin]# ./httpd -t Syntax OK [root@host3 bin]#
사용예 #9
아파치의 설정파일인 httpd.conf의 문법을 검사하는 옵션으로 -T를 사용합니다.
이 옵션은 DocumentRoot에 설정된 값의 유효성은 제외한채 아파치설정파일(httpd.conf)의 문법을 검사합니다.
아래의 결과를 보다시피 현재 httpd.conf의 문법은 정상임을 나타내고 있으나 DocumentRoot에 설정된 값들은 검사하지 않았으므로 그 유효성에 대한 보증은 하지 못합니다.
[root@host3 bin]# ./httpd -T Syntax OK [root@host3 bin]#
사용예 #10
httpd의 실행옵션을 확인하는 옵션은 -h옵션입니다.
httpd실행을 일반적인 실행외에 별도의 옵션을 주어서 실행하고자 할 때에 이 옵션으로 사용할 옵션을 한 번 확인해 보면 도움이 됩니다.
[root@host3 bin]# ./httpd -h Usage: ./httpd [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"] [-v] [-V] [-h] [-l] [-L] [-S] [-t] [-T] [-F] Options: -D name : define a name for use in <IfDefine name> directives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled-in modules -L : list available configuration directives -S : show parsed settings (currently only vhost settings) -t : run syntax check for config files (with docroot check) -T : run syntax check for config files (without docroot check) -F : run main process in foreground, for process supervisors [root@host3 bin]#
이상으로 httpd의 실행옵션에 대한 설명을 마무리합니다.
아파치를 일반적인 방법으로만 실행한다면 이 설명은 별다른 도움이 되지 못할 것입니다.
하지만, httpd.conf의 문법검사, 또는 아파치의 httpd.conf파일을 용도별로 사용하여 실행하는 방법, 그리고 아파치 모듈확인, 아파치 가상호스트확인등을 하기 위해서는 반드시 알고있어야할 것입니다.
관련링크
댓글목록
등록된 댓글이 없습니다.