>  기사  >  백엔드 개발  >  Linux에서 Apache를 설치하여 설치 모듈을 지정하고 설치 후 다른 모듈을 컴파일하고 로드합니다.

Linux에서 Apache를 설치하여 설치 모듈을 지정하고 설치 후 다른 모듈을 컴파일하고 로드합니다.

伊谢尔伦
伊谢尔伦원래의
2016-11-25 15:23:031246검색

1. Apache 설치 시 mod_proxy 모듈을 설치합니다

1. Apache를 다운로드합니다
httpd-2.2.12.tar.bz2를 다운로드하여 /home/sxs/software에 저장했습니다.

2. Apache 파일의 압축을 풉니다.
/home/sxs/software 폴더에 들어가서 실행합니다.

# tar -xjf httpd-2.2.12.tar.bz2

/home/sxs/software 아래에 httpd-2.2가 생성됩니다. .12개 폴더.

다운로드한 파일의 접미사가 tar.gz인 경우 다음 명령을 사용해야 합니다

# tar -xzf httpd-2.2.12.tar.gz

3. 설치 디렉터리 및 매개변수를 설정합니다.
새로 압축을 푼 httpd를 입력합니다. -2.2.12 폴더 , 실행:

# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=proxy

(일반적으로 인터넷에서 말하면 ./configure --prefix=/usr/local/apache, 여기에 지정된 mod_proxy 모듈 설치가 있습니다. 다른 모듈을 지정하는 방법은 명확하지 않지만 Apache가 설치되면 두 번째 부분을 통해 모듈을 추가할 수 있습니다.

4. Apache를 컴파일하고 배포합니다

# make WITH_PROXY_MODULES=yes //(网上文章一般都是直接:make)
# make install

/usr/local에 있는 apache 폴더를 보고 httpd.conf 파일을 열면

LoadModule proxy_module modules/mod_proxy.so

및 기타 코드를 볼 수 있으며, 모듈 폴더에서 해당 mod_proxy.so 파일도 볼 수 있습니다.

기본적으로 Linux에서 Apache를 설치하면 mod_proxy 및 기타 모듈이 설치되지 않습니다.

2. Apache를 설치한 후 다른 모듈을 컴파일하고 로드합니다.

이제 mod_rewrite.so를 컴파일하고 로드해야 한다고 가정합니다.

1. 압축이 풀린 Apache 디렉터리를 입력합니다. 첫 번째 부분은 /home /sxs/software/httpd-2.2.12

2. 컴파일할 파일을 찾습니다

# find ./ -name mod_rewrite.c

3. mod_rewrite.c가 있는 디렉터리를 입력합니다. 🎜>

# cd modules/mappers
4 .mod_rewrite.c 컴파일

# /usr/local/apache/bin/apxs -c mod_rewrite.c
5. mod_rewrite 모듈 설치

# /usr/local/apache/bin/apxs -ian rewrite mod_rewrite.la
참고: 위의 두 단계 4와 5를 결합할 수도 있습니다. 한 단계로

# /usr/local/apache/bin/apxs -iac mod_rewrite.c
참고:

apxs는 Apache HTTP 서버용 확장 모듈을 컴파일하고 설치하는 도구입니다. 이는 하나 이상의 소스 프로그램 또는 개체 코드 파일을 동적 공유로 컴파일하는 데 사용됩니다. mod_so에서 제공하는 LoadModule 명령과 함께 사용할 수 있도록 런타임 시 Apache 서버에 로드됩니다.

따라서 이 확장 메커니즘을 사용하려면 플랫폼이 DSO 기능을 지원해야 하며 Apache httpd에 내장 mod_so 모듈이 있어야 합니다.

apxs 도구는 이러한 조건이 충족되는지 자동으로 감지할 수 있습니다. 또한 이 명령을 사용하여 수동으로 감지할 수도 있습니다.

$ httpd -l
mod_so 모듈은 이 명령의 출력 목록에 있어야 합니다. 이러한 조건이 모두 충족되면 apxs를 사용하여 자체 DSO 모듈을 쉽게 설치하여 Apache 서버의 기능을 확장할 수 있습니다.

$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module 'foo' in /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apachectl restart: httpd started
$ _
매개변수 파일은 모든 C 소스 프로그램 파일(. c), 개체 코드 파일(.o) 또는 라이브러리(.a). apxs 도구는 자동으로 C 소스 프로그램을 컴파일하거나 접미사를 기반으로 개체 코드 및 라이브러리를 연결합니다. 그러나 미리 컴파일된 개체 코드를 사용할 때는 동적으로 로드할 수 있도록 PIC(주소 독립적 코드)인지 확인해야 합니다. GCC를 사용하여 컴파일하는 경우 -fpic 매개변수를 사용해야 하며, 다른 C 컴파일러를 사용하는 경우 해당 설명서를 참조하고 apxs에 해당하는 컴파일 매개변수를 사용해야 합니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.