PHP 매뉴얼
이전 | 3. 장. 설치 | 다음

# 서버-아파치

이 섹션은 PHP의 아파치 인스톨에 관한 주의와 힌트를 포함하고 있습니다. 유닉스와 윈도우즈 버전 양쪽 모두 대응합니다. 아파치 2에 대한 안내와 주의는 별도의 페이지에 존재합니다.

## 유닉스 아파치에 PHP 설치하기 상세

아래 10번째 줄의 configure에 설정 옵션의 완전 목록의 인수들을 선택할 수 있습니다. 안내가 적합하게 하기 위해서, 버전 번호는 제거되어 있습니다. 'xxx'를 파일에 따라 적합한 값으로 변경해야 합니다.

예 3-4. PHP 설치 안내 (아파치 공유 모듈 버전)

    1.  gunzip apache_xxx.tar.gz
    2.  tar -xvf apache_xxx.tar
    3.  gunzip php-xxx.tar.gz
    4.  tar -xvf php-xxx.tar
    5.  cd apache_xxx
    6.  ./configure --prefix=/www --enable-module=so
    7.  make
    8.  make install
    9.  cd ../php-xxx

    10. 이제, PHP를 설정합니다. 여기에서 PHP가 어떠한 확장을 사용할지
        등에 관한 다양한 옵션을 커스터마이징합니다. 사용할 수 있는 옵션
        목록은 ./configure --help 를 실행해보십시오. 이 예제에서는 간단히
        아파치 1과 MySQL 지원으로 설정합니다. apxs의 경로는 예제와 다를
        수 있습니다.

          ./configure --with-mysql --with-apxs=/www/bin/apxs

    11. make
    12. make install

        설치 후에 설정 옵션을 바꾸기를 결정했다면, 이 위의 세 단계만을
        반복하면 됩니다. 그리고 아파치를 재시작하면 새 모듈이 영향을
        미칩니다. 아파치의 재컴파일은 필요하지 않습니다.

        특별히 옵션을 지정하지 않는 한, 'make install'은 PEAR와 phpize 등의
        다양한 PHP 툴, PHP CLI 등등을 같이 설치합니다.

    13. 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의 행동에 영향을 미칩니다.

    14. PHP 모듈을 읽기 위해 httpd.conf를 수정합니다. LoadModule 구문의 오른쪽에
        있는 경로는 시스템의 PHP 모듈의 경로를 정확히 지정해야합니다. 위쪽의
        make install은 이 구문을 이미 추가했을 수도 있지만, 꼭 확인하십시오.

        PHP 4는:

          LoadModule php4_module libexec/libphp4.so

        PHP 5는:

          LoadModule php5_module libexec/libphp5.so

    15. httpd.conf에서 ClearModuleList 아래쪽에 있을 AddModule 섹션에서
        이것을 추가하십시오:

        PHP 4는:

          AddModule mod_php4.c

        PHP 5는:

          AddModule mod_php5.c

    16. 아파치에 몇몇 확장자를 PHP가 처리하도록 설정합니다. 예를 들면,
        아파치가 .php 확장자를 PHP가 처리하게 합니다. 스페이스로 구분하여
        확장자를 나열함으로써, 어떠한 확장자라도 PHP가 처리하게 할 수
        있습니다. 예제로 .phtml을 추가했습니다.

          AddType application/x-httpd-php .php .phtml

        .phps 확장자를 하이라이트된 PHP 소스로 보여주는게 일반적입니다.
        다음을 추가하면 됩니다:

          AddType application/x-httpd-php-source .phps

    17. 아파치를 시작하는 정상적인 처리를 사용하십시오. (서버를 중지하고
        다시 시작해야 합니다. HUP나 USR1 시그널을 사용한 서버로 재시작은
        안됩니다.)

아파치 설치와 유닉스 종류에 따라서, 서버를 중지하고 재시작하는 많은 방법이 존재합니다. 아래는 각각의 아파치/유닉스 설치에 서버를 재시작하는 일반적인 명령입니다. `/path/to/`을 시스템에 어플리케이션 경로로 치환해야만 합니다.

