태그 Archives: PHP

webtatic 저장소를 이용한 php 7 설치

php 는 httpd 의존이기 때문에 php를 설치하는것만으로 httpd 가 설치 된다.
즉 httpd 먼저 설치하고 php를 설치해야 한다.

webtatic의 php 는 기본적으로 nts 이며 apache 가 prefork mpm 이 아닐 경우(worker, event) zts 모듈이 로딩이 되므로 매우 편리하게 사용할 수 있다.
아울러 yum을 이용한 설치이기 때문에 더 훌륭하다 =3=b

 

레포지트리 설치

 

php7 설치

 

httpd 의 mpm 방식은 아래와 같이 확인한다.

httpd -V 의 값에서 MPM 이 worker 로 확인 되었기 때문에 cron 등에 등록을 하려면 zts-php 명령어를 써야 한다.
worker 방식은 메모리를 적게 쓰지만 다종의 웹솔루션을 운영하기엔 적합하지 않다.
다만 apache 2.4.27 에서 부터 http/2 를 지원하는데 있어서 profork 방식을 더 이상 지원하지 않는다.

 

서버에서 php 명령어 실행은 아래와 같이 한다.

 

httpd를 worker MPM 으로 설치 하고 webtatic 제공의 php 를 설치한 서버에서 오라클 접속을 사용하기 위해 oci8 익스텐션 설치 진행은 아래와 같이 진행 했다.
phpize, config-php 역시 각각 zts-phpize, zts-php-config 의 것을 사용한다.

 

설치된 oci8 은 웹문서에서 phpinfo(); 로 호출하거나 리눅스 쉘에서 아래와 같이 확인이 가능하다.

 

PS. webtatic 에서는 php70w-odbc를 제공 하므로 yum 설치로 odbc를 이용할 수 있다.

php 에서 dbcon 작성 할때 localhost가 안먹을때.

서버에 APM 이 정상 설치가 되어 있으나

php 로 dbcon 을 할때 127.0.0.1은 먹고 localhost 로는 접속이 불가능할때가 있다.

 

먼저 mysql로 로그인을 하여 소켓 위치를 파악하자.

 

php.ini 파일에서 mysql.default_socket 을 일치시켜준다.

 

그다음 아파치나 php-fpm을 재시작 ‘ㅅ’a

php 5.4 paser error

php 5.4 이후부터는 php.ini 에서 E_ALL 을 설정하더라도 paser fatal 오류를 표기 하지 않는다.

보안적인 측면이라고 생각된다. 다만 이부분은 php 개발자를 괴롭힐 것이다 ‘ㅅ’a

 

이때 php.ini 를 수정하거나 php 문안에 ini_set 을 넣어도 동작하지 않는다.
(php.ini 직접 설정은 기본적으로 표시하지 않도록 되었고,
php문서에서의 ini_set 설정은 fatal 에러시 입력한 ini_set역시 무시되기 때문.)

아래와 같은 내용을 .htaccess 파일에 넣으면 fatal 오류를 볼수 있다.

모든 에러표시는 위와 같이 설정한다.

E_ALL  (32767)

 

일반적인 서비스제공용 설정의 설정값은 22519이다.

E_ALL & ~E_STRICT & ~E_NOTICE & ~E_DEPRECATED
E_ALL  (32767) – E_STRICT (2048) – E_NOTICE (8) – E_DEPRECATED(8120) = 22519

 

아래는 Error Level Constants 별 번호 이다.
E_WARNING(2)
E_NOTICE(8)
E_STRICT(2048)
E_DEPRECATED(8192)
E_ERROR(1)

E_PARSE(4)
E_CORE_ERROR(16)
E_CORE_WARNING(32)
E_COMPILE_ERROR(64)
E_COMPILE_WARNING(128)
E_USER_ERROR(256)
E_USER_WARNING(512)
E_USER_NOTICE(1024)
E_RECOVERABLE_ERROR(4096)
E_USER_DEPRECATED(16384)
계산기 : http://www.bx.com.au/tools/ultimate-php-error-reporting-wizard