설치 마리아디비 버전은 stable최신버전 10.0.22


1. 소스 다운로드(생략)

2. 압축해제(생략)

3. cmake

#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mariadb/data \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \
-DWITH_ARIA_STORAGE_ENGINE=1 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \

4. 사용자 추가

#useradd mysql

5. 폴더 권한 변경

#chown -R mysql.mysql /usr/local/mariadb/

6. 기본 DB 생성

#/usr/local/mariadb/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb --datadir=/usr/local/mariadb/data

7. 기존에 생성된 my.cnf 백업 및 기존에 제공되는 걸로 변경

#mv /etc/my.cnf /etc/my.cnf.bak

#cp /usr/local/mariadb/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf

[7-1] 로그 파일, pid파일 경로 변경시 추가작업

/etc/my.cnf 파일에

log-error=/path/to/logpath/mariadb.log

pid-file=/path/to/pidpath/mariadb.pid

추가.


해당 경로에 디렉토리는 자동으로 생성되지 않으므로 직접 생성해줘야함.

또 디렉토리 생성 후 소유자와 그룹을 mysql로 변경해줘야 파일이 생성됨.


해당 부분 없을시 로그파일과 pid파일은 /usr/local/mariadb/data에 저장된다.


8. my.cnf 파일에 문자열 설정값 추가


character_set_server = utf8

collation_server = utf8_general_ci


9. 마리아디비 구동


#/usr/local/mariadb/support-files/mysql.server start


10. 루트계정 비밀번호 변경


#/usr/local/mariadb/bin/mysqladmin -u root password 'new-password'


-- 트러블슈팅


ERR1) cmake 중

-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:85 (MESSAGE):

  Curses library not found.  Please install appropriate package,


SOLVE) ncurses-devel 설치

yum install ncurses-devel


--


ERR2) cmake 중

-- Looking for event.h - not found

-- Configuring incomplete, errors occurred!


SOLVE) openssl-devel 설치

yum install openssl-devel 


이걸 깔면서 의존성걸린 패키지에서 해결되는듯

--

출처: http://lsfa.tistory.com/15 [주제음슴]


국내에서는 잘 사용하지는 않지만 PostgreSQL DB의 버전 확인하는 몇가지 방법에 대한 요약이다.

첫번째
SQL> select version();
                                                version                                                
-------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.2 on i686-pc-linux-gnu, compiled by gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 32-bit
(1 row)

scott@10.10.10.22:5432:scottdb] 
SQL> 

두번째

$PGDATADIRECTORY 디렉토리안에는 PG_VERSION 화일이 있습니다.

[postgres@pg-00:/var/lib/pgsql/9.2/data]$ ls -l PG_VERSION 
-rw------- 1 postgres postgres 4 Dec 28 13:29 PG_VERSION
[postgres@pg-00:/var/lib/pgsql/9.2/data]$ cat PG_VERSION 
9.2
[postgres@pg-00:/var/lib/pgsql/9.2/data]$ 

세번째
이는 정확히 말하면 db server 의 버전이라기 보다는 client software 의 버전 정보라 하는게 정확하겠죠.
[postgres@pg-00:/var/lib/pgsql]$ psql --version
psql (PostgreSQL) 9.2.2



출처 : http://blog.netchk.net/?p=1204


CentOS 6.x 버전에서 php.4.4 컴파일 과정 중 make 시 오류

Centos 6.6 32bit
php 4.4.9
openssl-1.0.1e-30.el6_6.4.i686
openssl-devel-1.0.1e-30.el6_6.4.i686

 

php 설치 중 make 작업시 에러발생
make: *** [ext/openssl/openssl.lo] Error 1

 

여기 참고 해서 openssl.c 를 교체

 

wget http://www.softel.co.jp/blogs/tech/wordpress/wp-content/uploads/2012/10/openssl.c
cp openssl.c ext/openssl/openssl.c

또는 첨부파일   openssl.c 


Linux 계열의 OS에서 사용중인 계정의 정보는 "/etc/passwd"에서 확인할 수 있다.
 
그리고 각 계정 뒤에는 시스템 경로가 적여 있다 그중 /bin/false 와 /sbin/nologin 의 차이점을 정리해본다.
 
ㅁ /bin/false
  로긴을 허용하지만 쉘과 ssh 터널 그리고 홈디렉토리를 제공하지 않는다.
  주로 메일만 사용가능한 계정을 만들때 쓴다.
 
   예) # adduser -M -s /bin/false User_ID (-M은 home directory를 만들지 않는다.)
 

