The Pursuit of Happyness

반응형

PHP 기본 설정에서는 보안상 한번에 업로드 되는 파일 크기를 2MB로 제한하고 있습니다.

이 제한 설정을 변경하기 위해서는 다음과 같이 합니다.


1. php.ini 파일을 vi 에디터 등으로 열어 봅니다. (Ubuntu 14.04 기준 기본 경로 - /etc/php5/apache2/php.ini)

 > vi /etc/php5/apache2/php.ini


2. upload_max_filesize 항목과 post_max_size 항목을 찾아서 원하는 값으로 변경합니다.

이름에서 알수 있듯이 upload_max_filesize 는 php 에서 업로드 할수 있는 최대 파일 크기이고 post_max_size 는 POST 방식으로 전송되는 업로드 파일의 최대 크기 입니다. 

100MB로 크기를 변경한다면, 아래와 같이 적어 주면 됩니다.

 upload_max_filesize = 100M
 post_max_size = 100M

파일 저장후 apache2 (혹은 httpd) 를 재시작하면 바로 적용이 됩니다.









반응형

반응형

CentOS7에서는 기본으로 firewalld 라는 방화벽 솔루션이 제공됩니다.

기존의 iptables의 경우 룰 변경시 서비스를 중지해야 하는데, OpenStack이나 KVM 같은 가상화 호스트 환경에서는 네트워크 변화가 수시로 발생되어 필터링 정책 변경이 빈번해서 iptables 정책과 충돌되는 문제점 들이 발생했습니다. 이러한 문제점을 보완하기 위해서 firewalld 서비스가 활성화 되고 있는 것으로 볼 수 있습니다.

이 포스팅에서는 firewall-cmd를 이용해서 방확벽을 구성하는 간략한 방법을 정리해 보았습니다.


firewalld 에는 신뢰 수준에 따라 다음의 zone들이 미리 준비되어 있습니다.

drop - block - public - external - internal - dmz - work - home - trusted


firewall-cmd 를 이용해서 설정 변경시에는 --permanent 옵션을 사용하면, firewalld 서비스를 재시작해도 설정을 유지할 수 있습니다. 그렇지 않으면 firewalld 서비스를 재시작하면 설정이 사라집니다.


@ firewalld 서비스가 작동하고 있는지 확인하기

$ firewall-cmd --state


서비스가 작동하고 있다면 콘솔에 "running" 이라고 나올 것입니다.


@ active zone을 확인하기


$ firewall-cmd --get-active-zones


그리고 --list-all 옵션을 이용해서 각 zone 별로 구성되어 있는 firewalld 설정을 확인합니다. (public 자리에 위에서 확인한 zone 이름을 입력하면 됩니다.)


$ firewall-cmd --zone=public --list-all


앞서 이야기했던 zone들로 zone을 바꿔가며 입력해보면 각 zone 별로 어떤 서비스들을 이용할 수 있는지 확인할 수 있습니다.


@ 특정 (네트워크) 인터페이스의 zone을 변경하기


$ firewall-cmd --zone=internal --change-interface=enp0s3


enp0s3 인터페이스를 internal zone으로 설정하는 명령이었습니다.

참고로 /etc/sysconfig/network-scripts/ifcfg-enp0s3 파일을 편집해서 zone을 설정할 수도 있습니다.


$ vi /etc/sysconfig/network-scripts/ifcfg-enp0s3


다음 라인을 추가합니다.


ZONE=internal


@ 새로운 zone을 추가하기


$ firewall-cmd --new-zone=newzonename


새로 추가한 zone을 인식할 수 있게 재로딩 합니다.


$ firewall-cmd --reload


@ zone에 서비스 추가하기

firewalld에서는 IP나 Port를 추가할 수도 있지만, 이미 잘 알려진, 많이 사용되고 있는 서비스에 대해서는 서비스 이름으로 추가가 가능합니다.

추가 가능한 서비스 목록은 다음의 명령어로 확인이 가능합니다.


$ firewall-cmd --get-services


public zone에 http 서비스를 추가해 보겠습니다.


