이 섹션은 유닉스 시스템 아파치 2.0에 특화된 PHP 설치에 관한 정보와 힌트를 담고 있습니다.
제품 환경에서 아파치 2 쓰레드 MPM 사용을 권하지 않습니다. prefork MPM을 사용하거나, Apache 1을 사용하십시오. 이유는 관련 FAQ 아파치2 쓰레드 MPM 사용하기를 읽어보십시오.
아파치 2.0 서버에 대한 이해를 위하여 » 아파치 문서를 살펴보길 권합니다.
Note: PHP와 아파치 2.0.x 호환 노트
다음 버전의 PHP가 최신 버전의 아파치 2.0.x에서 작동합니다:
- » http://www.php.net/downloads.php에서 받을 수 있는 PHP 4.3.0 이후.
- 최신 안정 개발 버전. 소스 코드를 » http://snaps.php.net/php5-latest.tar.gz에서 얻거나 윈도우 바이너리를 » http://snaps.php.net/win32/php5-win32-latest.zip에서 얻을 수 있습니다.
- 릴리즈 예정 버전을 » http://qa.php.net/에서 받을 수 있습니다.
- 언제든지 » 익명 CVS를 통해서 PHP를 받을 수 있습니다.
위 PHP 버전은 아파치 2.0.40 이후에 호환됩니다.
아파치 2.0 SAPI 지원은 PHP 4.2.0부터 시작했습니다. PHP 4.2.3은 아파치 2.0.39에서 작동하며, PHP 4.2.3과 다른 아파치 버전을 사용하지 마십시오. 그러나, 권장하는 설정은 최신 버전의 아파치2와 PHP 4.3.0 이후를 사용하는 것입니다.
언급한 모든 PHP 버전은 아파치 1.3.x에서 잘 동작합니다.
최신 버전의 » 아파치 2.0과 위에서 언급한 위치에서 적합한 PHP 버전을 내려받습니다. 이 빠른 가이드는 아파치 2.0과 PHP를 시작하는 기본적인 내용만 다루고 있습니다. 자세한 정보는 » 아파치 문서를 읽으십시오. 지시가 틀리지 않기 위해서, 여기에서 버전 번호는 제거했습니다. 'NN'을 적합한 값으로 변경해야 합니다.
Example #1 설치 안내 (아파치 2 공유 모듈 버전)
1. gzip -d httpd-2_0_NN.tar.gz 2. tar xvf httpd-2_0_NN.tar 3. gunzip php-NN.tar.gz 4. tar -xvf php-NN.tar 5. cd httpd-2_0_NN 6. ./configure --enable-so 7. make 8. make install 이제 /usr/local/apache2 아래 모듈 적재 지원과 표준 MPM prefork로 설정한 아파치 2.0.NN이 존재합니다. 설치를 테스트하려면 일반적인 아파치 서버 시작 절차를 사용합니다. 즉: /usr/local/apache2/bin/apachectl start 그리고 PHP 설정을 위하여 서버를 중단합니다: /usr/local/apache2/bin/apachectl stop. 9. cd ../php-NN 10. 이제, PHP를 설정합니다. 여기에서 확장을 활성화 하는 등, PHP를 다양한 다양한 옵션으로 커스터마이즈합니다. ./configure --help 를 실행하여 가능한 옵션 목록을 확인할 수 있습니다. 예제에서는 아파치 2와 MySQL 지원으로 간단히 설정합니다. 실제 apxs 경로는 다를 수 있습니다. 시스템에 따라서 apxs2로 존재하는 경우도 있습니다. ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql 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-paht=/some/path 를 사용합니다. php.ini-recommended를 선택한다면, 안에서 변경 목록을 읽어서, 어떤 PHP 행동에 영향을 주는지 확인하십시오. 14. httpd.conf를 수정하여 PHP 모듈을 적재합니다. LoadModule 구문 우측에서는 시스템의 PHP 모듈 경로를 가르켜야 합니다. 위에서 make install이 이미 이를 추가했을 수도 있지만, 꼭 확인해보십시오. For PHP 4: LoadModule php4_module modules/libphp4.so For PHP 5: LoadModule php5_module modules/libphp5.so 15. 어떠한 확장자를 PHP로 해석할지 아파치에 알려줍니다. 예를 들어, 아파치가 .php 파일을 PHP로 해석하게 합시다. 단순히 아파치 AddType 지시어를 사용하는 대신, exploit.php.jpg 등의 파일이 업로드되어 PHP로 실행되는 것을 막습니다. 이 예제를 사용하여, PHP로 해석할 어떠한 확장자라도 단순히 추가할 수 있습니다. 예시를 위해 .phtml을 추가하겠습니다. <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> 또는, .php, .php2, .php3, .php4, .php6, .phtml 파일을 PHP로 실행하게 할 수 있습니다. 이렇게 하면 됩니다: <FilesMatch "\.ph(p[2-6]?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> .phps 파일을 PHP 소스 파일로 실행하려면, 다음을 추가합니다: <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> 16. 아파치 서버를 시작하는 정상 절차를 사용합니다, 즉: /usr/local/apache2/bin/apachectl start - 또는 - service httpd restart
위 단계를 따라하면 아파치2 웹 서버를 PHP SAPI 모듈로 실행하게 됩니다. 물론, 아파치와 PHP에는 많은 설정 옵션이 존재합니다. 자세한 정보는 해당 소스 트리에서 ./configuration --help를 쳐 보십시오. 멀티쓰레드 버전의 아파치2를 빌드하려면, 표준 MPM 모듈 prefork를 worker나 perchild로 덮어써야 합니다. 이를 위해서는 위의 6번째 단계에서 --with-mpm=worker나 --with-mpm=perchild 옵션을 추가해야 합니다. 이를 하기 전에, 최소한 이 일이 어떻게 작동하는지와 장단점을 파악하십시오. 자세한 정보는 » MPM 모듈에 관한 아파치 문서를 읽어보십시오.
Note: 내용 협상을 사용하려면, 아파치 MultiViews FAQ를 읽어보십시오.
Note: 아파치 멀티쓰레드 버전을 빌드하려면, 시스템이 쓰레드를 지원해야 합니다. 이 경우 PHP를 실험적인 Zend Thread Safety (ZTS)로 빌드하게 합니다. 그러므로 모든 확장을 사용할 수 없습니다. 권장하는 설치는 아파치를 표준 prefork MPM 모듈로 빌드하는 것입니다.