ㅁ /sbin/nologin
  완전히 로그인을 허용하지 않고 계정을 이용할 수 없다는 정책적 메시지만을 답한다.
  주로 데몬 계정의 쉘로서 많이 쓴다.

[출처] http://hanbyoru.tistory.com/72


가끔 yum을 사용하는데 다운로드 속도가 너무 안나와서 구글링을 하던 도중 fastest mirror라는 플러그인을 발견 하였다.

이 플러그인은 자동으로 속도가 빠른 미러를 찾아 적용해 준다. 설치 방법은

yum install yum-plugin-fastestmirror 또는

yum install yum-fastestmirror

설치가 되었다면 아래와 같이

 # yum update

Loading "fastestmirror" plugin

Setting up Update Process

Setting up repositories

yum이 동작 할 때 fastest mirror가 동작한다.

[출처] http://whorya.tistory.com/14



[apche 1.3.x | 2.0.x 2.2 x.2.4.x ] 아파치 버전별 차이점
 
1. 아파치 1.3.x의 경우
 
아파치 1.3.x 버전에서 MaxClient 는 기본적으로 256 까지만 설정할 수 있습니다.
이 파라미터 값을 증가시키려면 아파치의 소스를 수정 후 다시 컴파일해야 합니다.
 
아파치 소스 디렉토리에 있는 src/include/httpd.h 파일에서 HARD_SERVER_LIMIT 256 로 설정된 값을
512 나 1024로 변경하여 저장한 후, 아파치를 재 컴파일해주면 됩니다..
 
2. 아파치 2.2.x 의 경우
 
아파치 2.2 버전은 1.3 과 매우 다릅니다.
따라서 httpd.h 파일에는 MaxClient 와 관련된 옵션이 없습니다.
저도 이 옵션 찾느라 엄청나게 헤매고 결국은 영문 홈피를 번역해 가며 해답을 찾았습니다.
 
아파치 1.3 버전에서는 src/include/httpd.h 파일 하나만 수정한 후 configure 해주면 되었지만
아파치 2.2 버전에서는 2개의 파일에서 설정을 바꾸어 주어야 합니다.
 
MaxClient 값을 256에서 2048까지 높이려고 할 경우를 예로 설명드리겠습니다.
 
먼저, 소스 디렉토리에서 server/mpm/prefork/prefork.c 파일을 vi 에디터 등으로 열고
#define DEFAULT_SERVER_LIMIT 256 으로 되어 있는 부분을
#define DEFAULT_SERVER_LIMIT 2048 으로 수정한 후, 저장합니다..
 
여기서, 2048 / 256 을 하시면 8 이라는 배수가 나옵니다. 이 배수를 잘 기억해 둡니다.
 
다음에는 소스 디렉토리에서 server/mpm/worker/worker.c 파일을 vi 에디터 등으로 열면
#define DEFAULT_SERVER_LIMIT 16  으로 되어 있는 부분이 있습니다.
 
여기에서 16 * 8 (아까 prefork.c 파일에서 기본값인 256에다 곱해서 2048이 된 배수인 8) 을 곱합니다. 256 이 되는군요.

#define DEFAULT_SERVER_LIMIT 256  으로 수정한 후 저장합니다.
 
그 다음에는 ./configure --prefix=/usr/local/apache2.2 --enable-rewrite 명령으로 아파치를 재 컴파일한 후,
/usr/local/apache2.2/conf/extra/httpd-mem.conf 파일을 에디터로 열어 MaxClient 부분의 숫자값을 2048 로 변경하여
저장한 후, 아파치를 재시작하면 됩니다.
 
 
3. 아파치 2.4.x 의 경우
 
소스로 컴파일 하는 경우  방법이 아예 다르네요~
 
 
 
[mpm 접속시 최대 접속자수 설정]
아파치 웹서버의 경우 MPM(Multi Processing Module)방식에는 prefork와 worker로 나뉜다.
- prefork는 독립적인 메모리를 사용하여 안정적이지만 많은 메모리를 사용하게 된다.
- worker는 고성능의 멀티코어 프로세서 기반에서 유용하고, 더 적은 메모리를 사용하기에 통신량이 많은 경우 더 유리하다.
* 젠드가드는 prefork에서만 설치된다. 뭔지 모르면 그냥 이걸로 한다.
컴파일전 환경설정에서 —with-mpm 옵션으로 설정할 수 있고, 설치방식에 따라 최대 접속자수를 지정해야 하고, 설정하지 않을경우 기본값으로 설치가 된다.

- prefork 설정시
# vi server/mpm/prefork/prefork.c (73번 라인:버젼 따라 위치는 다를수 있음)
DEFAULT_SERVER_LIMIT의 상수값을 변경해준다. 난 1024로 수정했다
 