예 3-5. 아파치를 재시작하는 예제 명령

    1. 대부분의 리눅스와 SysV 계열:
    /etc/rc.d/init.d/httpd restart

    2. apachectl 스크립트 이용하기:
    /path/to/apachectl stop
    /path/to/apachectl start

    3. httpdctl과 httpsdctl(OpenSSL 사용)은 apachectl과 비슷합니다:
    /path/to/httpsdctl stop
    /path/to/httpsdctl start

    4. mod_ssl이나 기타 SSL 서버를 사용는, 수동 중지와 시작:
    /path/to/apachectl stop
    /path/to/apachectl startssl

apachectl과 http(s)dctl 바이너리 위치는 다양합니다. 시스템에 `locate`나 `whereis`나 `which` 명령이 있으면, 이들이 서버 제어 프로그램을 찾는 데 도움을 줄 것입니다.

아파치에 PHP를 컴파일하는 다른 예제들:

    ./configure --with-apxs --with-pgsql

아파치의 `httpd.conf` 파일에서 LoadModule 명령을 이용하여 아파치에 불러들일 수 있는 `libphp4.so` 공유 라이브러리를 작성합니다. PostgreSQL 지원은 `libphp4.so` 라이브러리 안에 포함합니다.

    ./configure --with-apxs --with-pgsql=shared

아파치를 위한 `libphp4.so` 공유 라이브러리를 작성하고, `php.ini` 파일에서 extension 지시어를 사용하거나 스크립트에서 dl() 함수를 이용하여 불러들일 수 있는 `pgsql.so` 공유 라이브러리를 작성합니다.

    ./configure --with-apache=/path/to/apache_source --with-pgsql

`libmodphp4.a` 라이브러리, `mod_php4.c`과 수반하는 파일들을 작성하고, 아파치 소스 트리의 `src/modules/php4` 디렉토리에 복사합니다. 그 후에 `--activate-module=src/modules/php4/libphp4.a`을 사용하여 아파치를 컴파일하면, 아파치 빌드 시스템이 `libphp4.a`을 만들고 `httpd` 바이너리에 정적으로 링크합니다. PostgreSQL 지원은 `httpd` 바이너리에 직접 포함합니다. 최종 결과로 아파치의 모든 요소와 PHP의 모든 요소를 포함하는 하나의 `httpd`을 만들어냅니다.

    ./configure --with-apache=/path/to/apache_source --with-pgsql=shared

PostgreSQL 지원을 직접 `httpd`에 포함하는 대신, `php.ini` 파일이나 dl()을 이용하여 PHP에 불러들일 수 있는 `pgsql.so` 공유 라이브러리를 얻는 것을 제외하면, 이전과 동일합니다.

여러 방법으로 PHP를 빌드하는 선택에서, 각 방법의 장단점을 고려해야 합니다. 공유 오브젝트로 빌드하면 아파치와 별도로 컴파일 할 수 있고, PHP에 추가하거나 변화가 있을 때 모든 것을 재컴파일 할 필요가 없어집니다. PHP를 아피치에 넣어서 빌드(정적 방법)하면 PHP는 빨리 읽혀지고 빠르게 작동합니다. 자세한 정보는 DSO 지원에 관한 아파치 웹페이지를 참고하십시오.

> 참고: 아파치의 기본 `httpd.conf`는 다음과 같은 섹션으로 배포됩니다:

>     User nobody
>     Group "#-1"

> 이를 "Group nogroup"이나 비슷한 것으로 ("Group daemon"도 일반적입니다) 변경하지 않으면 PHP는 파일을 열 수 없습니다.

> 참고: `--with-apxs=/path/to/apxs`을 사용할 때 apxs의 설치된 버전을 지정하십시오. 아파치 소스에 존재하는 apxs버전을 사용해서는 절대 안되며 시스템에 설치된 것이여야 합니다.

## 윈도우즈 아파치 1.3.x에 PHP 설치하기

윈도우즈 아파치 1.3.x에 PHP를 작동하는 방법은 두가지가 존재합니다. 한가지는 CGI 바이너리(php.exe)를 사용하는 것이고, 다른 방법은 아파치 모듈 DLL을 사용하는 것입니다. 두 경우 모두 아파치 서버를 중지하고, 아파치가 PHP와 작동하도록 `httpd.conf`를 수정해야 합니다.

윈도우즈에서 SAPI 모듈은 더욱 안정화할 필요가 있기 때문에, 보다 투명하고 안전한 CGI 바이너리를 사용하기를 권장합니다.