$ firewall-cmd --zone=public --add-service=http --permanent


firewalld 서비스를 재시작해도 public zone에서는 http 서비스를 이용 가능하게 됩니다.


@ zone에 특정 IP 추가하기


$ firewall-cmd --zone=public --add-source=192.168.100.0/24


@ zone에 포트 추가하기

아래 명령어로 public zone에 tcp 방식의 5000번 포트를 추가합니다.


$ firewall-cmd --zone=public --add-port=5000/tcp


열려 있는 포트를 확인합니다.


$ firewall-cmd --zone=public --list-ports


포트 대역을 추가할 때는 "-" 를 이용해서 대역을 지정할 수 있습니다.


$ firewall-cmd --zone=public --add-port=5001-9999/utp


@ 서비스 지정하기

위에서 언급된 잘 알려진 서비스 이외에 특정 포트에 해당하는 서비스를 등록할 수 있습니다.

/usr/lib/firewalld/services 폴더에 있는 잘 알려진 서비스들 중에 하나를 선택해서 /etc/firewalld/services로 복사합니다. (확장자를 제외한 파일명이 서비스명이 되므로 기존의 서비스들과 이름이 겹치지 않게 해줍니다.)


$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/custom_service.xml


복사한 파일을 엽니다.


$ vi /etc/firewalld/services/custom_service.xml


아래와 같이 내용을 편집합니다.  (tcp 방식으로 9999 포트를 사용하는 서비스로 custom_service가 등록됩니다.)


<?xml version="1.0" encoding="utf-8"?>

<service>

    <short>Custom Service</short>

    <port protocol="tcp" port="9999"/>

</service>


firewalld 서비스가 새로 추가한 서비스가 사용하는 프로토콜과 포트를 인식할 수 있게 재로딩 합니다.


$ firewall-cmd --reload


새로 추가한 서비스를 public zone에 추가합니다.


$ firewall-cmd --zone=public --add-service=custom_service



반응형

반응형

CentOS 7 (Minimal) 설치 후 네트워크 설정


Network 설정

기존에는 Ethernet ID가 eth0, eth1 이런식으로 설정되었는데, CentOS 7 에서는 Ethernet ID 기본 이름 체계가 변경되었다.

/etc/sysconfig/network-scripts 디렉터리에 가보면 ifcfg 로 시작하는 파일들을 검색해 보면 대략적인 것을 알 수 있으며, 정확하게 알기 위해서는 "nmcli d" 커맨드를 이용하면 된다.

# nmcli d


TYPE이 ethernet 인 것을 찾아서 DEVICE 이름을 확인한다. 

(여기서는 enp0s3 이었으며, 서버 환경에 따라 다른 값이 나올 수 있다.)

/etc/sysconfig/network-scripts/ifcfg-[DEVICE] 파일을 편집한다. (nmtui 커맨드를 이용하면 GUI 모드에서 설정이 가능하다.)

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3


--------------------

a. DHCP로 설정하는 경우

아래 두 가지 값만 설정 해주면 된다. (기존에 적혀있던 나머지 내용들은 그대로 둔다)

BOOTPROTO=dhcp

ONBOOT=yes


b. 고정IP로 설정하는 경우, BOOTPROTO, ONBOOT, IPADDR, NETMASK, GATEWAY, DNS 등을 설정해 주면 된다. 

(기존에 적혀있던 나머지 내용들은 그대로 둔다)

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.1.201

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=8.8.8.8

DNS2=8.8.4.4

--------------------


설정이 끝났으면 ifdown 과 ifup 을 이용해서 해당 네트워크 디바이스를 리스타트 해주면 변경된 내용이 적용된다.

# ifdown enp0s3

# ifup enp0s3


네트워크 서비스를 이용하면 전체 네트워크 디바이스를 리스타트 해준다. 네트워크 디바이스가 하나 밖에 없거나 전체 네트워크 디바이스를 리스타트해도 상관 없는 경우 아래 명령어를 이용한다.(혹은 service network restart 라고 해도 된다.)

# systemctl restart network



