php 는 httpd 의존이기 때문에 php를 설치하는것만으로 httpd 가 설치 된다.
즉 httpd 먼저 설치하고 php를 설치해야 한다.
webtatic의 php 는 기본적으로 nts 이며 apache 가 prefork mpm 이 아닐 경우(worker, event) zts 모듈이 로딩이 되므로 매우 편리하게 사용할 수 있다.
아울러 yum을 이용한 설치이기 때문에 더 훌륭하다 =3=b
레포지트리 설치
1 |
~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm |
php7 설치
1 |
~]# yum -y install php70w php70w-bcmath php70w-cli php70w-common php70w-intl php70w-devel php70w-gd php70w-mbstring php70w-mcrypt php70w-mysqlnd php70w-opcache php70w-pdo php70w-pear php70w-soap php70w-xml |
httpd 의 mpm 방식은 아래와 같이 확인한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
~]# httpd -V Server version: Apache/2.4.27 (centos) Server built: Sep 7 2017 17:44:04 Server's Module Magic Number: 20120211:68 Server loaded: APR 1.5.2, APR-UTIL 1.5.2 Compiled using: APR 1.5.2, APR-UTIL 1.5.2 Architecture: 64-bit Server MPM: worker threaded: yes (fixed thread count) forked: yes (variable process count) Server compiled with.... ... ... |
httpd -V 의 값에서 MPM 이 worker 로 확인 되었기 때문에 cron 등에 등록을 하려면 zts-php 명령어를 써야 한다.
worker 방식은 메모리를 적게 쓰지만 다종의 웹솔루션을 운영하기엔 적합하지 않다.
다만 apache 2.4.27 에서 부터 http/2 를 지원하는데 있어서 profork 방식을 더 이상 지원하지 않는다.
서버에서 php 명령어 실행은 아래와 같이 한다.
1 2 3 4 5 6 7 8 9 10 11 12 |
~]# php -v PHP 7.0.22 (cli) (built: Aug 9 2017 18:23:24) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.22, Copyright (c) 1999-2017, by Zend Technologies ~]# zts-php -v PHP 7.0.22 (cli) (built: Aug 9 2017 18:28:49) ( ZTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.22, Copyright (c) 1999-2017, by Zend Technologies [root@MGB-v2-DAC01 oci8-2.1.7]# |
httpd를 worker MPM 으로 설치 하고 webtatic 제공의 php 를 설치한 서버에서 오라클 접속을 사용하기 위해 oci8 익스텐션 설치 진행은 아래와 같이 진행 했다.
phpize, config-php 역시 각각 zts-phpize, zts-php-config 의 것을 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
~]# rpm -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm ~]# rpm -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm ~]# pecl download oci8-2.1.7.tgz ~]# tar xvfpz oci8-2.1.7.tgz ~]# cd oci8-2.1.7/ ~]# zts-phpize ~]# ./configure --with-php-config=/usr/bin/zts-php-config --with-oci8=shared,instantclient,/usr/lib/oracle/12.2/client64/lib/ ~]# make ~]# make install ~]# echo 'extension=oci8.so' > /etc/php-zts.d/oci8.ini ~]# apachectl restart |
설치된 oci8 은 웹문서에서 phpinfo(); 로 호출하거나 리눅스 쉘에서 아래와 같이 확인이 가능하다.
1 2 3 4 5 6 7 8 9 10 11 |
~]# zts-php -i|grep oci8 oci8 oci8.connection_class => no value => no value oci8.default_prefetch => 100 => 100 oci8.events => Off => Off oci8.max_persistent => -1 => -1 oci8.old_oci_close_semantics => Off => Off oci8.persistent_timeout => -1 => -1 oci8.ping_interval => 60 => 60 oci8.privileged_connect => Off => Off oci8.statement_cache_size => 20 => 20 |
PS. webtatic 에서는 php70w-odbc를 제공 하므로 yum 설치로 odbc를 이용할 수 있다.