<Directory /var/www/>

                Options FollowSymLinks MultiViews

                AllowOverride None

                Order allow,deny

                Allow from all

             deny from xxx.xxx.xxx.xxx

             deny from xxx.xxx.xxx.xxx

             deny from xxx.xxx.xxx.xxx

        </Directory>



두 번째 방법은 그냥 모든 IP를 막고, 내가 접근하는 IP만 허용하는 방법이였죠.


아래와 같이 말이죠. 내가 사용하는 컴퓨터들에서 오는 접근은 "Allow form ip 주소"로 허용하고 Deny from all을 통해 다 접근을 막는겁니다.


<Directory /var/www/>

                Options FollowSymLinks MultiViews

                AllowOverride None

                Order deny,allow

             Allow from xxx.xxx.xxx.xxx

             Allow from xxx.xxx.xxx.xxx

             Allow from xxx.xxx.xxx.xxx

             Deny from all

</Directory>


Order를 조심하셔야 합니다. 


저는 앞선 경우에선 allow, deny를 주었고, 두번째 경우에는 Order를 deny, allow를 주었습니다.


두번째 경우에서 생각해보면 모든 IP를 다 막고, 특정 IP만 허용하도록 Order가 내려진 것이구요.


만약 두번째 경우에 Order를 allow,deny 순으로 주면 


특정 IP를 허용하도록 하고, 모든 IP를 다 막는 것이 되니깐, 결론적으로 모든 IP가 다 막히는 결과가 나오겠죠? :)


출처 : http://ngee.tistory.com/209

Posted by 뱀고기*

mod-pagespeed를 이용 webp로 이미지 서비스시 엣지브라우저에서 이미지가 깨지는 현상 발생,


16년 5월 기준 아직 엣지에서는 webp 지원 계획이 없음

