환경 : Windows7 + JDK1.8 + SVN + apache-tomcat-8.0.36(maven-plugin-2.1) + apache-maven-3.3.9 + jenkins-2.23


Tomcat 다운로드 : http://apache.org

Tomcat Maven plugin : http://tomcat.apache.org/maven-plugin-2.1/

Maven 다운로드  : https://maven.apache.org/

Jenkins 다운로드 : http://mirrors.jenkins-ci.org


Plugin 설치 : 

This plugin provides an advanced integration for Maven 2/3 projects.

This plugin add features related to Maven jobs info. Adds columns configurable in views (version, dependencies, modules, ...) and extract information from Maven jobs (update name and description from POM, ...) 


apache-maven-3.3.9 :

수동 build시(클래스패스 설정 필요) 

-> C:\apache-maven-3.3.9\bin\mvn.cmd -X -f pom_bart.xml tomcat:redeploy



-------------------------------------- 프로젝트 추가 환경설정


Step1. Tomcat 설정 : 


1) tomcat-users.xml


<role rolename="manager-script"/>

<user username="admin" password="admin" roles="manager-script"/>



2) pom.xml -  pom_bart.xml



             

tomcat에 배포하기 위해서는 tomcat-maven 플러그인을 설정해주어야 한다. 


url은 tomcat manager의 URL을 적어주면 되는데, tomcat에서는 URL뒤에 /text를 꼭 넣어주어야 한다. 

path는 웹 애플리케이션의 컨텍스트 패스가 되며, username과 password는 tomcat manager와 동일하게 작성해주면 된다.


         <build>

<finalName>boot</finalName>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>

<version>2.1.1</version>

<configuration>

<warSourceDirectory>src/main/webapp</warSourceDirectory>

<webXml>src/main/webapp/WEB-INF/web.xml</webXml>

</configuration>

</plugin>


<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>tomcat-maven-plugin</artifactId>

<version>1.1</version>

<configuration>

<url>http://127.0.0.1/manager/text</url>

<path>/</path>

<charset>UTF-8</charset>

<mode>war</mode>

<username>admin</username>

<password>admin</password>

</configuration>

</plugin>

</plugins>

</build>


Step2. Jenkins 설정










참조 - http://livebitblock.blogspot.kr

[개발자]초심 개념알기!!

Programing 2015.09.08 11:42 Posted by 애플자라

Windows/Linux 둘다적용

 

0. JDK설치(1.5이상)
1. Oracle설치(운영DB기준, 10g이상) - 테이블스페이스,테이블셋팅,계정부여,권한부여
2. Apache설치(2.0이상, C:/app/Apache2.x) - 웹서버개념,rotalog설정(CustomLog,ErrorLog 일자별 적재),포트확인, DocumentRoot
3. Resin/Tomcat설치(C:/app/Resin4.x, C:/app/Tomcat7) - WAS개념,포트확인,java heap 메모리셋팅
4. 아파치,Resin/Tomcat 연동(Port 80) - 포트확인,연동포트(Listen포트)


위 내용이 다 끝나면
1. Apache vhost를 이용해서 100포트로 (ex, D:/Project/homepage_dev)로 두개 올리기
2. subversion Windows설치 후 소스관리(Commit,Update,synchronize), 권한설정

 

위 내용이 다 끝나면 - editplus쓰지 않고 shell로만 사용
1. Linux(CentOS7.0) 설치 - Centos 버전 및 커널 버전 확인하기
2. yum설치 or rpm설치 알기
3. Apache, Tomcat, Resin, Mysql(5.0이상),Oracle(11g설치),subversion,FTP(서버),SSH,오픈SSL 설치 - 계정부여,그룹부여,권한부여,telnet접속막기
4. 파일질라,알FTP, FTP툴 안쓰고 ftp get put 사용해보기(아스키,바이너리 개념)
5. wget 사용해보기

 

[웹보안]Apache httpd.conf 보안 설정

Programing 2013.10.16 14:47 Posted by 애플자라

아파치 기본 설정 파일인 httpd.conf 파일을 통해 보안을 강화 시킬 수 있다.

물론 웹서버 보안 프로그램을 사용해서 보안화 한다면 더욱 좋겠지만.. 기본적인 보안부터

시작하면 더 좋다고 생각한다.

 

------------------------------------------------------------------------------------

특정 IP 차단하기.. or 특정 IP 만 허용하기

------------------------------------------------------------------------------------

 

특정 IP(대역)를 사용하는 호스트 차단하기

 

# vi /usr/local/apache/conf/httpd.conf

.........

<Directory /usr/local/apache/htdocs>

Order Allow,Deny

Deny from 192.168.1

Allow from all

</Directory>

..........

 

위 설정은 192.168.1.0~254 IP를 사용하는 호스트들은 기본 DocumentRoot인 htdocs 에 접근하지

