본문 바로가기
server/apache

apache 설치 전 이것저것

by "뭉치" 2021. 8. 14.
728x90

http://nemonein.egloos.com/5307960

 

NAT 을 사용하여 VBox Guest 로 ssh 등등 접속.

이동. 신고

nemonein.egloos.com

 

apache mod jk 연결

http://onlyu.blog.me/220545105078

 

Install tomcat on CentOS 7 (make install mod_jk.so)

Install tomcat on CentOS 7 (make install mod_jk.so) https://www.centos.org centos 7에 tomcat 설...

blog.naver.com

tomcat 포트는 8080인데 apache 80포트를 함께 쓰려면. 즉 apache를 통해 tomcat에 접속 하려면 mod-jk등을 이용하여 연결해야 하는데. mod_jk.so 파일을 직접 만들어서 설정하는 방법을 찾았다.

밑에서 lib를 다운받아서 하는 방법도 있으며 apt-get install libmod 어쩌구 인스톨해서 하는 방법도 있다.
http://tomcat.apache.org/download-connectors.cgi

 

 

apache mpm 관련.

 

./configure --with-mpm-${beos|event|worker|prefork|mpmt_os2|winnt}

1. MPM 이란?
Multi-Processing Module
apache가 받아 들인 요청을 처리하기 위해 'child processes'에게 분배하는 방식을 말한다.

2. 간략한 설명
1) 확장성이 필요한 사이트는 worker방식을 택하고, 안정성과 오래된 소프트웨어와 호환성이 필요한 사이트는 Prefork를 보편적으로 사용한다.
2) Linux의 경우, Prefork 방식이 기본 설정이며, Worker방식을 사용하기 위해서는 설치시 --with-mpm=worker 옵션을 주어 설치한다.

#모듈 설치 되었는지 확인 법
httpd -l
httpd -V

3. Prefork
1) 실행중인 프로세스 복제하여 실행 (메모리 영역까지 같이 복제)
2) 프로세스가 소비하는 메모리가 많음.
3) 응답프로세스를 미리 띄워놓고 클라이언트 요청 시 자식 프로세스가 반응하게 되는 방식.
4) 안전하지 않은 제 3자가 만든 모듈 사용 가능
5) 디버깅이 빈약한 플랫폼에서 쉬운 디버깅 가능
6) 일반적으로 single CPU 또는 Dual CPU에서 성능이 좋음

4. Worker
1) 자식 프로세스들이 각각 여러 쓰레드를 사용하며, 각 쓰레드는 한번에 한 연결을 담당
2) Worker 방식은 일반적으로 멀티 CPU 시스템에서 성능이 좋다
3) 요청을 쓰레드 단위로 처리 ( 최대 64개의 쓰레드 처리 가능 )
4) 지정된 만큼의 프로세스와 각 쓰레드를 준비하여 클라이언트의 요청을 받아들이는 설정
5) 기본 사용 메모리는 prefork보다 낮으며 쓰레드 간에 메모리를 서로 공유함
6) 동시접속자가 많은 사이트에 적합

5. Prefork  Worker 방식이 차이점
1) Worker Prefork에 비해 적은 메모리 사용한다.
2) Worker : 통신량이 많은 서버에 적절한 형태를 가진다.
3) Prefork : 안전하지 않은 제 3자가 만든 모듈을 사용할 수 있다.
4) Prefork : 디버깅이 빈약한 플랫폼에서 쉽게 디버깅 할 수 있다.
5) Worker‘ 와 ‘Prefork‘ 의 속도는 비슷하다.

6. event

요청과 Keep Alive한 아파치 요청을 그대로 맺는 것이 아니라, 요청을 처리하는 쓰레드를 따로 두도록 하여 분산된 처리를 할 수 있게 하는데 목적을 둔 2.4.x 버전부터 생성된 방식

7. 설치 방법

 
Apache 컴파일시 --with-mpm=worker 혹은 –with-mpm=prefrork 옵션 추가

 
1) prefork

2.2.x 버전의 경우 별도의 옵션이 없이 컴파일 시에 별도 옵션은 필요없습니다.