--------------------

참고로 gateway나 nameserver는 다른 파일에서 global하게 설정할 수도 있다.

/etc/sysconfig/network 파일에서도 hostname 이나 DNS 를 설정할수 있으며, (DNS)

/etc/resolv.conf 에서 DNS를 설정하기도 한다. (nameserver)


--------------------

현재 설정된 IP 주소 확인

# ip addr


이전 버전처럼 ifconfig를 사용하고 싶다면, net-tools를 설치하면 된다.

# yum install net-tools




반응형

반응형

예전에는 맥에 불필요한 시작 프로그램이 별로 없었는데, 요즘은 정말 많이 늘어나고 있습니다.

참고로 Adobe 프로그램을 Trial 로 잠시 설치하면 Adobe Updater, AdobeCreativeCloud 등의 데몬이 시작시에 로딩되어 상당히 거슬리는데요,

그 외에도 Oracle Java Updater 라던지, 기타 프로그램들이 부팅시에 실행되는 것은 컴퓨터 성능 저하의 원인이 됩니다.

꼭 필요한 것들 이외에는 제거해야하는데, 제대로 제거가 안되게 만든건 바이러스나 다름 없다고 생각합니다.


맥에서는 launchctl 을 통해서 시작 프로그램들을 관리할 수 있습니다. (아래 매뉴얼 참고)

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html


좀 번거롭겠지만 Terminal 에서 아래 커맨드를 이용해서 로딩된 프로그램 리스트를 확인합니다.

launchctl list


상당히 많은 리스트가 나올텐데 그중에 필요 없어 보이는 서비스에 대해서는 다음의 명령어로 제거를 합니다.

ex) AdobeCreativeCloud

launchctl unload -w /Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist


아래 경로에 관련 파일들이 있습니다. 찾아서 불필요한 파일들을 제거하시면 부팅시에 로딩되는 것을 막을 수 있습니다.

     ~/Library/LaunchAgents         Per-user agents provided by the user.
     /Library/LaunchAgents          Per-user agents provided by the administrator.
     /Library/LaunchDaemons         System wide daemons provided by the administrator.
     /System/Library/LaunchAgents   Mac OS X Per-user agents.
     /System/Library/LaunchDaemons  Mac OS X System wide daemons.

시스템 관련 데몬 이외에는 대부분 삭제해도 상관없겠지만 잘 모르시면 꼭 백업하시고 삭제하시기 바랍니다.



반응형

반응형

0. 현재 설치되어 있는 JDK 버전을 확인

java -version

javac -version 


1. 현재 설치되어 있는 OpenJDK를 삭제

sudo apt-get purge openjdk* 


2. JDK 다운로드

현재 최신버전 JDK8 rpm 버전 다운로드

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


3. Alien 설치

sudo apt-get install alien 


4. JDK 설치

sudo alien -i -c [다운로드 받은 jdk rpm 파일 경로] 


5. 설치된 JDK 버전 확인

 java -version

javac -version


반응형

반응형


https://www.whatismyip.com/

http://www.whatsmyip.org/

http://www.whatsmyip.net/

http://www.ipchicken.com/

http://www.myipaddress.com/show-my-ip-address/

https://www.iplocation.net/find-ip-address

http://www.findip.kr/

https://www.google.co.kr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=what+is+my+ip

http://checkip.dyndns.org/


반응형

반응형

드디어 Windows 10 이 출시되었습니다.

예전에는 마이크로소프트 사에서 새 소프트웨어를 출시하면 설레이는 마음으로 설치해보곤 했었는데,

언젠가 부터는 맥으로 넘어와서 잘 안쓰게 되었네요..


하지만 저는 서피스를 쓰는 관계로 윈도우와의 인연은 계속 이어가고 있습니다.

기존의 Windows 7 이상의 버전을 사용중인 일반 유저라면 무료로 업그레이드가 가능하며, 

출시일로부터 1년 이내에 업그레이드를 하는 경우 무료로 계속해서 사용이 가능합니다.


일반 설치는 업그레이드 예약을 통해 가능합니다.