못한다. 물론.. 그 밑에 까지 몽땅 다 차단된다!!

 

만약 192.168.1.1 IP를 사용하는 호스트가 익스플로러를 사용해 웹서버에 접근을 시도한다면..

창에 이렇게 뜬다.-_-)/

 

 

 

----------------------------------------------------------------------------------------

 

특정 IP(대역)을 사용하는 호스트만 허용하기

 

# vi /usr/local/apache/conf/httpd.conf

........

<Directory /usr/local/apache/htdocs>

Order Deny,Allow

Allow from 192.168.1

Deny from all

</Directory>

........

위 설정은 192.168.1.0~254 IP를 사용하는 호스트들만 htdocs 디렉토리에 접근할 수 있다.

사내에서만 사용하는 웹서버를 구축한다면 유용할 듯 싶다.

 

참고로 ' Order Deny,Allow ' 의 뜻은 Allow 설정을 먼저 확인하고 그 다음 Deny 설정을 확인한다.

즉.. 뒤에 것이 우선한다는 뜻이다.

 

예를 들자면

 

<Directory /usr/local/apache/htdocs>

Order Allow,Deny

Deny from all

Allow from 192.168.1.1

</Directory>

 

언뜻 보면 192.168.1.1 IP를 사용하는 호스트만 htdocs 디렉토리에 접근할 수 있을 듯 보이지만..

Order 옵션을 보면 Deny가 뒤에 있다. 즉 먼저 Deny 설정을 확인한다는 뜻인데.. Deny 설정은

Deny from all 로 되어있다. 즉 모두 차단하겠다라는 의미를 가진다.

암만 192.168.1.1 이 접근이 허용되있다고 하더라도 Deny 설정에 걸리기 때문에..가차없다-_-

 

다른 예를 한번 들어보면..

 

<Directory /usr/local/apache/htdocs>

Order Deny,Allow

Allow from all

Deny from 192.168.1.1

</Directory>

 

이렇게 설정을 했다면.. 192.168.1.1 을 사용하는 호스트도 htdocs 디렉토리에 접근이 가능하다.

Order 옵션을.. 어떻게 적용하느냐에 따라서 자신이 원하는 것을 이룰지 모르지만 그렇지 않을 경우도 있기때문에.. 잘 생각해보고 적용해야 한다!!

 

--------------------------------------------------------------------------------------

 

서버 사이드 파일 설정

 

서버 사이드란?

간단하게 "웹 서버측에서 하는 작업들"이라고 말할 수 있다. 여기서 말하는 작업이란 구체적으로

웹브라우저(클라이언트)에서 넘어온 자료를 데이터베이스에 저장한다든지 어떤 수학적인 계산을 하여 결과를 만들어 낸다는 것을 의미한다. 이런 작업을 담당하는 것이 웹 프로그램이다.

웹 프로그램의 종류는 PHP, ASP, JSP, Perl 등등.. 이 존재한다.

 

특정 파일에 대해서도 접근을 허용하거나 불허용할 수 있다.

예를 하나 들어보자. 제로보드를 사용하는 유저들이라면 잘 알겠지만.. 관리페이지를 들어가기

위해서는 admin.php 를 통해야 한다. 이 것을 한번 막아보자-_-a

 

# vi /usr/local/apache/conf/httpd.conf

.......

<Files ~ "admin.php">

Order Deny,Allow

Deny from all

Allow from 192.168.1.1

</Files>

.......

 

이렇게 설정하면 192.168.1.1 IP를 사용하는 호스트만 admin.php에 접근할 수 있다.

요것을 잘 응용하면 좋다-_-)b

 

.bak, .old 파일들과 같은 서버사이드 소스파일을 접근 못하게 하는것이 젤 좋다-_-)b

php를 사용하다 보면 따로 dbconn.php 파일을 생성해서 DB에 접근하는데 중요한 것은..

이 파일 소스안에 DB에 접근할 수 있는 계정, password 가 그대로 존재한다는 것이다.

이것을 백업 좀 하겠다고-_-.. dbconn.bak 이나 dbconn.old로 카피해서 같은 디렉토리에

집어넣었다면 웹에서 직접 소스로 접근이 가능하다-_-.. 겁내 위험한거다;;;

 

<Files ~ ".bak$">
Order allow,deny
Deny from all
</Files>

<Files ~ ".old$">
Order allow,deny
Deny from all
</Files>

 

요렇게 막자^-^)b

 

또는.. 특정확장자를 PHP와 같은 서버사이드 언어로 설정해 웹 서버에 소스를 그대로 보이지 않고 실행하도록 하는 방법이 있다.

 

AddType application/x-httpd-php .php .inc .bak .old .c

 

요 방법두 나쁘지는 않은듯..^^

 

--------------------------------------------------------------------------------------

 