2.4.x의 경우 컴파일시 다음 옵션 추가 --with-mpm=prefork

(* 2.4.x 버전의 경우 별도 옵션이 없다면 event로 설치됩니다.)

 
2) worker

2.2.x, 2.4.x의 경우 컴파일시 다음 옵션 추가 --with-mpm=worker

(* 2.4.x 버전의 경우 별도 옵션이 없다면 event로 설치됩니다.)

 
3) event

2.4.x 버전부터 적용되는 방식이며, 컴파일시 별도 옵션이 없는 경우 기본값

 
8. Max Clients 수정

1) Prefork

- apache 1.x

Apache 소스파일 디렉토리에서 vi 편집기를 통해 src/include/httpd.h 파일에서 HARD_SERVER_LIMIT 256 (256 -> 1024로 변경)

수정 구문

define HARD_SERVER_LIMIT 1024

 
- apache 2.x

Apache 소스파일 디렉토리에서 vi 편집기를 통해 /server/mpm/prefork/prefork.c 파일에서

#define DEFAULT_SERVER_LIMIT 2048 (256 -> 2048로 변경

 
수정 구문

#define DEFAULT_SERVER_LIMIT 256 -> #define DEFAULT_SERVER_LIMIT 2048

 
2) Worker

apache 2.x 버젼에만 존재합니다.

MaxClients  StartServers  ThreadsPerChild 의 곱에 의해서 결정됩니다

MaxClients = StartServer * ThreadsPerChild

worker 방식은 각각의 자식 프로세스 별로 여러개의 쓰레드를 생성하여 요청을 처리하기

때문입니다.

32 * 64 = 2048

 
Maxclient를 늘리기 위한 설정

Apache 소스파일 디렉토리에서 vi 편집기를 통해 아파치설치폴더/server/mpm/worker/worker.c 파일에서 #define DEFAULT_SERVER_LIMIT 32 (16 -> 32로 변경)

 
수정 구문

#define DEFAULT_SERVER_LIMIT 32 (16 -> 32로 변경)

 

(httpd 1.x 버전은 prefork 방식만 가능하며 worker 2.x부터  가능합니다.)

 
9. 설정

 
1) httpd.conf 수정

- 아래와 같이. "Include conf/extra/httpd-mpm.conf" 설정의 주석을 제거

(기본적으로 주석처리 되어 있음)

===============================

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf

===============================

이후 vi 편집기를 통해 apache 설치경로/conf/extra/httpd-mpm.conf 파일을 열어 수정합니다.

 
2) Prefork 방식

- 하나의 자식 프로세스가 하나의 쓰레드를 갖는 구조로, 자식 프로세스는 1024까지 늘일 수 있습니다.

- 한개의 자식 프로세스는 한 개의 연결을 담당.

- 프로세스가 생성되는 구조이므로 당연히 worker보다는 많은 메모리를 사용.

- 프로세스간 메모리를 직접 공유하지 않으므로, 메모리 공간이 독립적이어서 안정적

/apache 설지경로/conf/extra/httpd-mpm.conf 파일에서

  <IfModule mpm_prefork_module>

      StartServers 5

      MinSpareServers 5

      MaxSpareServers 10

      MaxClients 150

      MaxRequestsPerChild 0

  </IfModule>

 
- 옵션 설명


l StartServer



아파치서버의 자식 프로세스 개수 지정

 
l MinSpareServers, MaxSpareServers



부하가 적어서 MinSpareServers 개수 보다 적었을 경우 최소한 이 개수 만큼 아파치가 유지하려 하며, 부하가 증가하여 프로세스 개수가 많아질 경우에 MaxSpareServers 개수 이하로 줄이려고 아파치가 구동 됩니다. 절대적인 수치는 아닙니다.

 
l  MaxClient

초기 시작시 실행가능한 최대 아파치 자식 프로세스의 개수를 지정

worker방식의 MaxClient 와는 다른 의미가 다르지만 클라이언트의 요청을 처리하는 용량을

말하므로 비슷한 의미로 보시면 됩니다.



 l  MaxReqeustPerChild



