Category Archives: Linux

Centos 6.x에 Python 3.7.x 설치(PIP SSL 에러 까지 처리)

1. 필요한 패키지 설치
# yum install -y xz
# yum groupinstall -y 'Development Tools'
# yum install -y libffi-devel bzip2-devel ncurses-devel gdbm-devel xz-devel sqlite-devel readline-devel zlib-devel libuuid-devel

2. openssl 업그레이드(centos 6.x 에는 openssl 이 1.0.2이하가 설치되어 추후 pip사용시 에러 발생)
# curl -LO 'https://www.openssl.org/source/openssl-1.1.0h.tar.gz'
# tar -xf openssl-1.1.0h.tar.gz
# cd openssl-1.1.0h
# ./config shared --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
# make && make install

3. Library 경로 추가
# echo "/usr/local/lib" >> /etc/ld.so.conf
# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
# ldconfig

4. python 설치
# cd ..
# curl -LO 'https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz'
# tar -xf Python-3.7.5.tar.xz
# cd Python-3.7.5
# ./configure --prefix=/usr/local --enable-shared --with-openssl=/usr/local/openssl --with-system-ffi
# make && make install
# ldconfig

centos 6.x to 7

centos 6.x upgrade 7

※ 아래 업데이트 진행시 데이터 손실이나 OS 재설치가 필요할 수 있습니다.


yum을 통해 모든 패키지 업데이트 후 리부팅
# yum update -y;
# reboot

clean install 을 위해 기존 설치된 apm 관련 패키지 삭제
# yum remove httpd httpd-tools apr apr-util mysql mysql-client compat-mysql51.x86_64 mysql-libs.x86_64 php*

update 관련 설치
# yum install http://buildlogs.cdn.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm

preupg 설치 : http://buildlogs.cdn.centos.org/centos/6/upg/x86_64/Packages/
# wget http://buildlogs.cdn.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-1.0.2-36.0.1.el6.centos.x86_64.rpm
# wget http://buildlogs.cdn.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-contents-0.5.14-1.el6.centos.noarch.rpm
# wget http://buildlogs.cdn.centos.org/centos/6/upg/x86_64/Packages/redhat-upgrade-tool-0.7.22-3.el6.centos.noarch.rpm
# rpm -Uvh *.rpm

Pre-upgrade Assistant 실행
# preupg

RedHat Upgrade Tool 실행
# rpm –import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
# centos-upgrade-tool-cli –network 7 –instrepo=http://mirror.centos.org/centos/7/os/x86_64

리부팅

GPG key retrieval failed: [Errno 14] Peer cert cannot be verified or peer cert invalid

MariaDB repo 추가후 yum update시 아래와 같은 에러 발생

GPG key retrieval failed: [Errno 14] Peer cert cannot be verified or peer cert invalid

원인은 현재 시간과 서버의 시간이 맞지 않은 것으로 보여 지며

서버 시간 업데이트 (rdate) 등으로 처리 완료

ex) rdate -s time.bora.net

이후 yum update 를 실행하면 정상작동

Centos PHP 5.3 → 5.x 업그레이드

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
# /etc/yum.repos.d/remi.repo

사용할 PHP 버젼에 enabled를 0에서 1로 교체
기본 remi의 경우 5.4

# yum update php* -y

PHP7 Uncaught Error: Class “ZipArchive” 오류시

Centos 6.x x86_64 기준

remi REPO 활성화 되어 있어야함.

remi REPO 추가
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

#yum install php70-php-pecl-zip

centos 6 PHP7 + MSSQL

YUM REPO 추가
1. epel
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2. remi
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

기존 PHP 삭제
# yum remove php*

PHP 7 설치 (php 패키지는 개인의 용도에 맞게 설치)
# yum –enablerepo=remi install php70 php70-php php70-php-cli php70-php-common php70-php-gd php70-php-json php70-php-mbstring php70-php-mcrypt php70-php-mysqlnd php70-php-opcache php70-php-pear php70-php-xml php70-php-devel php70-php-imagick php-pdo

※ php.ini 파일은 /etc/opt/remi/php70/php.ini로 변경 됨

PHP 7에서 MSSQL로의 쿼리는 PDO를 통해 가능하며 접속 및 테스트 코드는 아래와 같음

”config.php”

<?
 // 반드시 DRIVER는 dblib로
 $_DB_INFO_MSSQL = array(
  "_DRIVER" => "dblib", 
  "_HOST" => "", 
  "_PORT" => "1433", 
  "_USER" => "", 
  "_PASS" => "", 
  "_DB" => ""
 );
?>

”MSSQL_SAMPLE.php”

