[error] (28)No space left on device: Cannot create SSLMutex Configuration Failed

리눅스/APACHE|2015. 1. 16. 16:52
반응형

[증상]

아파치 로그에 이와같은 에러메세지가 출력되며 아파치 가동이 되지 않을때

[error] (28)No space left on device: Cannot create SSLMutex Configuration Failed

 

[해결]

[root@sysdocu ~]# ipcs -s | grep nobody | perl -e 'while (<STDIN>) { @a=split(/s+/); print `ipcrm sem $a[1]`}'

[root@sysdocu ~]# /usr/local/apache/bin/apachectl start

 

반응형

댓글()

특정 디렉토리 php 실행 금지 설정

리눅스/APACHE|2015. 1. 16. 16:51
반응형

<DirectoryMatch "/home/sysdocu/public_html/bbs/upload">
    AddType application/x-httpd-php-source .html .htm .php .php3 .php4 .php5 .phtml .cgi .inc

    AddType application/x-httpd-php3-source .html .htm .php .php3 .php4 .php5 .phtml .cgi .inc

    <Files ~ ".*.ph$">
      Order allow,deny
      Deny from all
    </Files>
</DirectoryMatch>
 

반응형

댓글()

[에러] Unable to open logs

리눅스/APACHE|2015. 1. 16. 16:51
반응형

Unable to open logs

 

위 메세지가 에러로그에 찍힐 경우

CustomLog 및 ErrorLog 파일 설정부분을 모두 주석처리 하면 아파치가 가동됩니다.

그후 하나씩 주석해제하여 원인이되는 파일을 찾아서 조치하면 됩니다.

 

반응형

댓글()

httpd 2.2.17 + tomcat 6.0 연동

리눅스/APACHE|2015. 1. 16. 16:51
반응형

1. JK커넥터 다운로드

 

아래 URL 에서 OS bit수와 httpd 버전에 맞는 JK커넥터를 다운로드 합니다.

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/

 

JK커넥터는 금일 날짜(2012-05-07)로 검색해보니 2010-11-01 일자 파일이 최신파일로 나오고 있습니다.

JK커넥터를 다운받는 URL 이 끊어질지 몰라서 4개 파일을 다운받아 본게시물에 첨부하였습니다.

 

※ 다운받아 놓은 JK커넥터 버젼

- 32bit 용 : httpd 2.0.x / httpd 2.2.x

- 64bit 용 : httpd 2.0.x / httpd 2.2.x

 

 

2. 연동 설정

 

다운받은 JK커넥터를 아파치 모듈 디렉토리로 이동 시키면서 파일명을 변경합니다.

 

mv mod_jk-1.2.31-httpd-2.2.x.so /usr/local/apache/modules/mod_jk.so

 

아파치 설정파일 httpd.conf 에서 아래와 같이 모듈 추가 설정을 합니다.

 

LoadModule jk_module modules/mod_jk.so

 