클라이언트들의 요청 개수를 제한.

만약 자식 프로세스가 이 값만큼의 클라이언트 요청을 받았다면 이 자식 프로세스는 자동으로 kill 됩니다.

(0 인 경우 무한대)

 
3) Worker 방식

- 자식 프로세스들이 여러개의 쓰레드를 갖을 수 있으며, 각 쓰레드는 한번에 한 연결을 담당합니다.

- Prefork보다 메모리 사용량이 적으며, 통신량이 많은 서버에 적절합니다.

- 쓰레드 간에 메모리 공간을 공유하며, 리소스 경합이 발생하지 않도록 주의 필요. 특히 PHP를 쓰는 경우 유의하여야 합니다.

 
/apache 설지경로/conf/extra/httpd-mpm.conf 파일에서

 
    <IfModule mpm_worker_module>

        StartServers 2

        MaxClients 150

        MinSpareThreads 25

        MaxSpareThreads 75

        ThreadsPerChild 25

        MaxRequestsPerChild 0

    </IfModule>

 

옵션 설명 


l  StartServers(Default 3)

시작시에 생성되는 서버 프로세스의 개수, 자식 프로세스의 수는 부하에 따라 동적으로 변경되기 때문에 이 값은 큰 의미가 없습니다.

 
l  ServerLimit (default : 16)                                                                                                                          

구성 가능한 child 프로세스의 제한 수.

ServerLimit 값이 필요 이상 높게 설정 된다면, 불필요한 공유 메모리가 할당 되므로 적절한 설정 필요합니다.

MaxClient  ThreadPerChild 에서 요구한 프로세스 수보다 높게 설정하지 마시기 바랍니다.

 
l  MaxClient (default : ServerLimit * ThreadsPerChild)
동시에 처리될 최대 커넥션(request)의 수


MaxClients 수치를 초과한 후 온 요청들은 ListenBackLog에 의해 큐잉됩니다.

ThreadsPerChild 옵션과 매우 긴밀하게 작용

동접자가 많을 경우,  MaxClient값을 증가시켜야 합니다.

OS FD(File Descriptor)값을 증가 시켜 MaxClient 의 상한값을 증가시키시기 바랍니다.

 
l  MinSpareThreads(default 75)
최소 thread 개수


만약 서버에 idle 쓰레드가 충분하지 않다면 child 프로세스는 idle 쓰레드가 MinSpareThreads 보다 커질때까지 생성됩니다.

 
l  MaxSpareThreads(default 250)
최대 thread개수


만약 서버에 너무 많은 idle 쓰레드가 존재하면 child 프로세스는 idle 쓰레드가 MaxSpareThreads 수보다 작아질 때까지 kill 됩니다.

  
l  ThreadPerChild
개별 자식 프로세스가 지속적으로 가질 수 있는 Thread의 개수


 
l  MaxRequestPerChild
자식 프로세스가 서비스할 수 있는 최대 요청 개수


 
l  ThreadLimit (default : 64)
child 프로세스의 라이프주기 동안 ThreadsPerChild 의 최대 설정값을 설정합니다.

ThreadLimit  ThreadsPerChild 보다 훨씬 높게 설정된다면, 여분의 미사용 공유 메모리가 할당될 것입니다.

ThreadLimit  ThreadsPerChild 모두 시스템이 감당할 수 있는 값 보다 높게 설정하면,

아파치가 기동되지 않거나 시스템이 불안정하게 될 수 있습니다.

* 이 값은 최대 예상 ThreadsPerChild 의 설정보다 높게 설정하면 안됩니다.

 
 
10. 참고

 
1) 대부분 prefork 방식이 기본적으로 사용되며, 사용자가 많은 경우에는 worker방식을 사용

 요즘 몇 몇 사이트에서 사용자가 많은 경우 worker 방식을 사용하는 경우가 있습니다.

 

2) 현재 worker 모듈 설치 되었는지 확인하는 방법

/apapche 설치경로/bin/ "httpd -l" 명령으로 현재 설치된 Apache worker방식으로 설치되었는지 확인할 수 있습니다.