<?
/*
* Project : MSSQL DBMS Class (PHP 7 PDO)
* Author : colorweb <enjoyteam@nate.com>
* Last : 2016-08-02
*/
class MSSQL extends PDO
{
    private $dns;
    private $engine; 
    private $host; 
    private $database; 
    private $user; 
    private $pass; 
    private $port; 
    private $_CONN; 
    private $_RESULT;
    
    public function __construct(){ 
        $this->engine = $GLOBALS["_DB_INFO_MSSQL"]["_DRIVER"]; 
        $this->host = $GLOBALS["_DB_INFO_MSSQL"]["_HOST"]; 
        $this->database = $GLOBALS["_DB_INFO_MSSQL"]["_DB"]; 
        $this->user = $GLOBALS["_DB_INFO_MSSQL"]["_USER"]; 
        $this->pass = $GLOBALS["_DB_INFO_MSSQL"]["_PASS"]; 
        $this->port = $GLOBALS["_DB_INFO_MSSQL"]["_PORT"]; 
        $this->dns = $this->engine.\':dbname=\'.$this->database.";host=".$this->host.":".$this->port; 
    } 

    function connect()
    {
        try {
            $this->_CONN = new PDO ($this->dns, $this->user, $this->pass);
        } catch (PDOException $e) {
            //$this->logsys .= "Failed to get DB handle: " . $e->getMessage() . "\\n";
            echo "Failed to get DB handle: " . $e->getMessage();
        }
    }

 function select($sql)
 {
  if(!$this->_CONN) { $this->connect(); }

  $_CONN = $this->_CONN;

  $this->_RESULT = $_CONN->query($sql);

  return $this->_RESULT;
 }

 function get_rows()
 {
  return $this->_RESULT->fetchAll();
 }

 function excute($sql)
 {
  if(!$this->_CONN) { $this->connect(); }

  $_CONN = $this->_CONN;

  $this->_RESULT = $_CONN->prepare($sql);
  $this->_RESULT->execute();

  return $this->_RESULT;
 }
}
?>

”MSSQL_TEST.php”

<?
include "config.php";
include "MSSQL_SAMPLE.php";

$_MSSQL = new MSSQL($_DEBUG);
$_MSSQL->connect();
$db_list = $_MSSQL->select("select * from [table_name]");
$db_data = $_MSSQL->get_rows();

// 전체 데이터를 가져와서 출력하는 예제 #1
for($i=0; $i<sizeof($db_data); $i++)
{
    echo $db_data[$i][FIELD_NAME];
}
?>

 

MySQL(MariaDB) 사용자 추가

1. 사용자 추가
mysql> create user \'[아이디]\’@\'[접속지]\’ identified by \'[비밀번호]\’;

2. 사용자 권한 할당
mysql> grant all privileges on [DB명].* to \'[아이디]\’@\'[접속지]\’;

사용예 : 사용자 abc가 localhost에서 접근 가능하며 abc DB에 모든 권한을 가지도록 설정
mysql> create user \’abc\’@\’localhost\’ identified by \’abc123\’;
mysql> grant all privileges on abc.* to \’abc\’@\’localhost\’;

KVM + webvirtManager

※ 설치 환경
– CentOS 6.6 x86_64
– 리얼 IP 1, NAT 구성

1. KVM 설치
https://github.com/retspen/webvirtmgr/wiki/Setup-Host-Server

2. webvirtManager 설치
https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr

3. console 구동을 위한 python library 추가 설치
※ 설치시 반드시 python-devel 필요
# pip install numpy

4. console 구동을 위한 python 실행
# python /var/www/webvirtmgr/console/webvirtmgr-console

5. webvirtmanager 실행
# python /var/www/webvirtmgr/manage.py runserver 0:8000

Linux PHP Freetds 설치

MSSQL 사용을 위한 freetds 설치 방법

# yum install freetds php-mssql

MSSQL 접속 확인

# tsql -H [DB서버 주소] -p [DB서버 포트] -U [DB 유저 아이디] -P [DB 유저 패스워드]

끝…

zookeeper & redis setting

0. 시스템
– Centos 6.5 x86_64
– Server 5대

1. Cloudera-chd Repo 추가
$ curl -sSfL http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm –output /tmp/cdh.rpm

$ curl -sSfL http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera –output /tmp/cdh.key

$ sudo rpm –import /tmp/cdh.key

$ sudo yum localinstall -y -q /tmp/cdh.rpm

2. epel Repo 추가 [기존 글 참조]

3. Remi Repo 추가
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

4. zookeeper & redis 설치
$ yum –enablerepo=remi,remi-test install redis
$ yum install zookeeper