모든 php파일에 include를 추가하지 않고, 자동으로 최상단에
특정 php파일을 include한 효과를 줄 수 있습니다.
php.ini 에
와 같이 추가해주면 됩니다.
아파치에서는 더욱 유연하게 설정됩니다.
php_value auto_prepend_file = /home/httpd/include/auto.php
와 같이 기술하면 되며,
특정 Directory 만 적용한다면 <Directory> 안에 기술하면 되겠네요.ㅎ
nginx 에서는 아래와 같이 적용합니다.
아쉽게도 저는 lighttpd 를 좋아하는데. lighttpd.conf에는 지원되지 않네요
SSL 인증서 생성시 인증키 값을 넣을경우
아파치 구동시 키 비밀번호를 입력하지 않으면 구동되지 않는다.
Apache/2.2.13 mod_ssl/2.2.13 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server test.com:443: (RSA)
Enter pass phrase:
서버를 관리하는 입장에서는 비밀번호를 입력하지 않고 자동으로 웹서버를
구동하여야할때가 있다.
인증서 생성시 이미 넣어버린 키는 아래와 같이 하면 간단하게 없앨 수 있다.
단, 당연한 이야기지만 기존 비밀번호는 알고있어야한다.-.-;
openssl rsa -in server.key.org -out server.key
다시 아파치를 stop후 start해본다.
<VirtualHost *>
ServerName www.original.com
ServerAlias original.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^original.com$ [OR]
RewriteCond %{HTTP_HOST} com.$
RewriteRule ^/(.*) http://www.somewhere.com/$1 [L,R]
</VirtualHost>
위와 같이 처리하면 서브URI까지 다 변경이 됨.
도메인변경등으로 서버변경등의 사유로 기존경로를 그대로 써야할경우 유용함.
아주 간단한 옵션인데.. 구글한테 물어봐도 시원한 답변이 없고.
테스트해보니 문제없이 다 잘되긴하는데.. 아파치 2.2.9의 버그로밖에 생각할 수 없따아.
https://issues.apache.org/bugzilla/show_bug.cgi?id=45221
vi /boot/loader.conf 에
커널옵션에
최신 아파치(현재는 2.2.8) 을 가져와서 소스를 푼다.
PHP를 동적으로 컴파일해야 하기때문에 --enable-so는 반드시 있어야한다.
그외 옵션추가는 ./configure --help 로 참조한다.
설치디렉토리는 --prefix 의 경로로 변경이 가능하다.
위의 과정으로 아파치 컴파일은 완료!
FreeBSD 6.x 의 경우 기본적으로 perl이 설치안되어 있으므로 perl을 설치하는것이 좋겠다.
make install
최신의 PHP 소스롤 가져다가 푼다.
아파치 설치된 경로로 apxs 를 지정한다.
그외 gd를 설치하거나 기타 옵션을 주려면, 마찬가지로 ./configure --help를 참고한다.
인스톨후
PHP 5.2.5 (cli) (built: Nov 5 2007 16:11:19)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
아파치 설치 디렉토리에서
vi /usr/local/apache2/conf/httpd.conf
후에 아래를 추가한다.
AddType application/x-httpd-php .php
그외 아파치 설정파일은 아파치 문서를 참고한다.
.php 외의 확장자나 다른확장자로 php 스크립트를 만드려면 뒤에 추가해도 된다.
ex) AddType application/x-httpd-php .php .html .phps
아파치를 구동한다.
/usr/local/apache2/bin/apxs -cia mod_evasive20.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -g -O2 -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o mod_evasive20.lo mod_evasive20.c && touch mod_evasive20.slo
gcc: mod_evasive20.c: No such file or directory
gcc: No input files specified
apxs:Error: Command failed with rc=65536
.
/usr/local/apache2/bluild/libtool 을 사용하지 않고, 기본 OS의 libtool을 사용하니 에러가 없어지고
잘되는군... 황당.
/usr/local/apache2/bin/apxs -cia mod_evasive20.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -g -O2 -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o mod_evasive20.lo mod_evasive20.c && touch mod_evasive20.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_evasive20.la -rpath /usr/local/apache2/modules -module -avoid-version mod_evasive20.lo
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_evasive20.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp mod_evasive20.la /usr/local/apache2/modules/
cp .libs/mod_evasive20.so /usr/local/apache2/modules/mod_evasive20.so
cp .libs/mod_evasive20.lai /usr/local/apache2/modules/mod_evasive20.la
cp .libs/mod_evasive20.a /usr/local/apache2/modules/mod_evasive20.a
chmod 644 /usr/local/apache2/modules/mod_evasive20.a
ranlib /usr/local/apache2/modules/mod_evasive20.a
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apache2/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_evasive20.so