(https://developer.microsoft.com/en-us/microsoft-edge/platform/status/webpimageformatsupport)


하지만 엣지에서도 이미지를 안깨지게 하는 방법은, mod-pagespeed를 업그레이드 해주면 해결가능


yum -y update mod-pagespeed-stable

(https://developers.google.com/speed/pagespeed/module/download?hl=ko#supported-platforms)


업그레이드후 아파치 재시작해주면 엣지에서도 정상적으로 이미지가 표시된다


Posted by 뱀고기*

logrotate 설정

1. /etc/logrotate.d

/var/log/httpd/*log {

  daily

  rotate 10

  missingok

  notifempty

  sharedscripts

  delaycompress

  postrotate

    /sbin/service httpd reload > /dev/null 2>/dev/null || true

  endscript

}


2. cd /var/log

cp -arf httpd httpd_bak

cd httpd

rm -f *


3. /etc/init.d/httpd restart



추가적으로 버츄얼호스트마다 도메인명으로 로그 생기게 해주면 더 좋음

vi /etc/httpd/conf/vhosts.conf

ErrorLog /var/log/httpd/도메인명.error_log

CustomLog /var/log/httpd/도메인명.access_log combined

Posted by 뱀고기*

아파치 로그파일 있는 경로로 이동


cat access_log | awk '{print $1}' > total ; sort -u total > unique ; wc -l unique


awk로 아이피만 추출하여 total 이란 파일명으로 저장 > total 을 sort -u 로 정렬, 중복행 제거후 unique 파일명으로 저장 > wc -l 로 ip가 총 몇개인지 출력

Posted by 뱀고기*

    211.36.215.78   -  manager [22/Jun/2000:23:09:09 +0900] "GET / HTTP/1.1" 200 5
    ------------- ---  ----   ---------------------------  ---      --   ----  -  -
          1        2    3               4                  5         6   7      8  9

 

    1 : 접속한 클라이언트의 IP 주소, 혹은 도메인 (httpd.conf 에서 HostnameLookups off 로
         설정하면 리버스 도메인 찾기를 않음)

    2 : REMOTE_IDENT (RFC 931 identification (아이덴티피케이션:동일함 확인)
         - 서버가 RFC 931 을 지원하는 경우 이 환경 변수에 클라이언트 시스템에서
         CGI프로그램을 실행시킨 사용자 이름이 저장된다고 합니다. 몰겠습니다.
         아직 한번도 여기 뭔가가 찍힐 것 확인 못해서..

    3 : 사용자이름( .htaccess .htpasswd 에 정의된 사용자 id )

    4 : 클라이언트(사용자 브라우저)의 접속시간정보 ( httpd 접속시간 )
        (구성 : [day/month/year:hour:minute:second zone])

    5 : 클라이언트(사용자 브라우저) 요청종류 ( GET , POST )

    6 : 클라이언트가 요청한 홈페이지 URL 주소 ( 요청한 자료 & 자료위치 )

    7 : 프로토콜 버전

    8 : 상태코드 ( 예. 200 정상처리 )

    9 : 전송데이터 크기 
        상태코드 일부 304 은 - (하이픈) 로 표시
            hits  - 모든 상태 코드 포함 
            files - 상태코드 200번만

출처:http://www.linuxlab.co.kr/docs/00-09-6.htm



Posted by 뱀고기*

test.com 이라는 도메인이 있다고 가정했을시

test.com/b 라고 입력했을시 다른 페이지를 보여주고싶다면


document root 안에 b라는 디렉토리를 만드는 방법도 있지만


document root 가 아닌 다른 디렉토리랑 연결을 해야하는 상황에는


httpd.conf 에 들어가서


Alias /b "/home/b"


라고 설정을 해주면 된다.


"/home/b" 부분은 내가 연결하고싶은 다른 디렉토리 경로를 적어주면 되며 /b 부븐은 내가 /이후 사용하고싶은 이름을 입력하면 된다.

Posted by 뱀고기*

아파치 버전 : 2.2.24 기준

mod_deflate 는 웹 서버에서 출력하는  텍스트 컨탠츠를 압축하는 모듈로 
아파치 압축전송을 이용하게되면 트레픽을 줄일뿐 아니라 실행속도도 향상시킬수 있다.

먼저 모듈이 올라와 있는지 확인 한다.
LoadModule deflate_module modules/mod_deflate.so

Apache 2.2 버전 이상에서는 mod_deflate 모듈을 디폴트로 제공하고 있어 설정을 통해 
Gzip 
압축 전송 기능 바로 사용 할 수 있다.




[추가 정보] 2.2 이하 버전에서 DSO 모듈 추가 하기
cd /
소스경로/modules/filters
/usr/local/apache/bin/apxs -cia -Wl,"-lz" mod_deflate.c


설치 완료후 확인(2.2 에서는 확인 안 되지만 정상작동 됨)

/usr/local/apache/bin/httpd -l
mod_deflate.c




모듈이 정상적으로 올려 왔다면 httpd.conf 에 아래 내용을 추가

<IfModule mod_deflate.c>
AddType text/html .html .htm
AddType text/css  .css
AddType application/xml .xml
AddType application/javascript  .js
AddType application/x-httpd-php .php .php3 .html .htm .phtml .inc
AddType application/x-httpd-php-source .phps

AddOutputFilterByType DEFLATE text/plain text/html text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml application/xml application/rss+xml
AddOutputFilterByType DEFLATE text/css application/javascript application/x-javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/php
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp

DeflateCompressionLevel 9          #사용할 압축레벨을 선택, 값이 클수록 압축률이 증가하지만, CPU를 더 많이 사용함

BrowserMatch ^Mozilla/4 gzip-only-text/html                # Netscape 4.xx에는 HTML만 압축해서 보냄
BrowserMatch ^Mozilla/4\.0[678] no-gzip                   # Netscape 4.06~4.08에는 압축해서 보내지 않음
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html     # 자신을 Mozilla로 알리는 MSIE에는 그대로 압축해서 보냄


압축하지 않을 파일들을 지정

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|java|c|t?gz|bz2|7z)$ no-gzip dont-vary

</ifModule> 




위 설정이 적용되면 text/html/css/js/xml 파일들은 웹 서버에서 바로 gzip로 압축하여 보내게 된다
이미지나, zip 등의 압축 파일 mpeg 와 같은 영상은 이미 파일 고유의 포맷기술로 압축이 되어있기 때문에
추가적인 압축이 불가 하다, 그렇기 때문에 서버에서 압축 효과가 없는 파일에 대해서는 압축을 제외한다.


아파치를 재시작 한 후 정상적으로 압축되어 전송 되는지 확인 한다.


이런 체크를 해주는 사이트는 여러 곳이 있는 데 압축이 잘되었는지 확인하는 사이트는 아래와 같다.
http://www.whatsmyip.org/http_compression/

사용자 삽입 이미지





구글에서도 사이트에 대해서 분석 해주는 서비스가 있다.
https://developers.google.com/speed/pagespeed/insights/
구글의 경우 mod_deflate 를 적용 하기전에 먼저 측정 해보고, 설정 한후 측정 해보길 바란다.


출처:http://commit.co.kr/?page=2

Posted by 뱀고기*

[root@manage src]# wget http://www.sfr-fresh.com/unix/privat/mod-cband-0.9.7.5.tgz
[root@manage src]# tar xvzfp mod-cband-0.9.7.5.tgz 
[root@manage src]# cd mod-cband-0.9.7.5
[root@manage mod-cband-0.9.7.5]# ./configure --with-apxs=/usr/local/apache/bin/apxs
[root@manage mod-cband-0.9.7.5]# make
[root@manage mod-cband-0.9.7.5]# make install


2. 아파치 환경설정에서의 cband 설정
cband 모듈 또한 throttle와 마찬가지로 3rd-party 모듈이기 때문에 아파치에서 설정을 합니다.

  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_cband.c>
  3.     <Location /cband-status>
  4.         SetHandler cband-status
  5.         Order Deny,Allow
  6.         Deny from All
  7.         Allow from 127.0.0.1 100.100.100.100
  8.     </Location>

  9.     <Location /cband-me>
  10.         SetHandler cband-status-me
  11.         Order deny,allow
  12.         Deny from all
  13.         Allow from all
  14.     </Location>
  15. </IfModule>


※ SetHandler 설명
cband-status -> 관리자 페이지 입니다. 따라서 접근을 허용할 IP를 입력해주셔야 됩니다.
cband-me -> 사용자 페이지 입니다.

3. cband 적용
cband는 각 호스트에 대해서 여러가지 지시자를 사용하여 설정 할 수 있습니다.
아래는 여러가지 지시자중 하나인 가장 많이 사용되는 CbandLimit을 사용한 예제 입니다.

  1. ※ 각각의 호스트에 따로따로 설정해줄 때
  2. <VirtualHost 192.168.0.1>
  3.     ServerName foobar.com
  4.     ServerAlias www.foobar.com
  5.     DocumentRoot /home/foobar/public_html
  6.     ErrorLog logs/foobar-err
  7.     CustomLog logs/foobar-acc combined
  8.     CBandLimit 100Mi
  9.     CBandPeriod 1D
  10. </VirtualHost>


※ 위 설정은 1Day 동안 100M의 트래픽을 허용하겠다는 설정입니다.

  1. ※ 하나의 유저(foobar)가 여러개의 호스트를 사용하고 있는 경우 (트래픽 공유)
  2. <CBandUser foobar>
  3.     CBandUserLimit 100Mi
  4.     CBandUserPeriod 1D
  5. </CBandUser>

  6. <VirtualHost 192.168.0.1>
  7.     ServerName foobar.com
  8.     ServerAlias www.foobar.com
  9.     DocumentRoot /home/foobar/public_html
  10.     ErrorLog logs/foobar-err
  11.     CustomLog logs/foobar-acc combined
  12.     CBandUser foobar
  13. </VirtualHost>

  14. <VirtualHost 192.168.0.1>
  15.     ServerName foobar2.com
  16.     ServerAlias www.foobar2.com
  17.     DocumentRoot /home/foobar2/public_html
  18.     ErrorLog logs/foobar2-err
  19.     CustomLog logs/foobar2-acc combined
  20.     CBandUser foobar
  21. </VirtualHost>


※ 위 설정은 foobar 유저에게 1Day 동안 100M의 트래픽을 허용하겠다는 설정이며,
foobar.com과 foobar2.com에서 foobar 유저의 트래픽을 공유해서 사용하겠다는 것입니다.

4. cband 단위
- 전송속도 단위

kbps, Mbps, Gbps - bits per second, 의미: 1024, 1024*1024, 1024*1024*1024 bps
kb/s, Mb/s, Gb/s - bytes per second, 의미: 1024, 1024*1024, 1024*1024*1024 b/s
기본값 : kbps


- 트래픽 제한 단위

K, M, G - bytes, 의미: 1000, 1000*1000, 1000*1000*1000 bytes
Ki, Mi, Gi - bytes, 의미: 1024, 1024*1024, 1024*1024*1024 bytes
기본값: K


- 시간 단위

S, M, H, D, W - 초, 분, 시간, 일, 주. 의미: 1, 60, 3600, 86400, 604800 Seconds
기본값: S



5. cband 지시자

이름: CBandDefaultExceededURL
설명: 제한을 초과했을때 보여줄 URL
문맥: Server config
문법: CBandDefaultExceededURL [URL]
예제: CBandDefaultExceededURL 
http://foobar.com/503.html


이름: CBandDefaultExceededCode
설명: 제한을 초과했을시 보여줄 에러 코드
문맥: Server config
문법: CBandDefaultExceededCode [HTTP_CODE]
예제: CBandDefaultExceededCode 509


이름: CBandScoreFlushPeriod
설명: scoreboard 파일에 기록할 요청수를 정하나, cband 퍼포먼스에 영향을 미칩니다.
기본값: 1
문맥: Server config
문법: CBandScoreFlushPeriod [요청수]
예제: CBandScoreFlushPeriod 100
    100번의 요청이 들어오면 scoreboard 파일에 한번 기록합니다.


이름: CBandSpeed
설명: 가상호스트 도메인의 최대 속도, 요청수, 접속수 설정
문맥: <Virtualhost>
문법: CBandSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandSpeed 1024 10 30
    호스트에 대해 1024kbps 전송속도로 제한하며, 초당 10개의 요청을 처리하고,
    동시 접속을 30개로 제한합니다.


이름: CBandRemoteSpeed
설명: 호스트 접속자의 최대속도, 요청수, 접속수 제한
문맥: <Virtualhost>
문법: CBandRemoteSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandRemoteSpeed 20kb/s 3 3
    호스트 접속자에 대해 1024kbps 전송속도로 제한하며,
    초당 10개의 요청을 처리하고, 동시 접속을 30개로 제한합니다.


이름: CBandClassRemoteSpeed
설명: IP class의 최대속도, 요청수, 접속수 제한
문맥: <Virtualhost>
문법: CBandClassRemoteSpeed [class_name] [kbps] [rps]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제:
<CBandClass googlebot_class>
  CBandClassDst 66.249.64/24
  CBandClassDst 66.249.65/24
  CBandClassDst 66.249.79/24
</CBandClass>
CBandClassRemoteSpeed googlebot_class 20kb/s 2 3
googlebot_class 클래스에 대해 20kb/s 전송속도로 제한하며, 
초당 10개의 요청을 처리하고, 동시 접속을 30개로 제한합니다.


이름: CBandRandomPulse
설명: 속도 제한을 위해서 임의의 파형을 생성한 다음 처리하는 방법입니다.
문맥: Global
문법: CBandRandomPulse [On/Off]
예제: CBandRandomPulse On


이름: CBandLimit
설명: 제한할 전송량을 설정한다.
문맥: <Virtualhost>
문법: CBandLimit [limit]
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)
예제: CBandLimit 10M
    전송량을 10M(10*1000*1000bytes)로 제한한다.
    CBandLimit 10Mi
    전송량을 10M(10*1024*1024bytes)로 제한한다.


이름: CBandClassLimit
설명: IP class에 대해 제한할 전송량 설정
문맥: <Virtualhost>
문법: CBandClassLimit [class_name limit]
    class_name - 클래스 이름
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)


이름: CBandExceededURL
설명: 제한을 초과했을때 보여줄 URL
문맥: <Virtualhost>
문법: CBandExceededURL [URL]
예제: CBandExceededURL 
http://foobar.com/503.html


이름 : CBandExceededSpeed
설명: 전송량을 초과했을때의 전송속도 제한 설정
문맥: <Virtualhost>
문법: CBandExceededSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수


이름: CBandScoreboard
설명: 가상호스트의 scoreboard 파일 지정
문맥: <Virtualhost>
문법: CBandScoreboard [path]


이름: CBandPeriod
설명: 제한기간
문맥: <Virtualhost>
문법: CBandPeriod [period]
    period - 사용단위: S(초), M(분), H(시간), D(일), W(주)
예제: CBandPeriod 1D


이름 : CBandPeriodSlice
설명: 기간을 나눌 기간 명시
기본값: slice_len = limit
문법: CBandPeriodSlice [slice_length]
예제: CBandLimit 100G
    CBandPeriod 4W
    CBandPeriodSlice 1W
지정된 제한값을 1주일 단위로 나누어 사용 합니다.
위 설정을 해석하면 4주는 1주일 단위로 나누며, 용량은 100G/4주=25G로 사용 합니다.


이름: <CBandUser>
설명: 새로운 cband 가상 사용자 설정
문맥: Server config
문법: <CBandUser user_name>


이름: CBandUserSpeed
설명: cband 가상 사용자의 속도, 요청수, 동시 접속수 제한
문맥: <CBandUser>
문법: CBandUserSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandUserSpeed 100kb/s 10 5


이름: CBandUserLimit
설명: cband 가상 사용자의 전송 용량 제한
문맥: <CBandUser>
문법: CBandUserLimit [limit]
    limit - 사용용량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)
예제: CBandUserLimit 10M
    전송량을 10M(10*1000*1000bytes)로 제한한다.
    CBandUserLimit 10Mi
    전송량을 10M(10*1024*1024bytes)로 제한한다.


이름: CBandUserClassLimit
설명: cband 가상 사용자의 IP class에 대해 제한할 전송량 설정
문맥: <CBandUser>
문법: CBandUserClassLimit [class_name] [limit]
    class_name - 클래스 이름
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)


이름 : CBandUserExceededURL
설명: cband 가상 사용자의 제한을 초과했을때 보여줄 URL
문맥: <CBandUser>
문법: CBandUserExceededURL URL
예제: CBandDefaultExceededURL 
http://foobar.com/503.html


이름: CBandUserExceededSpeed
설명: cband 가상 사용자의 전송량을 초과했을때의 전송속도 제한 설정
문맥: <CBandUser>
문법: CBandUserExceededSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수


이름: CBandUserScoreboard
설명: cband 가상 사용자의 scoreboard 파일 지정
문맥: <CBandUser>
문법: CBandUserScoreboard [path]


이름: CBandUserPeriod
설명: cband 가상 사용자의 제한기간
문맥: <CBandUser>
문법: CBandUserPeriod [period]
    period - 사용단위: S(초), M(분), H(시간), D(일), W(주)
예제: CBandPeriod 1D


이름: CBandUserPeriodSlice
설명: cband 가상 사용자의 기간을 나눌 기간 명시
기본값: slice_len = limit
문맥: <CBandUser>
문법: CBandUserPeriodSlice [slice_length]
예제: CBandLimit 100G
    CBandPeriod 4W
    CBandPeriodSlice 1W
지정된 제한값을 1주일 단위로 나누어 사용 합니다.
위 설정을 해석하면 4주는 1주일 단위로 나누며, 용량은 100G/4주=25G로 사용 합니다.



6. 통계화면 보기
관리자모드 - 
http://foobar.com/cband-status
관리자모드(xml) - http://foobar.com/cband-status?xml
사용자모드 - http://foobar.com/cband-me
사용자모드(xml) - http://foobar.com/cband-me?xml

7. 통계화면에 아파치 인증 걸기
throttle 강좌에서도 말씀드렸지만 통계화면의 제한은 IP의 형태로 제한을 하는게 정설입니다.
그렇지만 IP가 자주 변경되는 분들은 매번 IP를 변경해주는것도 하나의 일이 될 수 있습니다.
따라서 이런 경우에는 아파치 인증을 걸어서 사용하시면 편리할 것입니다.

  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_cband.c>
  3.     <Location /cband-status>
  4.         SetHandler cband-status
  5.         AuthName "트래픽관리 페이지"
  6.         AuthType Basic
  7.         AuthUserFile /home/foobar/.htpasswd
  8.         require valid-user
  9.     </Location>

  10.     <Location /cband-me>
  11.         SetHandler cband-status-me
  12.         Order deny,allow
  13.         Deny from all
  14.         Allow from all
  15.     </Location>
  16. </IfModule>
  17. [root@localhost]# htpasswd -c /home/foobar/.htpasswd ID


Posted by 뱀고기*

대부분의 많은 사용자들이 apache 설정 변경 후 restart를 진행 합니다.

 

가상호스트가 추가 되어도 restart

apache의 ServerName이 변경되어도 restart

 

restart를 진행하면 프로세스가 모두 종료하고 재시작 되기때문에 세션이 끊어지는 문제가 있습니다.

 

 

apache의 재시작 방법은 restart/graceful 이렇게 두가지가 존재 합니다.

 

restart (kill -HUP) 
- httpd 모든 프로세스를 찾아 종료시키고 재시작 시그널 주는것이다. 

graceful (kill -USR1) 
- 현재 접속된 컨넥션은 그대로 유지하고 그외 httpd 모든 프로세스를 
찾아 종료시키고 재시작 시그널 주는것이다.

예1) /usr/local/apache2/bin/apachectl restart

이 경우 완벽한 재시작은 이루어지지만, 서비스가 끊김 발생

예2) /usr/local/apache2/bin/apachectl graceful

서비스의  세션 및 연결 종료 없이 conf 설정 파일 불러서 재실행

 

서비스 운영 중에 추가되는 작업들은 restart 보다는 graceful 옵션을 통해 재시작 해주시는 것이 좋습니다.

 

단, 모듈 추가 등의 apache 내에 삽입되어야 하는 작업들은 반드시 restart를 해주셔야 합니다.


출처:http://faq.hostway.co.kr/Linux_WEB/3665

'Apache' 카테고리의 다른 글

mod_deflate 설정 확인하는법  (1) 2015.11.30
apache2 트래픽 관리 mod_cband  (0) 2015.07.02
apache 특정 디렉토리에서 php 실행 금지  (0) 2015.06.17
SSLCertificateChainFile 이란  (0) 2015.06.01
apache httpd.conf 문법 검사  (0) 2015.05.21
Posted by 뱀고기*

게시판을 이용한 upload 디렉토리는 퍼미션이 777로 잡아줘야


정상적으로 사용이 가능한 경우가 꽤나 많다. 이런 경우 악성코드나 스팸봇이 업로드 되어 악용될 위험이 


상당히 높기 때문에 php파일을 실행금지 시키는 설정을 넣어두면 좋다.



아래의 설정 문구는 httpd.conf나 혹은 가상호스트 설정내에 적어 넣어줘도 된다.


<Directory /업로드 디렉토리 경로/*>

php_admin_flag engine off

</Directory>



혹은 업로드 디렉토리에 .htaccess를 이용한 방법으로

httpd.conf에 AllowOverdride 가 적용되어 있어야 한다.


php4.x 경우

<IfModule mod_php4.c>

php_flag engine off

</IfModule>


php5.x 경우

<IfModule mod_php5.c>

php_flag engine off

</IfModule>


물론 두버전을 동시에 넣어주어도 상관없다.



출처:http://rootrator.tistory.com/119


Posted by 뱀고기*