PHP 프로그램에 대한 전반적인 사항을 정리한다.
PHP 파일의 실행 환경을 제공한다.


설치 가이드



아래 설치 가이드는 Windows Server 2003을 기준으로 작성한 것 입니다. 설치 환경이 틀릴 경우에는 별도의 주석을 달아 주세요.


설치전 사전 준비 사항

  • [Apache HTTP Server 2.2.8 with OpenSSL 0.9.8g](Apache HTTP Server 2.2.8.md) 설치



PHP 설치


- [http://www.php.net/downloads.php](http://www.php.net/downloads.php)에서 "PHP 5.2.9-2 installer"(php-5.2.9-2-win32-installer.msi)를 다운로드 한다.
![다운로드](img/PHP525_install_01.png)

- 다운로드한 설치 프로그램(php-5.2.9-2-win32-installer.msi)을 실행한다.
- '''Windows Vista에서는 관리자 권한으로 실행하여야 하므로, c:/windows/system32/cmd.exe를 관리자 권한으로 실행한 후 여기서 설치 프로그램을 실행한다.'''


- PHP의 기본 정보를 읽고 "Next" 버튼을 눌러 설치를 시작한다.
![설치 시작](img/PHP525_install_02.png)

- 라이센스를 읽고 "Next" 버튼을 눌러 다음을 진행한다.
![라이센스 확인](img/PHP525_install_03.png)

- PHP를 설치할 디렉토리를 지정한다.
![디렉토리 지정](img/PHP525_install_04.png)

- "Apache 2.2.x Module"을 선택한다.
![Web Server 지정](img/PHP525_install_05.png)

- 설치된 Apache HTTP Server의 설정 디렉토리(%APACHE_HOME%/conf)를 지정한다.
![Apache의 설정 디렉토리](img/PHP525_install_06.png)

- 설치할 항목을 지정한다.
- 향후 설정을 편하게 하기 위해서 "Extensions"을 전부 설치 하도록 선택 한다.
![설치 항목 지정](img/PHP525_install_07.png)

- "Install" 버튼을 눌러 설치를 시작한다.
![설치 시작](img/PHP525_install_08.png)

- "Finish" 버튼을 눌러 설치를 종료한다.
![설치 종료](img/PHP525_install_09.png)


PHP 환경 설정

  • PHP Extensions 설치 항목 조정

    • 설치시 Extensions 설치를 편하게 하기 위해 모든 Extension을 설치 하였다. %PHP_HOME%/php.ini 파일에서 필요한 Extenstion만 설치 되도록 조정 한다.
    • "[PHP_"로 시작하는 Section을 ";"를 사용하여 모두 주석 처리 하여 모든 Extenstion을 사용하지 않도록 한다.
    • 아래 항목만 주석을 해제하여 Extension이 사용 되도록 한다.
      • Extensions에서 MySql과 MySqli를 선택하여 MySQL과 연동할 수 있도록 한다.
      • Extensions에서 GD Library(GD2)를 선택하여 설치한다.
      • Extensions에서 gettext를 선택하여 설치한다.
      • Extensions에서 imap을 선택하여 설치한다.
      • Extensions에서 한글 설정을 위해 mbstring을 선택하여 설치 한다.
        [PHP_GD2](PHP_GD2.md)
        extension=php_gd2.dll
        [PHP_GETTEXT](PHP_GETTEXT.md)
        extension=php_gettext.dll
        [PHP_IMAP](PHP_IMAP.md)
        extension=php_imap.dll
        [PHP_MBSTRING](PHP_MBSTRING.md)
        extension=php_mbstring.dll
        [PHP_MYSQL](PHP_MYSQL.md)
        extension=php_mysql.dll
        [PHP_MYSQLI](PHP_MYSQLI.md)
        extension=php_mysqli.dll


  • %PHP_HOME% 디렉토리에 있는 libmysql.dll 파일을 c:/WINDOWS/system32에 복사한다.

    • PHP 5.3에서는 libmysql.dll이 없으므로 이 작업은 생략 한다.

  • 레지스터리 정보를 수정하기 위해 다음과 같이 php525_init.reg 파일을 만들어 실행한다.

    • regedit 명령을 사용하여 직접 수정할 수도 있다.
      Windows Registry Editor Version 5.00 
      

    HKEY_LOCAL_MACHINE\SOFTWARE\PHP "IniFilePath"="d:\OpenBiz\31_application\php525" ```



  • %PHP_HOME%/php.ini 파일의 설정 정보를 수정한다.

    • PHP의 원활한 동작을 위해 "d:/OpenBiz/91_workspace/php525/upload" 디렉토리와 "d:/OpenBiz/91_workspace/php525/session" 디렉토리를 생성한다.
      date.timezone = Asia/Seoul
      upload_tmp_dir="d:/OpenBiz/91_workspace/php525/upload"
      session.save_path="d:/OpenBiz/91_workspace/php525/session"


  • $APACHE_HOME%/conf/httpd.conf 파일을 수정하여 php를 연동한다. (index.php 추가)

    DirectoryIndex index.html index.jsp index.php


  • Document Root(%APACHE_HOME%/htdocs)에 phpinfo.php를 만들어 정상 설치되었는지 확인한다.

    • phpinfo.php
      설치 확인 MySQL 정보가 표시되는지 확인한다. Vista 또는 Windows 7에서 화면이 뜨지 않으면, 설치시 관리자 권한으로 설치 하였는지 확인 한다.


PHP 한글 설정

  • 참조 : [문자셋과 인코딩 - PHP](문자셋과 인코딩.md#PHP.md)


PHP 확장팩 설치


GD Library 설치


- [http://www.php.net/downloads.php](http://www.php.net/downloads.php)에서 PHP 5.2.5 zip package를 선택하여 "php-5.2.5-Win32.zip"를 다운로드 한다.
- 다운로드 받은 "php-5.2.5-Win32.zip" 파일의 압축을 푼다.
- 압축 푼 디렉토리에서 ext/php_gd2.dll 파일을 %PHP_HOME%/ext로 복사한다.


- %PHP_HOME%/php.ini의 맨 아래에 다음을 추가한다.
``` [PHP_GD2](PHP_GD2.md) extension=php_gd2.dll ```

- Apache HTTP Server를 종료한 후 다시 기동한다.


- [http://localhost/phpinfo.php](http://localhost/phpinfo.php)를 실행하여 GD Library 설치를 확인한다.
![GD Library 설치 확인](img/Php_gd_library.png)


GetText 설치

  • 설치시 다운로드 받은 "php-5.2.5-Win32.zip" 파일의 압축을 푼다.
  • *압축 푼 디렉토리에서 ext/php_gettext.dll 파일을 %PHP_HOME%/ext로 복사한다.

  • %PHP_HOME%/php.ini의 맨 아래에 다음을 추가한다.
    [PHP_GETTEXT](PHP_GETTEXT.md)
    extension=php_gettext.dll


  • Apache HTTP Server를 종료한 후 다시 기동한다.

  • http://localhost/phpinfo.php를 실행하여 GetText 설치를 확인한다.



IMAP 설치

  • 위 설치 방법과 동일하게 설치한다. 단 php.ini에는 다음 정보를 추가한다.
    [PHP_IMAP](PHP_IMAP.md)
    extension=php_imap.dll


Linux용 설치 가이드


Ubuntu Server에서 PHP를 정리한다.


설치전 사전 준비 사항

  • [Apache Http Server](Apache_HTTP_Server_2.2.8.md#Linux용 설치 가이드.md) 설치


PHP 설치

  • PHP 5.2.6 설치

    apt-get install php5
    apt-get install php5-gd php5-imap
    apt-get install php5-mhash
    
    #--- apache 연동 모듈 설치
    apt-get install libapache2-mod-php5
    #--- MySQL 연동 모듈 설치
    apt-get install php5-mysql
    #--- PostgreSQL 연동 모듈 설치
    apt-get install php5-pgsql

  • 기본 환경 및 언어(UTF-8) 설정

    vi /etc/php5/apache2/php.ini
       date.timezone = Asia/Seoul
       ### upload_tmp_dir    = "/var/lib/php/upload"
       ### session.save_path = "/var/lib/php/session"
       [PHP](PHP.md)
       default_charset = "UTF-8"
       magic_quotes_gpc = Off
       output_buffering = 4096
    /etc/init.d/apache2 restart

  • Document Root(/var/www)에 phpinfo.php를 만들어 정상 설치되었는지 확인한다.

  • 설치 정보

    • 설치 폴더 : /usr/share/php5/
    • 환경 폴더 : /etc/php5/
      :vi /etc/php5/apache2/php.ini

CentOS용 설치 가이드


  • PHP 현황 확인
    yum list | grep php                 #--- 설치 가능한 package 확인
    yum list installed | grep php       #--- 설치된 package 확인

  • CentOS에서 PHP를 설치 한다.
    • 2009년 10월 현재 PHP 5.1.6 버전이 설치 된다.
    • CentOS 5.5에서 PHP 5.1.6 버전이 설치 된다.
      yum -y install php php-devel

  • CentOS에서 PHP 5.3.을 설치 하기 위해서는 다음과 같이 한다.
    • 참조 : PHP 5.3 on CentOS 5, 2009.6
      rpm --import http://repo.webtatic.com/yum/RPM-GPG-KEY-webtatic-andy
      cd /etc/yum.repos.d/
      wget http://repo.webtatic.com/yum/webtatic.repo
      yum --enablerepo=webtatic install php

  • PHP Extensions을 설치 한다.
    • PHP Extensions의 설정 파일은 /etc/php.d/ 폴더에 ~.ini 형태로 저장 된다.
      yum -y install php-gd
      yum -y install php-imap
      yum -y install php-mbstring
      yum -y install php-mysql
      yum -y install php-mhash
      yum -y install php-pear

  • vi /etc/php.ini 파일의 설정 정보를 수정한다.
    • PHP의 원활한 동작을 위해 "/var/lib/php/upload" 디렉토리와 "/var/lib/php/session" 디렉토리를 생성한다.
      date.timezone = Asia/Seoul
      upload_tmp_dir    = "/var/lib/php/upload"
      session.save_path = "/var/lib/php/session"

  • PHP 설치 확인
    • /var/www/html/phpinfo.php 파일을 생성 한다.
    • http://localhost/phpinfo.php로 접속하여 화면이 정상적으로 뜨는지 확인 한다.
  • 설치 정보
    • 설치 폴더 : /usr/lib/php/
    • 실행 파일 : /usr/bin/
    • 환경 파일 : /etc/php.ini, /etc/httpd/conf.d/php.conf, /etc/php.d/


  • CentOS Test Package Repository를 사용하여 PHP 업그레이드
    • vi /etc/yum.repos.d/CentOS-Testing.repo
      [c5-testing](c5-testing.md)
      name=CentOS-5 Testing
      baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
      enabled=1
      gpgcheck=1
      gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
      includepkgs=php*
    • yum을 사용하여 Test Package Repository에 있는 패키지를 설치 할 수 있음
  • showinfo_php.bash
    #!/bin/bash
    echo 'PHP 버전       : PHP 5.2.10'
    echo 'PHP 문자셋     : UTF-8'
    echo '설치 폴더      : /usr/lib/php/'
    echo '환경 파일      : vi /etc/php.ini'
    echo '환경 파일/폴더 : /etc/httpd/conf.d/php.conf, /etc/php.d/'


PHP 한글 설정

  • 참조 : [문자셋과 인코딩 - PHP](문자셋과 인코딩.md#PHP.md)


PHP 확장 모듈 설치

 cd /usr/local/src/php-5.2.14/ext/zip
 /usr/local/php/bin/phpize
 ./configure --with-php-config=/usr/local/php/bin/php-config --enable-zip
 make
 cp /usr/local/src/php-5.2.14/ext/zip/modules/zip.so /usr/local/php/lib/

 vi /usr/local/lib/php.ini
    extension_dir = "/usr/local/php/lib/"
    extension=zip.so

- SULinux에서 php-imap 모듈 설치
``` cd /usr/local/src/php-5.3.3/ext/imap /usr/local/php/bin/phpize yum install uw-imap-devel //--- yum install libc-client-devel : CentOS에서 ./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --enable-imap --with-imap-ssl make cp /usr/local/src/php-5.3.3/ext/imap/modules/* /usr/local/php/lib/

vi /usr/local/lib/php.ini extension_dir = "/usr/local/php/lib/" extension=imap.so


### PECL/PEAR을 사용한 모듈 설치 - PECL

// pecl channel-update pecl.php.net pecl //--- 도움말 pecl install imagicmagic pecl list //--- 설치된 모듈 표시


- PEAR

// pear channel-update pear.php.net pear upgrade-all //--- 설치된 모듈 upgrade pear list


## 사용자 가이드
## 관리자 가이드 ### MySQL 데이터 등록 오류 - PHP 버전 4.x와 달리 PHP 버전 5.x에서는 숫자 항목에 빈문자열을 등록할 때 오류가 발생한다. 따라서, 숫자 항목에는 반드시 숫자를 등록하여야 한다.
- MySQL의 $MYSQL_HOME/my.ini 설정 파일의 sql-mode에서 NO_AUTO_CREATE_USER 항목을 제거하면, PHP 프로그램을 수정하지 않더라도 오류가 발생하지 않는다.

### PHP 설정 변경 - 전체 설정 변경
- vi /etc/php.ini

session.save_path = "/var/lib/php/session" session.gc_maxlifetime = 1440


- 폴더별 설정 변경
- vi /etc/httpd/conf/httpd.conf
Options FollowSymLinks AllowOverride All ``` - vi .htaccess
``` php_value session.save_path "/var/lib/php/sessionDaou" php_value session.gc_maxlifetime 3600 ```

개발자 가이드



참고 문헌


공유하기