============================================

Compiled in modules:

  core.c

  worker.c

  http_core.c

  mod_so.c

============================================

 

또는, httpd -V 명령으로 확인 가능합니다. (V는 대문자)

============================================

# httpd -V

Server version: Apache/2.2.15 (Unix)

Server built:   Jun 30 2010 16:59:45

Server's Module Magic Number: 20051115:24

Server loaded:  APR 1.4.2, APR-Util 1.3.9

Compiled using: APR 1.4.2, APR-Util 1.3.9

Architecture:   32-bit

Server MPM:     Worker

  threaded:     yes (fixed thread count)

    forked:     yes (variable process count)

Server compiled with....

 -D APACHE_MPM_DIR="server/mpm/worker"

 -D APR_HAS_SENDFILE

 -D APR_HAS_MMAP

 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

 -D APR_USE_SYSVSEM_SERIALIZE

 -D APR_USE_PTHREAD_SERIALIZE

 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

 -D APR_HAS_OTHER_CHILD

 -D AP_HAVE_RELIABLE_PIPED_LOGS

 -D DYNAMIC_MODULE_LIMIT=128

 -D HTTPD_ROOT="/home/paint/apache-2.2.15"

 -D SUEXEC_BIN="/home/paint/apache-2.2.15/bin/suexec"

 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

 -D DEFAULT_ERRORLOG="logs/error_log"

 -D AP_TYPES_CONFIG_FILE="conf/mime.types"

 -D SERVER_CONFIG_FILE="conf/httpd.conf"

=============================================

 http://faq.hostway.co.kr/Linux_WEB/7043

Linux WEB - Apache event MPM, Prefork MPM, Worker MPM 방식의 차이점 및 설치 시 설정 방법

( 문서는 apache 2.2.x 버전을 기반으로 작성 되었음을 알려드립니다 . 최신버전인 2.4.x 버전의 경우 2.2.x 버전과는 설정 값이 다소 다르므로 유의 하시기 바랍니다 .) 1. MPM 이란 ? Multi-Processing Module apache 가 받아 들인 요청을 처리 하기 위해 'child processes' 에게 분배하는 방식을 말합니다 . 2. 간략한 설명 1) 확장성이 필요한 사이트는 worker 방식을 택하고 , 안정성과 오래된 소프트웨어와 호환성이 필요한 사이트는 Prefork 를 보편적

faq.hostway.co.kr


1. 전제 조건
- apache 설치 시에 아래와 같이, 반드시  --with-mpm=worker 옵션을 설정 하고 설치한다.  
  이 옵션을 주지 않을 경우, Default인 Prefork방식으로 설치된다(Linux에 한함)
================================================================
./configure --prefix=/home/paint/apache-2.2.15 --enable-mods-shared=all --enable-module=so --enable-so  --with-mpm=worker
================================================================
 
* 현재 worker 모듈 설치 되었는지 확인법
- "httpd -l" 명령으로 현재 설치된 Apache가 worker방식으로 설치되었는지 확인할 수 있다.
============================================
# httpd -l
Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c
============================================
 
또는, httpd -V 명령으로 확인 가능하다. (V는 대문자)
============================================
# httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Jun 30 2010 16:59:45
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.4.2, APR-Util 1.3.9
Architecture:   32-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/home/paint/apache-2.2.15"
 -D SUEXEC_BIN="/home/paint/apache-2.2.15/bin/suexec"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
=============================================
 
 
2. 설정
 
1) httpd.conf 수정
- 아래와 같이. "Include conf/extra/httpd-mpm.conf" 설정의 주석을 제거한다.(기본적으로 주석처리 되어 있음)
===============================
...
# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf
...
===============================
 
2) httpd-mpm.conf 수정
- 경로 : $APACHE_HOME/conf/extra/httpd-mpm.conf
  * httpd.conf에서 설정한 경로를 따라간다.
    
