본문 바로가기

APM45

Fedora Core 7에서 Fedora Core 8로 Upgrade하기 참고 사이트 Fedora Project Wiki - Upgrading Fedora Using Yum | Fedora Core 7 -> Fedora Core 8 이번에 잘쓰던 학교 연구실 컴퓨터에 깔려진 Fedora Core 7를 Fedora Core8로 버전 업하기로 하였다. 이런 것은 버전 업이라는 용어보다는 Upgrade라는 말이 더 맞을듯 하다. 학교 연구실 컴퓨터는 64bit 컴퓨터이며, Fedora Core 7를 쓰고 있다. 준비전 작업 우선 Fedora Core 7에서 쓰는 Kernel Version을 Check를 하였다. [root@localhost ~]# cat /proc/version Linux version 2.6.23.15-80.fc7 (mockbuild@xenbuilder2.fedo.. 2008. 12. 30.
PHP의 미래 PHP V6에서 등장할 새로운 기능과 PHP 스크립트에서 달라질 부분을 살펴보자 Nathan A. Good, 선임 정보 엔지니어, Consultant 옮긴이: 박재호 이해영 dwkorea@kr.ibm.com 2008 년 7 월 29 일 PHP 다음 버전인 V6는 객체 지향 관점에서 사용하기 쉽도록 새로운 기능을 제공하고 문법을 개선합니다. 또한 핵심 함수에서 유니코드를 지원하는 등 다국어 지원과 안정성이 한층 높아졌습니다. PHP는 이미 인기가 높다. (Netcfaft에 따르면) 수백만 도메인이 PHP를 사용하며, 대다수 ISP가 PHP를 지원하며, 야후!와 같이 대표적인 웹 회사에서도 PHP를 사용한다. 이에 PHP V6는 유용성과 안정성을 더욱 높여주는 새로운 기능을 제공하여 현재 성공에 박차를 가하.. 2008. 9. 3.
MySQL DataBase 서버 튜닝 - MySQL Administrator 앞의 강좌에서 기본적인 모니터링 방법 및 Conection, Memory 튜닝에 대하여 소개하였습니다. 그러나 show status, show variables 명령어 만으로는 지속적으로 MySQL DB Server 상태를 모니터링 하기에는 불편한 점이 많습니다. 그래서 이번 강좌에는 "MySQL Administrator" 프로그램을 이용하여 효과적으로 모니터링하는 방법에 대하여 소개하도록 하겠습니다. 가. 설치 http://www.mysql.com/products/tools/ 에서 MySQL Administrator 프로그램을 다운로드 받는다. 이번 강좌에서는 모니터링에 대한 설명이기 원도우용을 다운로드 받아 개인 PC에 설치하도록 하겠습니다. 서버에 직접 설치할 경우는 서버 OS에 맞는 버전을 다운로.. 2008. 8. 21.
MySQL DataBase 서버 튜닝 - Connection과 Memory MySQL Database의 경우 Oracle 이나 MS SQL Server에 비해서 대용량의 자료를 처리하는 경우가 적기에 튜닝에 필요성이 적은 것 같습니다. 그러나 웹이라는 환경은 많은 사용자가 동시에 접속을 할 수 있기에 항상 모니터링과 최적화는 기본이라고 생각합니다. 본 강좌에서는 기본적인 모니터링 방법과 Connection과 Memory 부분에 대한 튜닝 방법을 소개하도록 하겠습니다. 가. 모니터링 및 초기화 명령어 show status - MySQL 데이타베이스의 현재 상황 show Processlist - MySQL 프로세스 목록 show variables - 설정 가능한 모든 변수 목록 flush logs - MySQL의 로그파일 초기화 flush status - MySQL 상태정보 초기화.. 2008. 8. 21.
ImageMagick을 사용한 뒤집기, 크기, 회전 큰 용량을 필요로 하는 작업을 한번에 처리하는 데는 명령행 툴만한 것이 없다. 이미지 조작도 예외는 아니다. 웹 개발자와 관리자들은 명령행이든 스크립트에서든지, 많은 파일들을 쉽게 다룰 수 있다는 것에 감사해 할 것이다. 프로그래머 Michael Still이 ImageMagick 수트를 소개한다. 이 글에서 명령행 툴을 사용하여 이미지를 조작하는 방법을 설명할 것이다. 디지털 카메라를 처음 구입했을 때부터 그리고 지금 수천 개의 스냅 사진들의 라이브러리를 관리하게 되면서부터 이 작업을 꽤 자주하고 있다. 수 많은 이미지들을 일괄 처리해야 하는 웹 개발자와 관리자들에게 명령행 툴은 더욱더 매력적이다. 왜냐하면 개발자는 이것을 스크립트와 통합할 수 있기 때문이다. 하지만 개발자가 아니더라도 이 툴은 시간을 .. 2008. 5. 28.
include와 include_once, 그리고 require의 비교 include와 require.. 그리고 include_once.. 이 세넘(이외에도 많치만.. 흠..)의 차이가 너무 산만-_-하다.. 어떤사람은 속도상의 문제로 차이를 크게 두는데.. 흠.. 요새같은 인터넷환경에서.. 뭐가 문제래? 하지만.. 대용량의 파일을 리딩하는 경우에서는 문제가 될 수 있다. 물론.. 그렇게 페이지를 기획한것이 문제겠지만.. include와 require는 모든면에서 동일하다. 의미? 사용? 전부다 동일하다.. 암튼 내 경우는 왠만하믄 require를 쓰고.. 루프의 경우만 include를 쓴다. include는 디버깅이 좀 불분명해서ㅋㅋ ( include는 Error발생시 Warning을 반환하지만.. require는 Fatal Error를 반환한다. ) include_onc.. 2008. 5. 7.
include와 require의 차이점 include나 require 구문을 통해 현재의 스크립트에 포함시키려는 파일 또는 문서가 실제로 지정한 경로가 URL상에 존재하지 않을 경우에 대한 결과의 차이임. include : 인자로 지정한 파일이나 문서가 존재하지 않는 다는 경고성 메세지를 출력하고 파싱을 계속 함 require : 치명적인 에러가 발생하였따는 메세지를 출력하고 해당 프로그램의 실행을 중지. ……………………………………………………………………………………………………………………… require require() 문은 C preprocessor의 #include와 비슷하게, 자신을 지정된 파일로 대체한다. include() 되거나 require() 되어 읽혀지는 파일은 포함된 파일의 처음에 PHP모드에서 빠져나와 HTML모드로 들어가고,.. 2008. 5. 7.
성능향상을 위한 유용한 팁!! 웹사이트 성능에 큰 영향을 주는 부분은 대개 부적절한 혹은 최적화되지 않은 데이터베이스 쿼리문에 있습니다. 하지만 데이터베이스 쿼리문이 최적화되었더라도 PHP 프로그램내에서의 간단한 몇가지 수정으로도 좀더 성능 개선을 할 수 있습니다. 해외 PHP관련 컨퍼런스등에서 여러번 제시된적 있는 몇가지 성능 튜닝을 위한 유용한 팁을 올립니다. 1. 최대한 쌍따옴표 대신에 일반따옴표를 쓴다. 쌍따옴표로 감산 문자열의 경우 PHP는 문자열 전체를 처리하게 됩니다. 따라서 처리되지 않고 그대로 유지될 혹은 나중에 처리되어야할 문자열의 경우 일반따옴표를 쓰는 것이 좋습니다. 예) $string = '문자열'; 문자열 중간에 변수가 삽입될 경우에도 최대한 일반 따옴표를 쓰는 것이 좋지요. 예) $string = '문자열1.. 2008. 4. 25.
서비스 제한측면의 아파치 활용 예제 아파치 웹서버의 활용에 있어, 보다나은 보안 설정 방법 몇 가지를 소개한다. 특정 Agent가 자꾸 사이트에 들어와서 긁어간다든지, 이미지 파일을 외부에서 링크하지 못하도록 한다든지, 특정 IP에서는 인증없이, 그 이외 IP에서는 아파치 인증을 통해서만 페이지를 보게하는 등의 응용적인 측면에서 방법들이다. 이 방법들은 제가 사용하고 있는 몇가지 방법을 정리하는 의미에서 적은 것이다. 1. 특정 브라우저의 접속을 차단 SetEnvIfNoCase User-Agent "^Microsoft URL Control" dont_want Order Allow,Deny Allow from all Deny from env=dont_want ----------------------------------------------.. 2008. 4. 25.
apache에서 이미지 캐싱 처리(mod_expires) apache에서는 mod_expires 모듈을 통해 Expires HTTP header 를 설정할 수 있다. 이를 통하여 클라이언트(웹페이지 방문자)에 캐싱되는 문서나 이미지들이 많아서 트래픽을 감소시킬 수 있다. 이미지 전용 서버나 이미지 디렉토리에 설정을 해두면 효과적이다. 이미지 서버에 지정한 다음 예를 보자. ExpiresActive On ExpiresDefault "access plus 1 month" # 제외할 디렉토리 ExpiresActive Off - ExpiresActive On 지시자로 Expires 설정을 enable 한다. - ExpiresDefault "access plus 1 month" 지시자는 액세스한지 얼마나 지나서 expire할 것인지를 지정한다. 즉, 지정한 기간만큼 클.. 2008. 4. 25.
웹 성능 향상 개발 방법(YSlow) 1. Make fewer HTTP requests - 사용자 응답시간의 80%는 프론트앤드단에서 발생한다. 많은 시간을 페이지의 컴포넌트(이미지, css, script, flash등)를 다운받는데 쓰인다는 얘기다. 위의 컴포넌트는 각각의 http request를 유발시켜서 페이지를 느리게 한다. - Image Maps - 이미지 맵은 하나의 이미지로 여러장의 이미지 효과를 나타낸다. 또한 같은 사이즈를 가지고 많은량의 http request를 줄여준다. - Css Request - 이미지맵처럼 필요한 이미지를 한장에 담고 css 스타일 적용으로 필요한 부분만 보이게 한다. - Inline Images - data:URL scheme를 이용하여 페이지에 이미지 데이터를 삽입시킨다. 따라서 html 페이지의.. 2008. 4. 25.
보다 자유로운 아파치 로그 관리를 위해 /usr/local/apache/logs/abc-access_log { daily rotate 4 compress create 0644 root root postrotate /usr/local/apache/bin/apachectl graceful> /dev/null 2>&1 # /bin/kill -HUP 'cat /usr/local/apache/logs/httpd.pid 2>/dev/null' 2> /dev/null || true endscript } logrotate 설정 /etc/logrotate.d/aaa daily rotate 4 /usr/local/apache/logs/aaa_access_log { postrotate /bin/kill -HUP `cat /usr/local/apache/logs/.. 2008. 4. 25.
아파치 에러코드표 HTTP 1.1 status codes [TOP] 100 : Continue 101 : Switching protocols 200 : OK, 에러없이 전송 성공 201 : Created, POST 명령 실행 및 성공 202 : Accepted, 서버가 클라이언트 명령을 받음 203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부만 전송 204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음 205 : Reset content 206 : Partial content 300 : Multiple choices, 최근에 옮겨진 데이터를 요청 301 : Moved permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음 302 : M.. 2008. 4. 25.
아파치에서 URL로 리다이렉션 시키기 아파치에서 URL로 리다이렉션 시키기 위해서는 httpd.conf에 virtualhost 설정을 다음과 같이 하면 된다. ServerName formman.admiviva.com Redirect permanent / http://www.formman.net 사용자가 http://formman.adminviva.com으로 들어오면 http://www.formman.net으로 바로 리다이렉션 된다. 2008. 4. 25.
[MYSQL] 로그 자동으로 지우기 MYSQL 에서 Log가 남는다. 서비스를 하다보면 이 로그가 때문에 하드디스크가 풀이 나는경우가 생긴다.-- 난감! 이럴땐 수동으로 지워주는수 밖에! But 개발자란 뭐든지 자동화를 시켜버리는게 개발자가 아니던가! 로그를 날릴때 아래와 같은 명령어가 있다 purge master logs before date_add(now(), INTERVAL -10 DAY ); 한마디로 10일전 꺼 를 날려라! 란의미이다. 뭐 이렇게만하면-- 수동으로 날리는것 똑같다. 그래도 10일전거 날리는게 어디야!라고도할수 있지만 여기서 끝나면 진정한 프로가 아니지! 여기에 CRONTAB 에다가 걸어주자.. 하루에 한번! 훗! 그러면 이제 손댈 일 없다. 2008. 4. 23.