출처 - http://blog.daum.net/9401ymk/7087666

[아파치] access.log 설정

Programing 2013.04.10 09:18 Posted by 애플자라

access.log를 보면 이미지부터 js, css 모두 출력해주는 것을 볼 수 있다.

그런 파일들이 필요한 사람들도 있겠지만.. 나는 필요 없다.

 

httpd.conf의 IfModule log_config_module부분을 살펴보면 access_log에 출력할 확장자를 필터 할 수 있는 기능이 있다.

분홍색 음영부분이 설정된 부분이다.

 

 

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
#    CustomLog "logs/access.log" common

SetEnvIf Request_URI \.gif img-nosave
SetEnvIf Request_URI \.jpg img-nosave
SetEnvIf Request_URI \.png img-nosave
SetEnvIf Request_URI \.css img-nosave
SetEnvIf Request_URI \.js img-nosave

    CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log.%Y%m%d 86400" combined env=!img-nosave

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    #CustomLog "logs/access.log" combined
</IfModule>

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
#    CustomLog "logs/access.log" common

SetEnvIf Request_URI \.gif img-nosave
SetEnvIf Request_URI \.jpg img-nosave
SetEnvIf Request_URI \.png img-nosave
SetEnvIf Request_URI \.css img-nosave
SetEnvIf Request_URI \.js img-nosave

    CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log.%Y%m%d 86400" combined env=!img-nosave

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    #CustomLog "logs/access.log" combined
</IfModule>

 출처 - http://cipleme.tistory.com/entry/아파치-accesslog-설정

Apache vhosts

Programing 2011.12.30 14:11 Posted by 애플자라

TAG apache, vhosts

Apache log4j.properties

Linux 2011.08.01 16:54 Posted by 애플자라


#log4j.rootLogger=DEBUG, CONSOL
log4j.appender.CONSOL=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOL.ImmediateFlush=true
log4j.appender.CONSOL.Threshold=Debug
log4j.appender.CONSOL.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOL.layout.ConversionPattern=[%d{HH:mm:ss:SSS}]%m%n

log4j.logger.sys=INFO, sys
log4j.logger.sms=INFO, sms
log4j.logger.mms=INFO, mms

logpath=.

log4j.appender.sys=org.apache.log4j.DailyRollingFileAppender
log4j.appender.sys.File=${logpath}/log/sys.log
log4j.appender.sys.layout=org.apache.log4j.PatternLayout
log4j.appender.sys.layout.ConversionPattern=[%d{HH:mm:ss:SSS}]%m%n
log4j.appender.sys.File.DatePattern='.'yyyyMMdd
log4j.appender.sys.encoding=euc-kr

'Linux' 카테고리의 다른 글

log zip 백업  (0) 2012.01.13
리눅스 세션 계속 유지하기  (0) 2011.09.19
Apache log4j.properties  (0) 2011.08.01
[Linux] Shell프로그램 Crontab으로 실행하기  (0) 2011.04.13
[Linux].profile  (0) 2010.09.09
[Unix]export LANG=c  (0) 2010.06.23
TAG apache, Log4j

Apache-win32 버전의 에러 - error [warn] (OS 64)

Board 2010.12.27 12:37 Posted by 애플자라

제 웹페이지는 Win2003에 Apache 2.2  Win32를 기반으로 돌아가고 있습니다.
근데 아무리 생각해도 제 속도가 나오지 않아서 이래 저래 갸웃 갸웃 하면서 보았습니다.
반응속도가 너무 너무 느리더군요..ㅡ.ㅡ

