한국어

Tip&Tech

솔라리스 / PHP + Apache 설치(DSO) 제대로 하기.

PHP 조회 수 3213 추천 수 105 2006.12.05 11:37:48
*

보통은 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
List of Articles
번호 제목 글쓴이 날짜 조회 수
83 IPTV 디지털 방송 환경에서의 대화형 프로그램을 제작하기 위한 저작도구 소프트웨어개발 결과보고서 눈소리 2007-03-30 3035
82 IPTV MPEG transport stream 눈소리 2007-03-23 3059
81 Unix [security]퍼미션(permission)에 정복하기 눈소리 2007-03-23 3090
80 Unix cron 해부 눈소리 2007-03-23 3090
79 IPTV HDTV 뉴스 전문 블로그 눈소리 2007-03-22 2632
78 소스관리 unix 쉘 상에서 SVN 명령어 사용법 눈소리 2007-03-22 3114
77 Windows ClearType 폰트 튜닝 - 맑은고딕 눈소리 2007-03-22 2438
76 소스관리 eclipse에서 SVN 설정법(subclipse) 눈소리 2007-03-22 2460
75 소스관리 SVN 설치 및 기본 사용법 눈소리 2007-03-22 2513
74 IPTV Xlet 눈소리 2007-03-22 2458
73 IPTV 코덱의 정의와 종류(MPEG-1/2/4, Divx, Xvid, OGG, AC3, H.263, Video Codec) 눈소리 2007-03-22 2451
72 IPTV ATSC 눈소리 2007-03-22 2369
71 IPTV MPEG4와 h.264 요약 눈소리 2007-03-15 2897
70 JAVA class 파일 디컴파일 눈소리 2007-03-09 3197
69 JAVA ANT 기본 눈소리 2007-03-08 2515
68 JAVA java.net.SocketException: Too many open files 에 대한 대처 눈소리 2007-01-16 2722
67 JAVA 뉴라인(newlines)에 대한 이해 눈소리 2007-01-16 2667
» PHP 솔라리스 / PHP + Apache 설치(DSO) 제대로 하기. 눈소리 2006-12-05 3213
65 JAVA Java 성능개선을 위한 Programming 기법 눈소리 2006-12-05 3679
64 JAVA JVM GC(가비지컬렉션) 로그 확인 눈소리 2006-10-20 3779
63 Unix [terminal]텔넷에서 한글 입력이 안되는 경우 눈소리 2006-09-08 3293
62 utility base64 인코딩/디코딩 눈소리 2006-08-11 2952
61 Unix [file]현재 디렉토리의 대량의 파일을 각자의 파일명가운데에 특정문자 추가하여 바꾸기 눈소리 2006-08-11 3177
60 Unix [terminal]UNIX상에서 한글 출력이 깨져 나올 경우 눈소리 2006-08-11 3313
59 Unix [date]어제 날짜 구하기 눈소리 2006-08-11 3359
58 Unix [file]특정 파일의 화일명을 비슷하게 여러개 한꺼번에 바꾸기 눈소리 2006-08-11 2562
57 Unix [string]화일내의 포함된 특정문자열로 찾아서 내용만 출력하기 눈소리 2006-08-11 2620
56 Unix [string]개행을 제외한 화면내의 보이지 않는 문자 출력 눈소리 2006-08-11 2465
55 Unix [file]파일의 암호 눈소리 2006-08-11 2468
54 Unix [editor]vi - 모든문자를 대문자로 치환 눈소리 2006-08-11 2694
53 Unix [process]killall 명령 시뮬레이션 (프로세스명으로 죽이기) 눈소리 2006-08-11 3090
52 Unix [string]특정디렉토리의 모든 파일 안의 특정 문자열 치환 눈소리 2006-08-11 3102
51 Unix [directory]하위 디렉토리 한꺼번에 만들기 눈소리 2006-08-11 2509
50 Unix [network]텔넷 화면 수정 눈소리 2006-08-11 2477
49 Unix [user]사용자가 어디에서 무엇을 하는지 알아내기 눈소리 2006-08-11 2461
48 Unix [security]열려있는 파일을 보여주는 lsof 눈소리 2006-08-11 3315
47 Unix [network]텔넷 모든 접속자에게 메세지 보내기 눈소리 2006-08-11 2454
46 Unix [network]열려있는 포트 알아내기 눈소리 2006-08-11 2390
45 Unix [info]유닉스의 현재 버젼/종류/라이센스 정보 눈소리 2006-08-11 2449
44 Unix [exec]틀린명령어 틀린글자만 바꿔서 실행 눈소리 2006-08-11 2431