만약 한 대의 컴퓨터에서 여러 개의 웹사이트를 운영하고 싶다면? 정답은 VirtualHost를 이용하는 것이다.

X:\xampp\apache\conf\extra\httpd-vhosts.conf 파일을 수정하자.

우선 19번째 줄에서 코멘트를 해제하자.

NameVirtualHost *:80

맨 끝에 다음을 추가한다.

<VirtualHost *:80>
 DocumentRoot "/xampp/htdocs"
 ServerName localhost
</VirtualHost>

기본값대로 브라우저에 localhost라고 입력해도 여전히 X:\xampp\htdocs 를 가리키게 하기 위함이다.

이제 우리가 추가할 폴더는 다음과 같이 지정한다.

예1) 브라우저에 wems라고 치면 X:\home\wems\public_html 를 가리키게 하고 싶을 때. 폴더명을 이렇게 해두면 php에서는 여전히 문서 위치가 /home/wems/public_html 로 리눅스에 업로드한 후에도 절대 경로가 같기 때문에 편하다.

<VirtualHost *:80>
 DocumentRoot "/home/wems/public_html"
 ServerName wems
 <Directory "/home/wems/public_html">
  Options Indexes Includes execCGI
  AllowOverride None
  Order Allow,Deny
  Allow From All
 </Directory>
</VirtualHost>
예2) wems.snupaim.net이라는 주소에 대해 X:\home\wems\public_html 내의 파일을 서비스하고 싶을 때

<VirtualHost *:80>
 DocumentRoot "/home/wems/public_html"
 ServerName wems.snupaim.net
 <Directory "/home/wems/public_html">
  Options Indexes Includes execCGI
  AllowOverride None
  Order Allow,Deny
  Allow From All
 </Directory>
</VirtualHost>

(참고로 이 경우, 네임서버에서 wems.snupaim.net에 대해 내 컴퓨터의 아이피를 가리키도록 bind를 설정해두어야 외부에서도 wems.snupaim.net 주소로 내 컴퓨터 내의 X:\home\wems\public_html 내의 파일을 서비스받을 수 있다.)

apache의 설정을 바꾼 것이므로 XAMPP 혹은 apache만 껐다가 다시 켜야 반영된다.


여기서 끝은 아니고, C:\windows\system32\drivers\etc\hosts 파일을 열고 수정해줘야 한다.

127.0.0.1 localhost

은 이미 추가되어 있을 것이다. 여기에 다음을 추가해야 제대로 동작한다.

127.0.0.1 wems

X:\home\wems\public_html 안에 index.html 파일을 만들어서 <h1>WEMS</h1> 이라고 적고 저장한 후 브라우저 주소줄에 wems라고 입력해보자. WEMS라고 나오면 제대로 된 것이다.


