가끔 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 로 올라온것을 볼 수 있습니다.