자세한 내용은 아래 링크를 통해 마이크로소프트 홈페이지에서 확인 가능합니다.

http://www.microsoft.com/KO-KR/windows/windows-10-upgrade


이번에 새롭게 윈도우10이 출시되자 재미있는 관련 기사가 있어서 링크를 걸어 봅니다. 
http://www.newdaily.co.kr/news/article.html?no=264691 (한눈에 알아보는 업그레이드 변천사)
윈도우 2000대신 ME가 있어야 할거 같고, 각 버전에 대한 자세한 설명은 없고 간략한 소개와 함께 각 버전별로 시작 화면을 기사로 올리셨네요.


한국 마이크로소프트에 있는 윈도우10 관련 Q&A 글입니다.

1. 무료 업그레이드 안내
http://answers.microsoft.com/ko-kr/windows/forum/windows_10-win_upgrade/windows-10%EC%9C%BC%EB%A1%9C-%EB%AC%B4%EB%A3%8C/9a832103-feba-4bee-83f7-b45cccefa5b2?tm=1434942767953

2. 업그레이드 이후 재설치 안내
http://answers.microsoft.com/ko-kr/windows/forum/windows_10-win_upgrade/%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C/689f4b13-ab79-446a-8299-ad4b2a7297a6?tm=1434949979274

----

아래 내용에 대해서는 라이센스를 확인한 후에 업데이트 하도록 하겠습니다.
업그레이드가 아닌 클린 설치의 경우 ESD 파일을 다운로드 받아서 ISO로 변경해서 사용하면 됩니다.
이번에 출시된 RTM 버전 윈도우의 빌드 넘버는 10240.16384.150709-1700 이며, 프로 64비트 한국어 버전의 다운로드 링크를 통해서 다운로드가 가능합니다.ESD 파일명은 다음과 같습니다. 
10240.16384.150709-1700.th1_CLIENTPRO_RET_x64fre_ko-kr_7E98F3B91FFE7C6D70F328119CB91CFF7148D98A.esd

ESD 파일을 부팅이 가능한 ISO로 변환하기 위해서는 다음의 과정이 필요합니다.

마이크로소프트 홈페이지 Q&A에 등록되어 있는 것으로 보아 불법은 아닌것 같습니다.

http://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_install/instructions-create-a-bootable-iso-file-using-esd/d2768b51-221a-436e-af4e-d3b9118a8864?page=1&auth=1


요약해보면 ESD 파일을 받아서 ESD decrypter 를 이용해서 부팅이 가능한 ISO 파일로 변환하는 것입니다.

아래 링크에는 한글로 된 설명이 있습니다.

http://archwin.net/244


위의 설명이 정식 출시 이전에 작성된 것이라서 decrypter 4.7 버전으로 되어 있는데, 새로 출시된 10240 빌드 윈도우 10의 경우 decrypter 6.7 버전을 사용해야 하는 것 같습니다.

아래 링크에서 다운로드가 가능합니다. (바이러스 체크를 안해봤습니다. 혹시나 문제될수 있으니 주의하세요!!)

http://files.fm/down.php?i=uqtmaal&n=esd-decrypter-wimlib-6.7z

프로그램 실행시 가급적 한글명 경로가 없는 곳에서 실행하시는 것이 좋을 것 같네요.. (ex c:/tmp)


변환후에는 자동으로 각 언어에 맞는 파일명으로 iso 파일이 생성되며 한글 윈도우10 프로 64비트 버전의 경우 아래와 같이 파일이 생성되었습니다.

ko_windows_10_pro_10240_x64_dvd.iso


UPDATE : 윈도우10 ISO 파일은 다음 링크에서 다운로드 받으실 수 있습니다.

https://www.microsoft.com/en-us/software-download/windows10ISO


Select edition 에서 Windows 10을 선택하시고 Confirm

그리고 Select the product language 에서 Korean을 선택하시고 Confirm


32-bit or 64-bit 중 필요한 것을 선택하시면 다운로드가 시작됩니다.

참고로 64-bit 를 선택하면 설치시 32-bit 버전을 선택하실 수도 있습니다.