============================  
<IfModule mpm_worker_module>
    ServerLimit                16        => 구성가능한 child 프로세스의 재한 수 
    StartServers                16        => 시작시에 초기화되는 서버 프로세스의 개수 (default : 3) / prefork default:5, mpmt_os2 default 2
    MaxClients                150        => 동시에 접속할 수 있는 Client의 상한, 즉 Precess 수 x Thread 수
    MinSpareThreads        25        => 새로운 방문자를 바로 처리하기 위하여 대기하고 있는 최소 쓰레드 개수
    MaxSpareThreads        75        => 새로운 방문자를 바로 처리하기 위하여 대기하고 있는 최대 쓰레드 개수(보통 ThreadsPerChild 값이랑 같게 설정)
    ThreadsPerChild        25        => 프로세스당 쓰레드 수(ThreadLimit와 거의 같은 의미)
    MaxRequestsPerChild   0        => 자식프로세스가 서비스할 수  있는 최대 요청 개수(0은 무한대), 
                                           오래된 프로세스들을 죽이고 새로운 프로세스를 시작하는 것에 의해 프로세스 리사이클 주기를 얼마나 할지 설정
</IfModule>
============================
 
* 프로세스 개수
- Active Child Process의 최대 개수는 MaxClients 값과 ThreadsPerChild 값의 의해서 계산된다.
- 만약, MaxClients를 4096으로 하고, ThreadPerChild를 128로 하면
  MaxClients(4096) / ThreadPerChild(128) = 32 
  따라서 32개의 프로세스가 생성된다.
- 이 수치를 변경할 경우 Apache를 완전히 재시작 해야 함.  

3. 옵션 세부 설명
 
ServerLimit (default : 16)
- 구성 가능한 child 프로세스의 제한 수.
- 이 ServerLimit 값이 필요 이상 높게 설정 된다면, 쓸데 없이 미사용 공유 메모리가 할당 되므로 적절하게 설정 필요.
- MaxClient 와 ThreadPerChild 에서 요구한 프로세스 수보다 높게 설정하지 말 것.
 
StartServers (default : 3)
- Apache기동시에 띄울 프로세스 개수
- 자식 프로세스의 수는 부하에 따라 동적으로 변경되기 때문에 이 설정은 큰 의미가 없다.
 
MaxClient (default : ServerLimit x ThreadsPerChild)
- 동시에 처리될 최대 커넥션(request)의 수
- MaxClients 수치를 초과한 후 온 요청들은 ListenBackLog에 의해 큐잉됨
- ThreadsPerChild 옵션과 매우 긴밀하게 작용함
- 동접자가 많을 경우, 이 MaxClient값을 증가시켜야 함.
- OS의 FD(File Descriptor)값을 증가 시켜 MaxClient 의 상한값을 증가시키도록 할 것.
 
MinSpareThreads (default : 75)
- Request spike를 처리할 최소 idle 쓰레드 수 
- 만약 서버에 idle 쓰레드가 충분하지 않다면 child 프로세스는 idle 쓰레드가 MinSpareThreads 보다 커질때까지 생성된다.
     
MaxSpareThreads (default : 250)
- Idle 쓰레드의 최대 수 
- 만약 서버에 너무 많은 idle 쓰레드가 존재하면 child 프로세스는 idle 쓰레드가 MaxSpareThreads 수보다 작아질 때까지 죽는다.
     
ThreadsPerChild (default : 64)
- 각 child 프로세스가 생성한 쓰레드 수 
- Child 프로세스는 기동시 ThreadsPerChild 개수만큼 쓰레드를 생성하고 결코 더 이상 생성하지 않는다. 
- 만약 worker 방식의 MPM을 사용중이라면, 전체 쓰레드 수는 평상시 부하를 처리할 만큼 충분히 많아야만 한다.
     
MaxRequestsPerChild
- 각 각의 child 프로세스가 처리할 request의 수를 제한. 
- MaxRequestsPerChild 개수를 처리한 후, child 프로세스는 종료(die)된다. 
- 0으로 설정하면 무한대
- MaxRequestsPerChild 를 0 이외의 값으로 설정하는 것은 프로세스가 (혹시나) 메모리 누수로 사용할 수 있는 메모리 양을 제한한다.
 