참고문헌 : How to config VirtualHosts with XAMPP? (http://forums.whirlpool.net.au/forum-replies-archive.cfm/569991.html)
[출처] 내 컴퓨터에서 웹서비스를 하자 - 3. XAMPP에서 Virtual Host 설정하기|작성자 짱이야

PHP개발에 관해서 찾다가..


이라는 글을 찾았습니다.
오호~ PHP에도 Framework라는 개념이 있더군요.
그래서 PHP Framework를 선택하기 위해서 이런저런 자료를 조사 하면서 조사한 내용을 정리 해 볼려고 합니다.

Ruby On Rails의 영향으로 웹 프로그래밍에서 Framework에 대한 관심이 폭발적으로 늘어나게 되고, PHP에서도 Framework에 지원이 활발하게 진행이 되었나 봅니다. 그리고 위의 글에서와 같이 여러개의 PHP Framework가 생겨 나게 되고, 현재 주류를 이루고 있는 Framework는 4개 정도로 압축 되는거 같습니다.

  • Zend Framework
  • CakePHP
  • Code Igniter
  • Symfony

자료를 찾아서 나름대로 특징을 정리 해 봤습니다.



Zend Framework
zend framework

  1. PHP의 핵시 기부자인 Zend Technologies에서 개발.
  2. PHP5 만 지원
  3. 다양한 DB 데이터베이스 추상화
  4. 확장가능한 MVC 모델 지원
  5. HTML 폼 렌더링 및 유효성 검사 지원
  6. 유연한 캐싱 서브 시스템
  7. 엄격한 코드 테스트를 거친 안정된 코드
  8. 국제화 지원
  9. 많은 양의 예제 지원
  10. new BSD 라이센스
  11. 국내 사용자 포럼을 못 찾았음.

CakePHP

  1. PHP4, PHP5 지원
  2. 구조화 된 MVC모델 지원
  3. 데이터베이스 인터랙션과 간략화한 쿼리를 위한 CRUD 가 통합됨
  4. 애플리케이션 스캐폴딩
  5. 보기좋은 맞춤 URL 의 요청 디스패처
  6. 빠르고 유연한 템플릿 기능 (PHP 문법, 각종 헬퍼 포함 )
  7. AJAX, 자바스크립트, HTML 폼을 위한 각종 뷰 헬퍼
  8. 보안, 세션, 리퀘스트 등을 처리하는 컴포넌트
  9. 유연한 뷰 캐시
  10. 유연한 접근 제한 목록
  11. 자료 검사 기능 내장
  12. 국제화 지원
  13. MIT License
  14. CakePHP 한국 사용자 모임.

Code Igniter

  1. PHP4, PHP5 지원
  2. 설치가 간편하다.
  3. 잘 정리된 문서
  4. 확징이 용이하다.
  5. MVC 모델 지원
  6. 간견한 문법
  7. 다른 프레임워크에 비해 빠른 속도
  8. 국제화 지원
  9. BSD 라이센스
  10. CodeIgniter 한국 사용자 모임 : 2009년 7월 19일에 오픈 예정이라고 합니다.
  11. CodeIgniter 한글 메뉴얼


Symfony

  1. PHP5만 지원
  2. 간단한 템플릿과 도우미(Helpers)
  3. 캐시 관리
  4. 기본 골격 (CRUD/Admin generator)
  5. 스마트 URLs (routing policy)
  6. 국제화 지원
  7. 객체모델과 MVC 분리
  8. MIT License
  9. 국내 사용자 포럼을 못 찾았음.

주요 특징들의 위와 같습니다. 여기저기서 찾은 자료들이라서 ^^;; 잘 비교가 되지 않네요..



실행 속도 비교

그리고 다음은 중요한 실행 속도 입니다.
4개의 Framework를 모두 비교한 자료는 찾지를 못했습니다.
먼저 Zend Framework, CakePHP, CodeIgniter를 비교한 결과를 그래프로 그려 봤습니다.


그래프에서 높을 수록 빠른 겁니다. CodeIgniter가 독보적인 선두를 보이고 있습니다. 그리고 Zend Framework와 CakePHP가 뒤를 따르고 있습니다.
그런데 Symfony에 대한 비교가 없어서, CakePHP, Zend Framework, Symfony의 속도를 비교를 검색해 봤는데.. 최근에 비교한 내용을 찾을 수가 없었습니다.
그래서 결국 이상한 나라의 언어(글을 보고 어떤 나라인지 유추를 못 하겠네요 ^^;;;)로 된 페이지를 찾았습니다. 언어는 해독 불가(-_-;;) 이지만, 그래프는 볼 수 있어서.. 첨부 합니다.

위와 같은 그래프가 나오더군요.. 결국 Symfony가 4개의 프레임워크 중에서 가장 늦은 속도를 가지고 있는거 같습니다.



그럼 대세는?
마지막으로 Google Trends의 그래프를 첨부하겠습니다.
검색의 빈도를 통해서 어떤게 관심을 받는지 보는건데,
검색 결과로 봐서는 cakephp가 1위 이지만, 가장 후발 주자로 시작한 codeingniter가 많이 따라잡고 있는 것으로 볼 수 있습니다.



여기 까지 PHP Framework를 소개하는 포스팅을 마칠려고 합니다.
비교는 여기까지이고 PHP의 Framework의 선택은 개발자의 몫이 아닐까 합니다.
  1. eloveelove 2009.07.20 22:08 신고

    자주 방문하지 못하시면 GreatNews 리더기 이용해보세요. rss 리더기 이용하시면 편합니다.
    전문영역의 포스트는 댓글 달기가 어렵네요..

+ Recent posts