<IfModule mod_jk.c>
JkWorkersFile conf/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /* ajp13
</IfModule>

 

/usr/local/apache/conf/workers.properties 파일을 생성하여 아래 내용을 입력합니다.

 

workers.tomcat_home=/usr/local/tomcat        // tomcat 설치 디렉토리
workers.java_home=/usr/java/jdk1.7.0_04      // java  설치 디렉토리

worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

 

 

3. 구동 및 확인

httpd 및 tomcat 을 중지 시킨 후 아래 순서대로 다시 웹서버를 구동 시킵니다.

 

tomcat 구동 > apache 구동

 

웹사이트로 접속하여 jsp 샘플이 동작하는지 확인합니다.

 

http://sysdocu.tistory.com/examples/jsp/



반응형

댓글()

아파치에서 대소문자 구분 설정 및 해제 방법 (mod_speling)

리눅스/APACHE|2015. 1. 16. 16:50
반응형

아파치에서 대소문자 구분 설정 및 해제 방법에 대해서 알아보겠습니다.
최근의 아파치는 mod_speling 모듈을 기본으로 탑재시켜 설치 시 자동으로 모듈이 로드 됩니다.
httpd.conf 파일에 단 한줄 추가만으로 대소문자 구분을 컨트롤 할 수 있습니다.

1. 모듈 확인
- mod_speling 모듈 설정이 있어야 합니다.
- 만약 모듈 설정이 보이지 않으면 mod_speling.so 설치 후 진행을 합니다.


2. 설정
- httpd.conf 파일에 아래 내용을 추가하여 줍니다.
- CheckSpelling On
- 저장 후 아파치를 재시작 해 줍니다.


3. 대소문자 구분 테스트 (1)
- 저는 홈폴더에 test.html 파일을 만들어 놓았습니다.
- 아래는 정상적인 URL 호출시 모습입니다.


4. 대소문자 구분 테스트 (2)
- test.html 의 첫 t 를 대문자로 바꿔 테스트에도 정상적인 페이지 호출이 됩니다.


5. 대소문자 구분 테스트 (3)
- 소문자 t를 모두 대문자로 바꿔 테스트한 모습입니다. 역시 정상입니다.


6. 틀린 글자 구분 테스트
- mod_speling 모듈은 틀린 글자를 자동으로 최적의 URL로 리다이렉션하는 기능을 기본 제공합니다.
- 단, 최대 1글자입니다. (ex) dest.html -> test.html 로 자동 리다이렉션 됨.
- dav 모듈과 병행 사용 시에는 오류가 발생할 수 있습니다. 


7. 대소문자 구분 테스트
- 이번엔 이 기능을 off 시키고 테스트를 진행해 보겠습니다.
- 역시 적용을 위해 아파치를 재시작 해 줍니다.


8. 대소문자 구분 테스트
- test.html 을 Test.html 로 호출하니 역시나 Not Found 가 뜨는군요.


수고하셨습니다 ^^

[출처] 항다반사 (늘 있는, 보통의 예사로운 일) | stormech (http://sybd.tistory.com/127)

반응형

댓글()

보안서버 구축에 필요한 무료 SSL 인증서 발급기관 - startssl

리눅스/APACHE|2015. 1. 16. 16:50
반응형

무료로 사용할 수 있는 SSL인증서를 발급해주는 곳이 있었다. 

이름하여 StartSSL 이라는 곳!

검색 중 어떤 사람이 startssl에서 인증서를 발급받아 1년간 무료로 사용하였고 1년 후에도 갱신을 통하여 계속 무료로 사용하고 있다는 이야기를 보게 되었는데...

실제로 우리나라 검색엔진 등에서 startssl관련해 찾아보니 이미 사용하고 있는 사람이 꽤 된다. 

인증서 발급 및 관련 정보는 아래의 링크를 참조

내용 중에 startssl에서 발급된 인증서가 IE에서는 발급기관을 확인하지 못해서 에러가 있다는 말도 있었는데 지금은 이 문제가 해결된 듯 하다. 

무료로 SSL 인증서 발급이라...
참으로 기특한 발급기관이 아닐 수 없다ㅋ

혹시 이번 키사에서 보안서버 구축하세요!!!!
라고 핍박을 받고 계신 분들이시라면 함 참고하시면 도움 될 듯. 

 

[출처] Nes's Random Blogz (http://blog.nemesys.co.kr/tt/entry/보안서버-구축에-필요한-무료-SSL-인증서-startssl)

반응형

댓글()

에러 로그 "x16x03x01" 200 1960

리눅스/APACHE|2015. 1. 16. 16:49
반응형

아파치 에러 로그에 아래와 같은 로그가 찍힐 경우 httpd.conf 의 NameVirtualHost 부분에

포트를 지정하지 않아 발생하는 문제입니다.

80 포트만 사용하면 문제가 없는데, 두 개 이상의 포트를 사용 할때(예: 80, 443) 발생이 됩니다.

 

[에러]

192.168.10.2 - - [22/Sep/2011:07:14:30 +0900] "x16x03x01" 200 1960

 

[해결]

httpd.conf 파일에서 아래 부분 확인 후 포트를 추가하여 줍니다.

 

NameVirtualHost 192.168.10.1:80    < 서버 IP 뒤에 포트 추가

...... (중간 생략) ......

<VirtualHost 191.168.10.1:80>         < 서버 IP 뒤에 포트 추가
 

ssl 포트를 추가 사용할 경우 ssl.conf 나 httpd-ssl.conf 등에서

<VirtualHost _default_:443>             < 이처럼 포트를 각각 지정해주어야 합니다.

 

반응형

댓글()

ssl key 파일 암호 없애는 방법

리눅스/APACHE|2015. 1. 16. 16:49
반응형

암호를 없애는 방법이라고 해도 암호를 알고있어야 없앨수 있습니다.

 

이것이 필요한 이유는 암호를 묻지않고 구동하게 하거나

윈도우에 설치된 apache 에서 구동하기 위함입니다.

보통은 후자의 경우에 사용됩니다.

 

윈도우에 설치된 apache 의 경우 ssl 인증파일 설정 후 apache 를 시작하면
구동이 되지 않는경우가 있습니다.

key 파일에 암호가 걸려있어서 그렇기 때문인데
아래와 같은 명령으로 암호를 없애주고 나면 apache 가 정상으로 실행됩니다.

 

c:> openssl rsa -in sysdocu.key -out sysdocu.key
(key 파일 암호 입력)

 

* 참고 : 인증서 및 키파일은 재발급 되지 않기 때문에

              작업 전에 꼭 사본을 남겨 놓고 작업하시기 바랍니다.

반응형

댓글()

스마트캐싱 (squid 2.6) 설정 - 80포트 멀티도메인

리눅스/APACHE|2015. 1. 16. 16:49
반응형

아래 squid.conf 는 squid 2.6 버전에서 사용하던 파일 내용입니다.

 

하나의 IP에 여러 도메인을 사용할 경우

이 모든 도메인이 squid 적용을 받게 하려면 아래 룰을 참고하시기 바랍니다.

 

목적은 'squid를 80포트로 사용하기' 입니다.

 

단순히 squid 설정으로만 되지않아 iptables 와 같이 사용하였습니다.

 

(멀티도메인 사용을 하려는데 squid 8080포트는 되지만 squid 80포트로는 멀티도메인 사용이 잘 되지 않아 몇 일 고생했습니다.

혹시 squid 설정만으로 80포트 사용할 수 있으신분은 알려주시면 감사하겠습니다. ^^)

 

squid.conf 내용

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ? php php3 htm html jsp js css asp aspx
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

cache_swap_low 90
cache_swap_high 95

cache_replacement_policy lru

memory_replacement_policy lru
cache_dir null /tmp

emulate_httpd_log on
log_ip_on_direct on
mime_table /etc/squid/mime.conf
log_mime_hdrs off
log_fqdn off
check_hostnames off
allow_underscore off
hosts_file /etc/hosts
request_header_max_size 6 KB
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95

negative_ttl 60 seconds
collapsed_forwarding on
forward_timeout 2 minutes
connect_timeout 60 seconds
read_timeout 1 minutes
request_timeout 1 minutes
persistent_request_timeout 1 minute
client_lifetime 1 day
half_closed_clients off
pconn_timeout 60 seconds
shutdown_lifetime 60 seconds

acl BLOCK_URI urlpath_regex -i ../ ... .. .ida .IDA .cnf .dll passwd boot .exe cmd  default.ida XXXXXX /bin/sh  wget

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80      # http
acl Safe_ports port 8080    # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 1025-65535  # unregistered ports
acl CONNECT method CONNECT
acl_uses_indirect_client on

log_uses_indirect_client off
http_access allow all
http_access allow manager localhost
http_access deny BLOCK_URI
http_access deny !Safe_ports
http_access deny CONNECT !SSL_portsf

reply_header_max_size 20 KB
cache_mgr squid
cachemgr_passwd sysdocu@ all        // squid 계정 패스워드 입력
mail_from squid@sysdocu.com

httpd_suppress_version_string on

 

# ---------  Important -------------- #
cache_effective_user squid
cache_effective_group squid

visible_hostname sysdocu.com        // squid 적용할 도메인을 입력해줍니다. 추가 가능
visible_hostname www.sysdocu.com

visible_hostname img.sysdocu.com

maximum_object_size 15 MB
minimum_object_size 10 KB
maximum_object_size_in_memory 1024 KB

access_log /home/squid/logs/access.log squid
cache_log /home/squid/logs/cache.log
cache_store_log /home/squid/logs/store.log

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh

pid_filename /var/run/squid.pid

cache_mem 2 GB
cache_peer 192.168.10.2 parent 80 0        // 서버 IP와 웹서버 포트를 입력해줍니다.

http_port 8080 accel defaultsite=sysdocu.com:80 vhost        // squid 적용할 도메인을 입력해줍니다. 추가가능
http_port 8080 accel defaultsite=www.sysdocu.com:80 vhost
http_port 8080 accel defaultsite=img.sysdocu.com:80 vhost

refresh_pattern -i .jpg$ 0 100% 86400 reload-into-ims
refresh_pattern -i .gif$ 0 70% 86400 reload-into-ims
refresh_pattern -i .png$ 0 70% 86400 reload-into-ims
refresh_pattern -i .swf$ 0 70% 86400 reload-into-ims
# ---------  Important -------------- #

 

logfile_rotate 1
memory_pools on
memory_pools_limit 0
client_db off
always_direct allow all
error_directory /usr/local/squid/share/errors/Korean
uri_whitespace deny
coredump_dir /home/squid/cache
high_response_time_warning 1500
store_dir_select_algorithm least-load

 

현재 squid.conf 로는 웹포트 80, squid 포트 8080으로 설정하였습니다.

하지만 소스에서 이미지 경로를 sysdocu.com:8080/rabbit.jpg 등으로 수정하여 사용하지 않으려면

아래와 같이 iptables 로 룰을 추가해 주도록합니다.

 

iptables 룰 추가

iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 -d 192.168.10.2 --dport 80 -j DNAT --to 192.168.10.2:8080

 

80포트로 접속시 squid 포트인 8080 으로 연결시키라는 뜻입니다.

 

부팅할때 자동으로 iptables 룰이 올라오도록 /etc/rc.d/rc.local 에 추가를 해줍니다.

 

[참고]

80 포트 접속 > 8080 포워딩 > 80 이미지 로딩 시도 > 8080 접속시도 > .... 와 같이 loop 되지 않나.. 하는 걱정은 안하셔도 됩니다.

  

웹브라우져를 통해 처음 서버의 iptables에 접근하면

iptables 가 80포트로 접속한 요청은 8080으로 포워딩 시켜주며 역할을 다하게 됩니다.

squid 8080 포트에서는 로컬 서버의 80포트(이때는 iptables 를 거치지 않습니다.)의 이미지를 가져오게 됩니다.

반응형

댓글()

소스 설치한 아파치를 부팅시 자동 구동되게 하기

리눅스/APACHE|2015. 1. 16. 16:48
반응형
[root@sysdocu ~]# cp -arp /usr/local/apache/bin/apachectl /etc/init.d/httpd

[root@sysdocu ~]# vi /etc/init.d/httpd

#!/bin/sh

#
# chkconfig: - 85 15 
# description: Apache is a World Wide Web server. 

# It is used to serve HTML files and CGI. 

#

(생략)


위 내용 추가


[root@sysdocu ~]chkconfig --add httpd
[root@sysdocu ~]chkconfig --level 2345 httpd on


반응형

댓글()

웹페이지 파일 자체 언어셋 설정

리눅스/APACHE|2015. 1. 16. 16:48
반응형

euc-kr 이나 utf-8 등 수정하여 사용하면 됩니다.

 


첫번째 방법

<haed>
    <meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>
</haed>

 


두번째 방법

<?
    header("Content-Type: text/xml; charset=utf-8");
?>

반응형

댓글()