반응형

반응형

데이터 무제한 요금제를 사용하시거나 인터넷 속도가 빠른 환경에서 이용하시는 분들은 필요 없을지 모르겠지만..

스마트 폰에서 검색시에 불필요한 것들을 너무 많이 로딩해서 속도도 느리고 검색페이지가 데이터도 추가로 사용하는 것이 짜증이 났던 경험이 있었던 분들을 위한 텍스트 기반의 심플 웹페이지를 소개합니다.

http://hyperurl.co/surl

(에스 유알엘)


일단 접속해 보시면, 아주 심플한 텍스트 기반의 페이지가 뜹니다.

텍스트 필드에 검색 키워드 넣고 "naver" 버튼 누르면 네이버 검색 결과 페이지로 갑니다.

자동 완성 등의 기능도 지원하지 않기 때문에 키워드 검색 도중에 추가 데이터를 사용하는 것도 없습니다.


그 외에 한국 프로야구나 메이저리그 점수 페이지에는 광고가 있어서 약간의 데이터를 사용합니다.

추후에 지하철 노선도 혹은 버스 정보 등을 추가할 예정인데, 그 외에 유용한 서비스가 있다면 아이디어 부탁드리겠습니다.


감사합니다.

반응형

반응형

실행환경 Ubuntu 14.04 LTS


root 권한으로 실행한다고 가정

eth0 를 고정 IP로 설정한다고 가정

설정은 다음과 같다고 가정

IP 10.0.0.10 

gateway 10.0.0.1 

netmask 255.255.255.0 

dns-nameservers 8.8.8.8 8.8.4.4


/etc/network/interfaces 파일을 편집한다.


파일에서 아래와 같은 부분을 찾는다.

# The primary network interface 

auto eth0 

iface eth0 inet dhcp


다음과 같이 수정한다.

# The primary network interface 

auto eth0 

iface eth0 inet static 

address 10.0.0.10 

gateway 10.0.0.1 

netmask 255.255.255.0 

dns-nameservers 8.8.8.8 8.8.4.4


수정 후 다음의 두 명령어를 차례로 실행하여 eth0 리로드 한다.

ifdown eth0

ifup eth0 


혹은 다음의 명령어를 이용해서 전체 네트워크를 리로드 해도 된다. 

(네트워크 카드가 여러 개 설정 된 경우 전체가 리로드 되어 서비스가 잠시 중단될 수 있으니 주의!)

 service networking restart



반응형

반응형

실행환경 Ubuntu 14.04 LTS / node v0.10.25


이번에는 events 모듈을 이용한 채팅서버 코드이다.

events 모듈을 이용하여 원하는 명령어에 대한 동작을 다음과 같이 구현하면 된다.

event를 전송하는 channel 객체를 생성하고, 채널 객체에 clients 에는 소켓들을, subscriptions 에는 각 클라이언트에 전달하는 메써드를 지정한다.

클라이언트 연결시에는 'join' 이벤트가, 연결 종료시에는 'leave' 이벤트가 처리된다.


var events = require('events');
var net = require('net');

var channel = new events.EventEmitter();
channel.clients = {};
channel.subscriptions = {};

channel.on('join',
        function(id, client) {
                this.clients[id] = client;
                this.subscriptions[id] = function(senderId, message) {
                        if (id != senderId) {
                                this.clients[id].write(message);
                        }
                }
                this.on('broadcast', this.subscriptions[id]);
        }
);

channel.on('leave',
        function(id) {
                channel.removeListener('broadcast', this.subscriptions[id]);
                channel.emit('broadcast', id, id + " has left the chat.\n");
        }
);

var server = net.createServer(
        function(client) {
                var id = client.remoteAddress + ':' + client.remotePort;
                channel.emit('join', id, client);
                client.on('data',
                        function(data) {
                                channel.emit('broadcast', id, data.toString());
                        }
                );
                client.on('close',
                        function() {
                                channel.emit('leave', id);
                        }
                );
        }
);
server.listen(3000);


반응형