그러던중 Error Log를 확인해 보니 다음과 같은 에러가 있었습니다.
[Fri Sep 08 04:02:33 2006] [warn] (OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다. : winnt_accept: Asynchronous AcceptEx failed.

이래저래 확인을 했더니 PHP와 Apache2.2를 WIndows기반하에서 운영할 경우에 발생할 수 있는 Bug라고 되어 있더군요.

일단 소스를 뒤져서 고치는 것은 나중으로 미루고 가장 간단하게 쓸수 있는 방법은
AcceptEx를 쓰지 않고 전통적인 Accept를 쓰도록 Config를 수정하는 방법입니다. 

httpd.conf 에 다음과 같은 추가를 해 주시면 됩니다.

<IFModule mpm_winnt_module>
    Win32DisableAcceptEx
</IFModule>

^^ 아무 문제가 없이 Delay도 없고  잘 되네요..
acceptEx는 속도 향상을 위해서 MS 가 accpet의 확장 형태로 만든 network api 입니다. 근데 이걸 제거하니 정상적으로 된다니.. 웬지 억울해서.. 찾아보고 싶기는 합니다만.. PHP가 어떻게 동작할지 몰라서... PHP도 오픈 소스였나 기억이 가물 가물 하네요..

도움이 되었기를 바랍니다~~~ *^^*


출처 - http://lunarblade.tistory.com/category/%EC%84%B8%ED%8C%85ETC%20%5E%5E

office2007로 만든 문서(.docx, .pptx, .xlsx) 서버에서 파일다운로드 받을때 .zip 파일로 저장되는 현상;; 

열기로 하면 압축을 풀어야 하고.. 

압축을 풀면 xml등등의 형식으로 읽을 수 없고.. ㅡㅡ;;
 

해결법은 

way1>

1. Apache 의 conf 폴더의 mime.types 파일을 찾는다.
(usr/local/apache/conf/mime.types or /etc/mime.types)

2. application/vnd.openxmlformats docx pptx xlsx

   이거 한줄 추가.

3. 아파치 restart

4. 끝


way2>

1. 다운로드할 때, 열기를 하지 않고, 저장을 한다. 

2. 저장할 때 엑셀은 xlsx, 파워포인트는 pptx, 워드는 docx로 저장한다.
(즉, zip으로 저장하는 것이 아니고, 각 파일에 맞는 확장자명으로 저장한다.) 

3. 오피스 2007에서 열어본다. 

4. 끝.

 .docx, .pptx, .xlsx 파일이 zip,압축파일,바로 열릴때

출처 - http://blog.naver.com/soulaydn/140058093247

http://ApacheIP:80/web-inf/web.xml 파일 안보이기


1) 웹 서버 혹은 웹 어플리케이션 서버에서 디렉토리 인덱싱 기능을 비활성화 시킨다.

        [tomcat의 예제]

        <!--web.xml-->
           <init-param>
                <param-name>listings</param-name>
                <param-value>false</param-value>
           </init-param>

        [apache의 예제]

        <!--httpd.conf-->

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive Off

#2009.12.08 Namha
Options IncludesNoExec FollowSymLinks
#Options FollowSymLinks MultiViews
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.0/mod/core.html#options
# for more information.
#
#    Options FollowSymLinks

Alias /icons/ "D:/Amail/app/Apache2/icons/"

<Directory "D:/Amail/app/Apache2/icons">
    Options MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "D:/Amail/ems52/market/ems/WEB-INF">
    Options MultiViews
    AllowOverride None
    Order allow,deny
    Deny from all
    Allow from 88.10.1
</Directory>

<Directory "D:/Amail/app/Apache2/manual">
#2009.12.08 Namha
#   Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all

    <Files *.html>
        SetHandler type-map
    </Files>

    SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1
    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
</Directory>

#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi

<Directory "/usr/local/apache/htdocs"> 
#
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#

수전전    Options Indexes FollowSymLinks MultiViews
수정후    Options FollowSymLinks MultiViews

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"

</Directory>

     2) 웹 소스가 위치한 웹 디렉토리에서 임시/백업 파일 및 설치 파일의 존재여부를 조사하여 이를 삭제한다.

     3) 웹 서버나 웹 어플리케이션 서버 설치시 자동 생성되는 파일 중 외부에 정보를 노출 할 수 있는 메뉴얼 파일, 샘플등을 조사하여 이를 삭제한다.

Apache NT 서비스등록

Tips 2008.12.15 16:11 Posted by 애플자라

apache -k install -n "Apache2"

아파치 bin 하위디렉토리에서 명령행 프롬프트에 다음과 같이 입력하면 아파치를 Windows NT service로 설치한다:

apache -k install

설치할 service 이름을 지정하고 싶다면 다음 명령어를 사용한다. 컴퓨터에 아파치가 여러개 설치되있다면 이름을 다르게 주어야 한다.

apache -k install -n "MyServiceName"

service가 사용할 설정파일을 직접 지정하려면 다음과 같이 한다:

apache -k install -n "MyServiceName" -f "c:\files\my.conf"

-k install 외에 다른 파라미터를 사용하지 않으면, service 이름은 Apache2가 되고 설정파일은 conf\httpd.conf가 된다.

아파치 service를 제거하기 쉽다. 간단히:

apache -k uninstall

다음과 같이 제거할 아파치 service를 지정할 수 있다:

apache -k uninstall -n "MyServiceName"

보통 아파치 service 시작, 재시작, 종료는 Apache Service Monitor나 NET START Apache2, NET STOP Apache2 같은 명령어 혹은 Windows 서비스 관리창에서 한다. 어떤 방법을 사용하든지 아파치 service를 시작하기 전에 설정파일을 검사해봐야 한다:

apache -n "MyServiceName" -t

명령행 옵션으로도 아파치 service를 조정할 수 있다. 설치한 아파치 serivce를 시작하려면:

apache -k start

명령행 옵션으로 아파치 service를 종료하려면:

apache -k stop

혹은

apache -k shutdown

실행중인 service를 재시작하여 설정파일을 다시 읽도록 할 수 있다:

apache -k restart