1. 메일 큐 전체 비우기

# postfix flush   또는 postfix -f


2. 현재 쌓인 메일 확인

# mailq


3. 메일큐 전체 삭제

# postsuper -d ALL


4. 메일큐에서 deferred 된 메일만 삭제

# postsuper -d ALL deferred

php_oracle-instantclient_01.vol1.egg

php_oracle-instantclient_01.vol2.egg

php_oracle-instantclient_01.vol3.egg

php_oracle-instantclient_01.vol4.egg

php_oracle-instantclient_01.vol5.egg

php_oracle-instantclient_01.vol6.egg

기본 운영 환경을  Nginx, php, mariadb 에 Oracle 10g로 pdo-oci 와 oci8 을 이용하여 연동 설정을 한다.



1. 일단  오라클 사이트에서  instantclient 패키지을 다운 받아 설치 한다.

   ( http://www.oracle.com/technetwork/indexes/downloads/index.html#database )


   oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

   oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

   oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm




2. oci8 을  다운로하여 컴파일 한다.

  ( wget http://pecl.php.net/get/oci8-1.4.9.tgz  또는  http://pecl.php.net/package/oci8  )   

 

   pecl download oci8-1.4.9.tgz

tar xvzf oci8-1.4.9.tgz
cd oci8-1.4.9
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
make all install



3. pdo_oci 드라이버 설치

  (첨부 : 

pdo_oci_php7.1.tar

  ) 

  또는 rpm으로 설치  --> 확인 필요. 

 

  pdo_oci_php7.tar 압출 해제 후 컴파일

tar xvf pdo_oci_php7.tar cd pdo_oci phpize ./configure --with-pdo-oci=instantclient,/usr,11.2 make make install

vim /etc/php.d/pdo_oci.ini

extension=pdo_oci.so



4. PHP와 OCI 연동

  

   echo 'extension=oci8.so' > /etc/php.d/oci8.ini

systemctl restart nginx

systemctl restart php-fpm



5. PHP.ini  설정

  

   [oci8]

   ; oci8.statement_cache_size int    

   ; 명령문 캐싱을 사용 가능하게 하고, 캐시할 명령문의 수를 지정한다. 명려문 캐싱을 사용하지 않으려면

   ; 옵션을 0 으로 설정한다.

   ;  -- 명령문 캐싱은  명령문 텍스트를 데이터베이스로 전송할 필요를 없애고 명령문에 대한 메타 테이터를 

   ;  -- php로 다시 전송하지 않아도 됩다. 이렇게 하면 연결이 유지되는 동안 명령문을 다시 사용하는 응용 프로그램

   ;  -- 에서 전반적인 시스템 성능이 향상된다

oci8.statement_cache_size = 0

--> 명령문 캐싱을 사용안함.

   


6. Oracle instantclient lib 링크 및 환경변수 파일(/etc/profile)에 추가하기

  

  [root@localhost ]# ln  -s  /usr/lib/oracle/11.2/client64   /usr/lib/oracle/11.2/client    

   --> sqlplus 명령 실행시 발생하는 lib 오류를 해결해야 한다.  

     예) ./sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory


  [root@localhost ]# vim  /etc/profile  

   # Oracle 라이브러리 추가

   export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib

   alias sqlplus='/usr/lib/oracle/11.2/client64/bin/sqlplus'



7.  확인하기

  1.  [root@localhost tmp]# php -r "oci_connect();"

      PHP Warning:  oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1

      PHP Stack trace:

      PHP   1. {main}() Command line code:0

      PHP   2. oci_connect() Command line code:1


     → oci_connect의 사용법이 잘못되었다고 한다. PHP와 OCI 모듈이 연동된 것이다.

 

 2. [root@localhost tmp]# sqlplus  DB계정/DB비번@오라클서버:1521/DB명

     SQL*Plus: Release 11.2.0.4.0 Production on Wed Jan 16 18:03:03 2019

     Copyright (c) 1982, 2013, Oracle.  All rights reserved.


     Connected to:

     Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

     With the Partitioning and Real Application Clusters options


    SQL>

리눅스의 openssl 을 사용하여  자체 서명 인증서를 만들어 보자....

자체 인증서는 웹브라우저에서는 신뢰할 수 없는 사이트라고 나오지만, SSL 보안 기능은 잘 동작한다.



1. openssl 의 설치 여부를 확인하자...


[root@smtp tls]# rpm -qa openssl

openssl-1.0.2k-8.el7.x86_64




2. 개인키 생성


[root@smtp tmp]# openssl genrsa -des3 -out private.key 2048

Generating RSA private key, 2048 bit long modulus

....................................................+++

................+++

e is 65537 (0x10001)

Enter pass phrase for private.key:                ------------>  비밀번호 입력.

Verifying - Enter pass phrase for private.key:      -----------> 비밀번호 확인 입력.

[root@smtp tmp]#


private.key 라는  개인키가 생성된다.



3. 인증 요청서 생성 ( CSR - Certificate  Signing  Request )


[root@smtp tmp]# openssl req -new -key private.key  -out server.csr

Enter pass phrase for private.key:   --------------> 개인키 비밀번호 입력.


You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX] KR

State or Province Name (full name) []:Daejeon
Locality Name (eg, city) [Default City]:Seogu
Organization Name (eg, company) [Default Company Ltd]:NETRA
Organizational Unit Name (eg, section) []:Service
Common Name (eg, your name or your server's hostname) []:mail.weschool.kr
Email Address []:master@weschool.kr

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:    --------------> 그냥 패스~.
An optional company name []:    --------------> 패스 ~.
[root@smtp tmp]# 



4. 개인키 패스워드 제거.

   

   key에 패스워드가 들어 있으면 웹데몬 구동시 마다 물어본다. 패스워드를 제거하더라도 SSL 암호화 통신에는 문제가 없다.

 

[root@smtp tmp]# cp -a private.key  private.key_org

[root@smtp tmp]# openssl rsa -in private.key_org  -out private.key

Enter pass phrase for private.key_org:  --------------> 개인키 비밀번호 입력.   

writing RSA key

[root@smtp tmp]# ls

private.key  private.key_org  server.csr

[root@smtp tmp]#





5. 인증서 생성

   

   개인키와 인증요청서를 가지고 인증서를 생성한다.

 

[root@smtp tmp]# openssl x509 -req -days 365 -in server.csr -signkey private.key -out server.crt

Signature ok

subject=/C=KR/ST=Daejeon/L=Seogu/O=NETRA/OU=Service/CN=mail.weschool.kr/emailAddress=master@weschool.kr

Getting Private key

[root@smtp tmp]# 




6. 확인

   

   생성된  사설인증서(crt)를 확인해 보자

 

[root@smtp tmp]# more private.key | head -3

-----BEGIN RSA PRIVATE KEY-----

MIIEogIBAAKCAQEAx/+LzN+U5Xn2/sz9MQFY83WU4nma95zo9WvIPc0H7OlhI2hO

MKcWjbRnD7w3zPw1rYvt+2keZeRKp1B8lq+9HlZnCmS6DWNCajW6c9kcLbWI65I7

[root@smtp tmp]#

[root@smtp tmp]# more server.crt | head -3

-----BEGIN CERTIFICATE-----

MIIDnDCCAoQCCQDAlK1Edjlw/jANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMC

S1IxEDAOBgNVBAgMB0RhZWplb24xDjAMBgNVBAcMBVNlb2d1MQ4wDAYDVQQKDAVO

[root@smtp tmp]#


+ Recent posts