RHEL/CentOS 와 Windows 및 Unix 에 php 설치

Window에 설치

php 5.6 부터 WebServer를 내장했으므로 내장 웹서버를 통해 개발환경을 설정하는 걸로 가정했습니다.

Php the right way 에 따라 최신 버전의 PHP 를 사용하는 것을 권장합니다.


  1. http://windows.php.net/download/ 에서 사용하는 OS 의 비트수에 맞게 php 를 다운로드합니다. (NTS 는 None Thread Safe 인데 개발시에는 별 문제가 없겠지만 Thread Safe 버전을 받는 것을 권장합니다.)

    예: http://windows.php.net/downloads/releases/php-7.1.9-Win32-VC14-x64.zip
  2. 적당한 폴더에 압축을 풀고 해당 폴더로 이동합니다.

    cd d:\devel\php\php-7.1.9-Win32-VC14-x64
  3. Windows 의 PATH 환경 변수에 위 폴더를 추가합니다.

  4. php.ini-development 파일을 php.ini 로 복사하고 에디터로 엽니다.
  5. extension_dir 을 php 를 설치한 경로로 수정(이게 없으면 windows 에서는 extension 을 제대로 로딩하지 못합니다.)

    extension_dir = "ext"
  6. 사용하는 php extension 들을 주석 해제하여 활성화합니다. 어떤 항목을 해제할 지 모르겠다면 아래와 같이 쓸 일이 거의 없는 몇 개 모듈(gmp, interbase 등) 을 빼고 주석 해제해 주면 됩니다.

     Click here to expand...
    extension=php_bz2.dll
    extension=php_curl.dll
    extension=php_fileinfo.dll
    ;extension=php_ftp.dll
    extension=php_gd2.dll
    extension=php_gettext.dll
    ;extension=php_gmp.dll
    extension=php_intl.dll
    ;extension=php_imap.dll
    ;extension=php_interbase.dll
    ;extension=php_ldap.dll
    extension=php_mbstring.dll
    ;extension=php_exif.dll      ; Must be after mbstring as it depends on it
    extension=php_mysqli.dll
    ;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
    extension=php_openssl.dll
    ;extension=php_pdo_firebird.dll
    extension=php_pdo_mysql.dll
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_odbc.dll
    extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll
    ;extension=php_pgsql.dll
    ;extension=php_shmop.dll
    
    ; The MIBS data available in the PHP distribution must be installed.
    ; See http://www.php.net/manual/en/snmp.installation.php
    ;extension=php_snmp.dll
    
    extension=php_soap.dll
    ;extension=php_sockets.dll
    ;extension=php_sqlite3.dll
    ;extension=php_tidy.dll
    extension=php_xmlrpc.dll
    ;extension=php_xsl.dll
  7. 그 외 몇 가지 항목을 필요시 설정합니다. 

    ## Maximum amount of memory a script may consume (128MB)
    memory_limit = 256M
    
    
    upload_max_filesize = 2M
    post_max_size = 8M
    
    
    date.timezone 을 ""Asia/Seoul"
  8. 현재 폴더에 i.php 를 만들고 아래 내용을 넣고 저장합니다.

    <?php
    phpinfo();
  9. PHP 내장 웹서버를 구동합니다.

    php 내장 웹서버 구동
    php -S localhost:8000
  10. Browser 에서 localhost:8000/i.php 을 입력하여 php 의 정상 설치 여부를 확인합니다.


RHEL/CentOS 에 설치

  1. RHEL/CentOS php 설치 참고


Un*x에서 Source 로 설치

아래의 내용은 오래 됐으니까 리눅스에 여러 버전의 php 설치하기(php multiple version) 참고하세요.


설치는 소스를 빌드하거나 각 OS 별로 제공되는 Package를 받아서 설치할 수 있으며 GNU automakeAutoconf 를 이용하여 빌드하므로 다음 세 가지 절차를 거쳐서 빌드됩니다.

./configure
make
make install

컴파일시에 --disable-module 명을 주어 다음과 같이 특정 extension들을 비활성화 할 수 있으며 (예: openssl 비활성화시 --without-openssl 추가) ./configure 뒤에는 다음과 같은 옵션들을 줄 수가 있습니다.

## 아파치 2.x대의 모듈로 빌드. apxs의 경로 필요.
--with-apxs2=/usr/local/apache2/bin/apxs
## Oracle 지원을 포함하여 빌드. 옵션뒤에 Oracle Directory를 명시할수 있으며 주어지지 않을 경우 $ORACLE_HOME을 참고.
--with-oci8
## MySQL 지원을 포함하여 빌드.
--with-mysql=/opt/mysql
## MySQL 을 사용할 경우 Unix Domain Socket의 경로를 지정.
--with-mysql-sock=/tmp/mysql.sock

기타 다른 옵션은 ./configure --help 를 수행하면 볼 수 있으며 기본적으로 gcc를 사용하며 debugging 정보를 넣어서 컴파일 하는데 configure 수행시 사용할 컴파일러를 다음과 같이 지정할 수 있습니다.

CC=cc CFLAGS=-O ./configure options ..

--prefix 옵션을 추가할 경우 설치할 경로를 지정할 수 있습니다(기본값 /usr/local/)

configure

다음 옵션은 

  1. MySQL 을 지원하고
  2. OpenSSL을 지원하고
  3. /usr/local 에 설치하도록 컴파일 합니다.
CFLAGS=-O ./configure --with-apxs2=/usr/sbin/apxs --with-mysql --with-pdo-mysql --with-openssl --prefix=/usr/local

설치

make install 을 수행하면 설치가 되며 /usr/local 등의 폴더는 root 권한이 필요하므로 make install 시 적절한 권한의 유저로 수행해야 합니다.

test

make test 를 수행합니다.

run

Oracle 을 지원했을 경우 다른 시스템에 컴파일된 버전을 옮기면 Oracle library 나 기타 의존성 있는 라이브러리의 경로가 달라서 실행되지 않을 수 있습니다.
이럴 경우 ldd `which php` 를 통해 의존성 있는 shared library 들이 어떤건지 확인 후 의존성 있는 library가 있는 경로를 LD_LIBRARY_PATH 환경 변수에 설정하여 php 를 구동해야 합니다


같이 보기