ThreadLimit (default : 64)
- child 프로세스의 라이프주기 동안 ThreadsPerChild 의 최대 설정값을 설정한다.
- 이 지시자를 사용할 때는 특별한 주의가 필요하다. 
- ThreadLimit 가 ThreadsPerChild 보다 훨씬 높게 설정된다면, 여분의 미사용 공유 메모리가 할당될 것이다.
- ThreadLimit 과 ThreadsPerChild 모두 시스템이 다룰 수 있는 것 보다 높게 설정한다면, 아파치가 기동되지 않거나 시스템이 불안정하게 될 수 있다. 
- 이 지시자를 당신의 최대 예상 ThreadsPerChild 의 설정보다 높게 설정하지 마라.
 
 
4. 의문점
부모프로세스를 제외하고 자식 프로세스의 경우 설정값 보다 +1, 즉 1개가 더 생성된다. 
이 프로세스는 쓰레드를 소유하고 있지 않으며, 쓰레드를 소유하지 않기 때문에 요청조차도 받지 않는다.
이 프로세스는 왜 생성되는지.. 또한 어떠한 역할을 하는지는 의문점이다.


출처: http://mcpaint.tistory.com/152 [MC빼인트와 함께]

 

 

enable-mods-shared=all 관련..

MPM과 제삼자가 만든 모듈

다음 옵션을 사용하여 필요한 다중처리모듈과 제삼자가 만든 모듈을 추가한다:
--with-module=module-type:module-file
제삼자가 만든 모듈을 정적으로 링크할 모듈 목록에 추가한다. 아파치 웹서버 소스 트리의 modules/module-type에서 모듈의 소스파일 module-file을 찾기때문에 그곳에 소스파일이 있어야 한다. 그곳에 파일이 없다면 configure는 module-file이 절대파일경로라고 가정하고 소스파일을 module-type 하위디렉토리에 복사하려고 시도한다.
이 옵션은 소스파일이 한개인 작은 외부 모듈을 추가하는데 유용하다. 더 복잡한 모듈은 개발사가 제공한 문서를 참고해야 한다.

주의

정적으로 링크된 모듈이 아닌 DSO 모듈을 원한다면 apxs를 사용하라.
--with-mpm=MPM
서버의 동작방식을 선택한다. 정확히 한가지 다중처리모듈만을 선택해야 한다. 선택하지 않으면 사용하는 운영체제의 기본 MPM을 사용한다. 사용할 수 있는 MPM에는 beos, leader, mpmt_os2, perchild, prefork, threadpool, worker가 있다.

기타 옵션

--enable-maintainer-mode
디버깅 모드와 컴파일시 경고를 작동한다.
--enable-mods-shared=MODULE-LIST
동적공유모듈로 컴파일할 모듈 목록을 지정한다. 즉, 이 모듈들은 LoadModule 지시어를 사용하여 동적으로 읽어들여야 한다.
MODULE-LIST는 공백으로 구분한 모듈명들을 따옴표로 묶은 목록이다. 모듈명에서 앞에 mod_는 뺀다. 예를 들어:
--enable-mods-shared='headers rewrite dav'
또, 특별한 키워드 all과 most를 사용할 수 있다. 예를 들어,
--enable-mods-shared=most
는 대부분의 모듈을 DSO 모듈로 컴파일한다.

 

 

apr - apache portable runtime 설치

아파치의 기능을 독립적인 프로젝트로 구분하여 톰캣에서 사용할 수 있게 하려면 apr을 설치해야 한다.
다시 말하면, web 서버의 대명사인 apache를 tomcat하나로만 사용할 수 있게 하려면 아파치 확장 라이브러리를 설치해야 한다는 것이다.

http://blog.naver.com/albertx/100171087478

 

APR - Apache Portable Runtime

* APR 컴파일 및 설치 § Download apr source [root]# wget http://mirror.apache-kr.org/apr/apr-1.4....

blog.naver.com

 

 

 

728x90

'server > apache' 카테고리의 다른 글

apache 설치  (0) 2021.08.14

댓글