아파치에 PHP를 설정하는 일부 변경이 존재할 수 있지만, 이는 초보가 사용하기에도 충분히 간단합니다. 설정 지시어에 대한 내용은 아파치 Docs를 참고하십시오.

매뉴얼 설치 단계에서 설명한 대로 PHP 패키지를 `c:\php\`에 풀었다면, CGI 바이너리를 설정하기 위해 아파치 설정 파일에 다음의 줄을 추가해야 합니다.

- `ScriptAlias /php/ "c:/php/"`

- `AddType application/x-httpd-php .php .phtml`

- `Action application/x-httpd-php "/php/php.exe"`

위 리스트의 두번째 줄은 `httpd.conf` 파일에 존재할 수 있지만, 주석으로 되어있습니다. `c:/php/`을 PHP의 정확한 경로를 지정해야 한다는 것을 기억하십시오.

주의
CGI 설치를 사용하면, 서버는 몇몇 가능한 공격에 노출됩니다. 공격으로부터 보호하기 위해서 CGI 보안섹션을 읽어보십시오.

PHP를 아파치 모듈로 사용할 때는, `php4ts.dll`을 `windows/system`(윈도우즈 9x/Me)이나 `winnt/system32`(윈도우즈 NT/2000)이나 `windows/system32`(윈도우즈 XP) 디렉토리에 복사하십시오. 이전의 파일은 덮어씌우십시오. 그 후에 다음의 줄을 아파치 `httpd.conf` 파일에 추가해야 합니다:

- 좋아하는 편집기로 `httpd.conf`를 열어서 `LoadModule` 지시어에 위치시키고, 다음의 줄을 목록의 마지막에 추가하십시오. PHP 4는: `LoadModule php4_module "c:/php/sapi/php4apache.dll"` PHP 5는: `LoadModule php5_module "c:/php/sapi/php5apache.dll"`

- 아파치 윈도우즈 인스톨러를 사용한 후에 `mod_php4.c`을 `AddModule` 지시어로 정의해야 합니다. 특히 `CrearModuleList` 지시어가 정의되어 있으면, 몇줄 아래에 존재할 것입니다. `Addmodule` 엔트리를 발견하면, 다음 줄을 목록의 마지막에 추가하십시오: `AddModule mod_php4.c` PHP5는 `AddModule mod_php5.c`을 사용하십시오.

- `# AddType allows you to tweak mime.types`과 비슷한 구문을 찾아보십시오. 몇몇 `AddType` 엔트리를 발견하면, 다음 줄을 목록의 마지막에 추가하십시오: `AddType application/x-httpd-php .php`. 여기서 PHP로 처리할 확장자를 선택할 수 있습니다. .php는 단순한 권장 사항입니다. 심지어 .html을 포함할 수도 있고, .php3를 하위 호완을 위해 추가할 수 있습니다.

설정 파일을 변경한 후에는 서버를 재시작해야 합니다. 예를 들어, 아파치를 윈도우 서버로 사용한다면, NET STOP APACHE, NET START APACHE를 순차적으로 사용합니다. 혹은 일반적인 바로가기를 사용할 수 있습니다.

소스 코드 하이라이팅 기능을 사용은 두가지 방법이 있지만, 설치 방법에 의존합니다. 아파치에서 PHP를 SAPI 모듈로 사용하도록 설정했다면, 다음 줄을 `httpd.conf`(위에서 `AddType application/x-httpd-php .php`을 추가한 위치에)에 추가해여 이 기능을 사용할 수 있습니다: `AddType application/x-httpd-php-source .phps`.

아파치에서 PHP를 CGI 바이너리로 사용하도록 설정했다면, show_source() 함수를 사용할 필요가 있습니다. 간단히 PHP 스크립트 파일을 만들어서 이 코드를 추가하십시오: `<?php show_source ("original_php_script.php"); ?>`. `original_php_script.php`는 소스를 보고 싶은 파일 이름으로 변경하십시오.

> 참고: 윈-아파치에서 "c:\directory\file.ext"와 같은 경로 구문의 모든 백슬래쉬는 "c:/directory/file.ext"처럼 슬래쉬로 변경해야만 합니다.

이전 | 처음으로 | 다음
Servers-CGI/Commandline | 위로 | 서버-아파치 2.0