- worker 설정시
# vi server/mpm/worker/worker.c (84번 라인:버젼 따라 위치는 다를수 있음)
DEFAULT_SERVER_LIMIT의 상수값을 64정도로 수정해준다

     
[출처] http://www.jnetwork.co.kr/bbs/board.php?bo_table=useguide&wr_id=244&page=2


pecl 로 sqlsrv 또는 pdo_sqlsrv 설치시 아래와 같은 에러가 발생하면

/tmp/pear/temp/sqlsrv/shared/xplat.h:36:17: fatal error: sql.h: No such file or directory
 #include
 ^
 compilation terminated.
 make: *** [conn.lo] Error 1
 ERROR: `make’ failed

yum -y install unixODBC unixODBC-devel 명령을 실행한다.


<?php

$serverName = "서버IP";
$connectionInfo = array ("Database"=>"DB명","UID"=>"DB유저명","PWD"=>"DB패스워드");
$conn = sqlsrv_connect($serverName, $connectionInfo);
    

if ($conn) {

echo "연결 성공!\n";

} else {

echo "연결 실패!\n";

die ( print_r (sqlsrv_errors(), true)); 

}

sqlsrv_close($conn);

?>

'Works > PHP' 카테고리의 다른 글

Dezend Encoder  (0) 2017.07.10
PHP의 php.ini 설정에서 register_globals = on/off 차이  (0) 2017.06.21
php 퍼미션 관련 함수  (0) 2016.10.25
PHP 문자열 함수  (0) 2016.06.30
도메인을 판별하여 목적도메인으로 리다이렉션  (0) 2016.04.28


CentOS 7 은 많은 변화가 있었지만 그중 하나가 네트워크 인터페이스 이름 입니다.

지금까지 네트워크 인터페이스 이름은 eth0, eth1 식으로 고정되어 있었습니다. 하지만 CentOS 7 부터는 바이오스 장치 이름을 조합해서 생성됩니다. 다시 말해서 각 서버마다 네트워크 인터페이스 카드가 모두 동일하다고 할지라도 CentOS 7 에서의 네트워크 인터페이스 이름은 모두 다를 수가 있다는 겁니다.

이 문서는 CentOS 7 에서 네트워크 인터페이스 이름 바꾸기 에 대한 것입니다.

1. 상태확인

CentOS 7 에서의 네트워크 인터페이스 이름은 다음과 같습니다.

[root@localhost ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.55  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::5def:d7b6:b644:3343  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:f5:93:8e  txqueuelen 1000  (Ethernet)
        RX packets 76  bytes 11976 (11.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84  bytes 11460 (11.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 72  bytes 6248 (6.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 72  bytes 6248 (6.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s3 으로 나옵니다. 네트워크 인터페이스 설정 파일도 이름과 동일하게 생성 됩니다.

[root@localhost ~]# ls -al /etc/sysconfig/network-scripts/ifcfg-enp0s3
-rw-r--r--. 1 root root 312  3월 28 09:31 /etc/sysconfig/network-scripts/ifcfg-enp0s3


2. eth0 로 바꾸기

바꾸는 방법은 grub 에서 바이오스장치이름을 네트워크 인터페이스 이름으로 사용하지 않겠다고 선언하는 것입니다. 커널이 업그레이드되면 grub 에 파라메터값을 다시 해줘야 하는 불편함을 없애기위해서 grub 의 기본설정을 변경해 줍니다.

[root@localhost ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0 ipv6.disable=1"
GRUB_DISABLE_RECOVERY="true"

핵심은 ‘GRUB_CMDLINE_LINUX’ 에 ‘net.ifnames=0 biosdevname=0’ 를 추가하는 것입니다. 그리고 다음과 같이 grub2 를 다시 만들어 줍니다.
ipv6.disable=1 을 적용하면 ipv6 기반이 비활성화 됩니다.

grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.9.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.9.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.8.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.8.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.6.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.6.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-babecd961e9a465686311e3f5930f25e
Found initrd image: /boot/initramfs-0-rescue-babecd961e9a465686311e3f5930f25e.img
done

이제 네트워크 인터페이스 파일을 다음과 같이 바꿔 줍니다.

root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# mv ifcfg-enp0s3 ifcfg-eth0

[추가] 이름 변경한 ifcfg-eth0 파일 내용 중 DEVICE= 와 NAME= 또한 동일하게 변경한다.

이제 재부팅을 하면 네트워크 인터페이스 이름이 eth0 로 올라온것을 볼 수 있습니다.



configure: error: readline library not found
yum -y install readline readline-devel