*
보통은 php + apache 설치 하기가 어렵지 않습니다. 이곳저곳 커뮤니티에서 권하는 설치법을 따라하시면 됩니다.
그러나, "솔라리스"에 설치할 경우는 약간의 요령이 필요한 데요. 다음과 같습니다. 솔라리스의 경우는 DSO(php와 apache의 분리 컴파일) 형식으로 설치해야 한다고 하는군요.
설치에 사용한 버젼은 php v4.3.9 / Apache 1.3.27 입니다.
자잘한 설명 잘라내고 핵심만 담았습니다.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<<<<< APACHE 설치 >>>>>
1. gunzip apache_xxx.tar.gz
2. tar -xvf apache_xxx.tar
3. cd apache_xxx
4. ./configure --prefix=/usr/local/apache --enable-shared=max
./configure --prefix=/usr/local/apache --enable-module=so
5. make
6. make install
<<<<< PHP 설치 >>>>>
1. gunzip php-xxx.tar.gz
2. tar -xvf php-xxx.tar
3. cd ../php-xxx
4. 이제, PHP를 설정합니다. 여기에서 PHP가 어떠한 확장을 사용할지
등에 관한 다양한 옵션을 커스터마이징합니다. 사용할 수 있는 옵션
목록은 ./configure --help 를 실행해보십시오. 이 예제에서는 간단히
아파치 1과 MySQL 지원으로 설정합니다. apxs의 경로는 예제와 다를
수 있습니다.
./configure --with-apxs=/www/bin/apxs
5. make
6. make install
설치 후에 설정 옵션을 바꾸기를 결정했다면, 이 위의 세 단계만을
반복하면 됩니다. 그리고 아파치를 재시작하면 새 모듈이 영향을
미칩니다. 아파치의 재컴파일은 필요하지 않습니다.
특별히 옵션을 지정하지 않는 한, 'make install'은 PEAR와 phpize 등의
다양한 PHP 툴, PHP CLI 등등을 같이 설치합니다.
7. php.ini 파일 구성하기:
cp php.ini-dist /usr/local/lib/php.ini
PHP 옵션을 지정하기 위해 .ini 파일을 수정할 수 있습니다. php.ini를 다른
위치에 놓기를 원한다면, 10번째 단계에서 --with-config-file-path=/some/path를
사용하십시오.
php.ini-recommended를 사용한다면, 안에 있는 변경 목록에 주의하십시오.
그들은 PHP의 행동에 영향을 미칩니다.
8. PHP 모듈을 읽기 위해 httpd.conf를 수정합니다. LoadModule 구문의 오른쪽에
있는 경로는 시스템의 PHP 모듈의 경로를 정확히 지정해야합니다. 위쪽의
make install은 이 구문을 이미 추가했을 수도 있지만, 꼭 확인하십시오.
PHP 4는:
LoadModule php4_module libexec/libphp4.so
PHP 5는:
LoadModule php5_module libexec/libphp5.so
9. httpd.conf에서 ClearModuleList 아래쪽에 있을 AddModule 섹션에서
이것을 추가하십시오:
PHP 4는:
AddModule mod_php4.c
PHP 5는:
AddModule mod_php5.c
10. 아파치에 몇몇 확장자를 PHP가 처리하도록 설정합니다. 예를 들면,
아파치가 .php 확장자를 PHP가 처리하게 합니다. 스페이스로 구분하여
확장자를 나열함으로써, 어떠한 확장자라도 PHP가 처리하게 할 수
있습니다. 예제로 .phtml을 추가했습니다.
AddType application/x-httpd-php .php .phtml
.phps 확장자를 하이라이트된 PHP 소스로 보여주는게 일반적입니다.
다음을 추가하면 됩니다:
AddType application/x-httpd-php-source .phps
11. 아파치를 시작하는 정상적인 처리를 사용하십시오. (서버를 중지하고
다시 시작해야 합니다. HUP나 USR1 시그널을 사용한 서버로 재시작은
안됩니다.)
<<<<< EXTENSION 생성 >>>>>
1. cd ./ext
2. ./ext_skel --extname=gmpsapi ((--proto=gmpsapi.proto))
3. cd ..
4. vi ext/gmpsapi/config.m4
config.m4 파일을 수정한다.
16, 18 번쨰 라인의 dnl 을 제거한다.
16 dnl PHP_ARG_ENABLE(gmpsapi, whether to enable gmpsapi support,
17 dnl Make sure that the comment is aligned:
18 dnl [ --enable-gmpsapi Enable gmpsapi support])
▼
16 PHP_ARG_ENABLE(gmpsapi, whether to enable gmpsapi support,
17 dnl Make sure that the comment is aligned:
18 [ --enable-gmpsapi Enable gmpsapi support])
5. vi ext/gmpsapi/gmpsapi.c
gmpsapi.c 파일을 수정한다.
67, 69 번쨰 라인을 주석처리한다.
/* #ifdef COMPILE_DL_ */
ZEND_GET_MODULE(gmpsapi)
/* #endif */
6. ./buildconf
7. ./configure --[with|enable]-gmpsapi=shared
8. make
9. ./php -f ext/first_test/first_test.php
10. vi ext/first_test/first_test.c
11. make
libtool --preserve-dup-deps --mode=compile gcc -Iext/gmpsapi/ -I/usr3/flyhong/php-4.3.8/ext/gmpsapi/ -DPHP_ATOM_INC -I/usr3/flyhong/php-4.3.8/include -I/usr3/flyhong/php-4.3.8/main -I/usr3/flyhong/php-4.3.8 -I/usr3/flyhong/php-4.3.8/Zend -I/usr3/flyhong/php-4.3.8/ext/xml/expat -D_POSIX_PTHREAD_SEMANTICS -I/usr3/flyhong/php-4.3.8/TSRM -g -O2 -prefer-pic -c /usr3/flyhong/php-4.3.8/ext/gmpsapi/gmpsapi.c -o ext/gmpsapi/gmpsapi.lo
libtool --preserve-dup-deps --mode=link gcc -DPHP_ATOM_INC -I/usr3/flyhong/php-4.3.8/include -I/usr3/flyhong/php-4.3.8/main -I/usr3/flyhong/php-4.3.8 -I/usr3/flyhong/php-4.3.8/Zend -I/usr3/flyhong/php-4.3.8/ext/xml/expat -D_POSIX_PTHREAD_SEMANTICS -I/usr3/flyhong/php-4.3.8/TSRM -g -O2 -o ext/gmpsapi/gmpsapi.la -export-dynamic -avoid-version -prefer-pic -module -rpath /usr3/flyhong/php-4.3.8/modules -avoid-version -module -L/usr/ucblib -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2 ext/gmpsapi/gmpsapi.lo
libtool --preserve-dup-deps --mode=install cp ext/gmpsapi/gmpsapi.la /usr3/flyhong/php-4.3.8/modules
libtool --preserve-dup-deps --mode=compile gcc -I. -I../.. -I../../include -I../../main -I../../Zend -I../../TSRM -I../xml/expat -DPHP_ATOM_INC -D_POSIX_PTHREAD_SEMANTICS -g -O2 -prefer-pic -c gpmiapi.c -o gpmiapi.lo
>>> gcc -I. -I../.. -I../../include -I../../main -I../../Zend -I../../TSRM -I../xml/expat -DPHP_ATOM_INC -D_POSIX_PTHREAD_SEMANTICS -g -O2 -c gpmiapi.c -fPIC -DPIC -o .libs/gpmiapi.o
libtool --preserve-dup-deps --mode=link gcc -I../.. -I../../include -I../../main -I../../Zend -I../../TSRM -I../xml/expat -DPHP_ATOM_INC -D_POSIX_PTHREAD_SEMANTICS -g -O2 -o gpmiapi.la -export-dynamic -avoid-version -prefer-pic -module -rpath /usr3/flyhong/php-4.3.8/ext/gpmiapi/modules -avoid-version -module -L/usr/ucblib -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2 gpmiapi.lo
libtool --preserve-dup-deps --mode=install cp gpmiapi.la /usr3/flyhong/php-4.3.8/ext/gpmiapi/modules
cp .libs/libgmpsapi.so ./gmpsapi.so
cp *.so /usr/local/lib/php/extensions
/www/bin/apachectl restart
tail -f /www/logs/error_log