프로그래밍.../Smarty | Posted by 고기킬러 2009. 12. 23. 10:09

Smarty 템플릿 포함하기(INCLUDE)

INCLUDE (템플릿 포함하기)
-------------------------

이제는 Smarty에서 다른 템플릿 파일들을 어떻게 포함하는지 살펴보도록 하지요. 이것은
당신이 headers나 footers같은 반복적인 템플릿 데이터를 사용할 경우를 위한 것인데요.
이를 위해서는 templates/header.tpl과 templates/footer같은 별도의 템플릿 파일들을 만
들 필요가 있답니다.


--------- index.php --------
<?php
require("Smarty.class.php");
$smarty = new Smarty;
$smarty->assign("Name","Ned");
$smarty->assign(array(
"FirstName" => "Ned",
"LastName" => "Flanders",
"Address" => "Springfield"
));
$zipcode = "55555";
$smarty->assign("Zipcode",$zipcode);
$smarty->display("index.tpl");
?>

--------- templates/index.tpl --------
{include file="header.tpl" title="Home Page"}
Hello, {$Name}!<br>
{$FirstName}, {$LastName}<br>
{$Address}, {$Zipcode}
{include file="footer.tpl"}

--------- templates/header.tpl --------
<HTML>
<TITLE>{$title|default:"no title"}</TITLE>
<BODY>

--------- templates/footer.tpl --------
</BODY>
</HTML>


우리가 포함한 header.tpl에 어떻게 "title"이라는 변수를 넘겨주고 있는지 주목해 보세
요. 당신은 이런 식으로 당신이 원하는 더 많은 변수들을 넘겨줄 수 있어요. 포함된 템플
릿 파일들은 현재 템플릿 변수들을 모두 물려받게 되고 또한 위와 같이 넘겨진 변수들도
가지게 되는데, 이렇게 넘겨진 변수들은 오직 포함된 템플릿 파일에만 유효한 변수가 되
지요[역주: 함수에 넘겨진 변수는 함수 내에서만 접근되고 그 다음 사라지듯이 Smarty도
템플릿에서 포함한 파일로 이루어지는 변수 전달을 같은 방식으로 처리한다는 뜻입니다].

그리고 templates/header.tpl에서 $title 변수를 어떻게 출력하는지도 주목할 필요가 있
겠지요. 이것은 "default"라고 불리는 변수 변환자[역주: "variable modifier"가 원문인
데 변수 치환자라고 할까 하다가 이렇게 번역했습니다]를 사용한 모습이랍니다.

{$title}이라는 문장이 $title로 대입된 변수가 없으면 아무것도 하지 않는데 반하여
{$title|default:"no title"}이란 문장은 $title로 대입된 변수가 없어도 앞의 경우처럼
빈둥거리는 대신 "no title"이라는 출력을 수행한답니다..


출처 : PHP SCHOOL
역자 : 조한석 님 <sizer@systong.co.kr>

'프로그래밍... > Smarty' 카테고리의 다른 글

Smarty 섹션: 동적 블럭(SECTIONS: Dynamic Blocks)  (0) 2009.12.23
Smarty IF/ELSEIF/ELSE  (0) 2009.12.23
Smarty 변수대입(ASSIGNING VARIABLES)  (0) 2009.12.23
Smarty 설치하기  (0) 2009.12.23
Smarty 시작하기  (0) 2009.12.23
프로그래밍.../Smarty | Posted by 고기킬러 2009. 12. 23. 10:07

Smarty 변수대입(ASSIGNING VARIABLES)


ASSIGNING VARIABLES (변수 대입)
-------------------------------

템플릿으로의 변수 대입은 변수와 값을 쌍으로 해서 직접 대입되게 되는데, 예를 들면 아래와 같이 소스가 구성된답니다.

--------- index.php --------
<?php
require("Smarty.class.php");
$smarty = new Smarty;
$smarty->assign("Name","Ned");
$smarty->assign(array(
"FirstName" => "Ned",
"LastName" => "Flanders",
"Address" => "Springfield"
));
$zipcode = "55555";
$smarty->assign("Zipcode",$zipcode);
$smarty->display("index.tpl");
?>


--------- templates/index.tpl --------
<HTML>
<TITLE>Hello</TITLE>
<BODY>
Hello, {$Name}!<br>
{$FirstName}, {$LastName}<br>
{$Address}, {$Zipcode}
</BODY>
</HTML>


당신은 변수들을 일 대 일로 대입할 수도 있고, 혹은 연관 배열을 사용할 수도 있고 대입
된 변수들을 추가할 수도 있는데, 이것에 대해서 메뉴얼에서 자세히 설명해주니까 그것을
참조하면 되겠지요.


출처 : PHP SCHOOL
역자 : 조한석 님 <sizer@systong.co.kr>

'프로그래밍... > Smarty' 카테고리의 다른 글

Smarty 섹션: 동적 블럭(SECTIONS: Dynamic Blocks)  (0) 2009.12.23
Smarty IF/ELSEIF/ELSE  (0) 2009.12.23
Smarty 템플릿 포함하기(INCLUDE)  (0) 2009.12.23
Smarty 설치하기  (0) 2009.12.23
Smarty 시작하기  (0) 2009.12.23
프로그래밍.../Smarty | Posted by 고기킬러 2009. 12. 23. 10:04

Smarty 설치하기

INSTALLATION (설치하기)
-----------------------

Smarty 압축 파일을 풀면 당신은 Smarty.class.php, Smarty_Compiler.class.php,
Config_File.class.php 그리고 "plugins" 디렉토리 같은 여러 파일들을 볼 수 있을 텐데
우선 이 모든 파일들을 당신의 PHP include_path에 지정되어 있는 디렉토리 어딘가에 옮
길 필요가 있어요. 그러고 나서 PHP 스크립트에[역주: 원문에서는 PHP 스크립트라고 하
는 대신 "your application"이라고 했지만, 이 편이 더 이해가 빠를 것 같아 이렇게 번역
했습니다] require("Smarty.class.php") 문장을 적어주면 해당 클래스를 찾을 수 있게 되
겠지요. 음, 하지만 다른 방법으로 당신의 PHP 스크립트에 SMARTY_DIR 상수를 설정하는 방
법도 있어요. Smarty 클래스 파일들이 위치한 패스가 있는 디렉토리들은 이 두 가지 방식
을 사용할 수 있는데, 여기서 매우 중요한 것 하나는 SMARTY_DIR 패스를 지정할 때는 끝에
슬래쉬를 꼭 붙여야 한다는 것이겠죠!

자 그럼 이제 실제로 당신의 웹 서버의 Document Root 디렉토리 어딘가로 시야를 옮겨 보
도록 하지요. 이 가이드에서는 당신이 웹 서버의 Document Root에 만들 디렉토리 이름으
로 Smarty를 사용할 텐데, 모든 작업은 여기에서 이루어지고 있음을 잊지 마세요.


$> cd /home/htdocs
$> mkdir Smarty
$> cd Smarty


다음 차례는 Smarty가 사용할 디렉토리들을 만들 차례가 되겠군요.


$> mkdir templates
$> mkdir templates_c
$> mkdir configs


Smarty는 쓰기가 가능한 templates_c 디렉토리를 필요로 한답니다. 그러므로 당연히 당신
은 해당 디렉토리를 웹 서버 유저(보통 Unix에서는 "nobody:nobody"이 사용되고 Max OS에
서는 "www:www"이 사용되지요.[역주:레드햇 리눅스에서는 "apache:apache"가 사용됩니다])
가 쓰기가 가능하도록 해당 디렉토리의 소유주와 퍼미션을 아래와 같이 고쳐주어야겠지요.

물론 당신은 'chmod 777'을 사용할 수도 있어요. 음 그렇지만, 글쎄요. 많은 사용자들이
사용하는 시스템에서는 보안 문제도 있고 하니 별로 권장하고 싶지는 않군요. 이것에 대
해서는 메뉴얼에서 보다 많은 정보를 찾아보는 것이 좋을 것 같군요.


$> chown nobody:nobody templates_c
$> chmod 700 templates_c
$> ls -l
drwxrwxr-x 2 user group 512 Jan 18 14:18 configs/
drwxrwxr-x 2 user group 512 Jan 18 14:18 templates/
drwx------ 2 nobody nobody 512 Jan 18 14:18 templates_c/


위와 같이 하거나 덜 안전한 방법으로 아래와 같이 해 줄 수도 있어요.


$> chmod 777 templates_c
$> ls -l
drwxrwxr-x 2 user group 512 Jan 18 14:18 configs/
drwxrwxr-x 2 user group 512 Jan 18 14:18 templates/
drwxrwxrwx 2 user group 512 Jan 18 14:18 templates_c/


자 이제 당신은 index.php와 templates/index.tpl이라는 두 개의 파일을 만들 차례가 되
었네요. 물론 index.php는 당신의 웹 브라우져에서 부를 수 있는 것이어야겠지요.

index.tpl은 Smarty가 템플릿 파일로서 사용할 파일인데, 이것은 브라우져에서 직접 엑세
스되지는 않고, 오직 Smarty 클래스에 의해서만 접근된답니다[역주:실제로 위와 같이 하
면 웹 서버에 특별한 설정을 추가하지 않는 웹 브라우져를 통해 접근할 수 있습니다].


--------- index.php --------
<?php
require("Smarty.class.php");
$smarty = new Smarty;
$smarty->assign("Name","Ned");
$smarty->display("index.tpl");
?>


--------- templates/index.tpl --------
<HTML>
<TITLE>Hello</TITLE>
<BODY>
Hello, {$Name}!
</BODY>
</HTML>


자 이제 잘 작동하고 있는지 index.php를 당신의 웹 브라우져로부터 불러 보세요.

http://your.host.com/Smarty/index.php

당신의 브라우져로부터 "Hello, Ned!"를 볼 수 있나요? 그렇지 않다면 지금까지 위에서
해 온 과정들을 잘 따라 했는지 살펴보시고 다시 시도해 보세요. 아니면 메뉴얼에 있는
설치 작업에 관한 부분을 체크해 보고, 당신이 PHP 설치를 제대로 했는지도 살펴볼 필요
가 있을 거에요. 그래도 여전히 문제가 있다면 메일링 리스트에 질문을 던져 보던가 FAQ
에서 문제를 해결할 수 있을지도 모르겠네요.

이제 "Hello, Ned!"를 브라우져로부터 볼 수 있다구요? 좋아요~[역주: 차범근 스타일로
읽어 보세요. :)]

Smarty가 index.tpl를 어떻게 php 스크립트로 컴파일했는지 궁금하시다면 templates_c 디
렉토리를 찾아보시면 알 수 있어요. Smarty는 이렇게 맨 처음 한번만 컴파일하고 그 다음
에는 게속 이 컴파일된 스크립트를 가지고 작동하게 된답니다. 물론 index.tpl이 바뀌게
된다면 자동으로 재컴파일해서 대체하게 되지요[역주:이것은 JSP가 채택하고 있는 방식과
굉장히 유사하다고 볼 수 있습니다].

이런 이유로 당신은 templates_c 디렉토리에 대해서는 관심을 끄셔도 좋아요. 당신은 이
런 기술적 부분에 대해서 걱정할 필요가 하나도 없고, 이런 부분은 Smarty에게 떠넘겨 버
리면 되요. 참, 그리고 당신은 템플릿으로부터 컴파일된 PHP 스크립트를 볼 수 있고 그것
을 아마 고칠 수도 있을 거에요 하지만, 이것들을 고칠 생각은 절대로 하지 않는 게 신상
에 이로울 테죠?

여기까지 잘 되었다면, 이제 당신은 잘 작동하는 Smarty를 가지게 되었으므로 이제
Smarty에서 사용하고 있는 템플릿 언어의 특징들 중 몇 가지를 살펴보도록 하지요.


출처 : PHP SCHOOL
역자 : 조한석 님 <sizer@systong.co.kr>
프로그래밍.../Smarty | Posted by 고기킬러 2009. 12. 23. 10:03

Smarty 시작하기

SMARTY QUICKSTART GUIDE (Smarty 빠르게 시작하기)
------------------------------------------------

Smarty QuickStart Guide(Smarty 빠르게 시작하기)에 오신 것을 환영해요~ 이 가이드는
Smarty에 처음 발을 적시는 당신에게 Smarty가 어떻게 동작하는지 안내해 줄 거랍니다.

우리는 여기서 몇 가지 가정을 해볼 생각인데요. 당신이 이미 웹 서버에 PHP를 어떻게 설
치해야 하는지라던가, Unix 파일 퍼미션들에 대한 기초지식이나 그리고 PHP가 어떻게 동작
한다든지 등에 대한 기초지식을 가지고 있어야 하겠지요. 만약 당신이 Unix 환경이 아닌
곳에서 Smarty를 사용하고 있다면 당신은 자신의 OS와 관련된 파일 파미션 시스템이 Unix
와 어떤 차이점을 가지고 있는지 알고 있을 필요가 있답니다.

출처 : PHP SCHOOL
역자 : 조한석 님 <sizer@systong.co.kr>
프로그래밍.../PostgreSQL | Posted by 고기킬러 2009. 12. 22. 15:38

PL/pgSQL이란?

  • PL/pgSQL이란? 

 Postgres 6.3 버젼 부터 PostgreSQL은 Procedural Language(PL)를 지원하기 시작했다. 이것은 PostgreSQL만의 특별한 경우로서 oracle 의 PL/SQL과 비유될 수 있는 기능으로 다음의 특징 혹은 기능을 가지고 있다.

1. PL/pgSQL 은 function 이나 trigger procedure 를 만드는데 사용되어 질 수 있다.
2. SQL 문에 제어 구조를 추가할 수 있다.
3. 복잡한 계산을 구현할 수 있다.
4. user가 정의한 Type, Function, Operation을 상속할 수 있다.
5. 사용하기 쉽다.
6. PL/PythonPL/TCL과 같은 프로시져 언어를 지원한다.

 여섯 번째의  PL/Python과 PL/TCL은 각각 Python이라는 언어와 TCL이라는 언어를 사용하여 프로시져 함수를 사용할 수 있는 언어로 PL/Python과 PL/TCL에 대해서 더 자세히 알고 싶다면 PostgreSQL 사이트의 도규멘테이션을 살펴보길 바란다. 여기에서는 PL/pgSQL에 국한해서 설명하겠당.

PL/pgSQL는 블록 지향 언어이다. 블록는 다음처럼 사용된다.

[ Label ]
[ DECLARE declarations ]
BEGIN
      statements
END;

위의 형태가 가장 기초되는 형태이며 이 statements안에는 또 다른 서브 블록이 들어 올 수 있으면 이 서브 블록안의 변수는 들은 외부 블록으로부터 숨기기 위해 사용될 수 있다. 즉 외부에서는 서브 블록 내의 변수를 알 수가 없다. 이를 설명하기 전에 먼저 변수의 선언에 대해서 알아보자.

  • 변수 선언

PL/pgSQL에서의 변수 선언은 'DECLARE' 부분에서 선언되고 초기화되는데 그 초기값을 줄 수 있고, 해당 블럭을 진입할 때마다 초기화 된다. 다음은 변수 선언의 예이다.

CREATE FUNCTION func() RETURNS INTEGER AS '
DECLARE
   quantity INTEGER := 30;
BEGIN
   RAISE NOTICE ''Quantity here is %'',quantity;  -- quantity = 30
   quantity := 50;
   --
   -- 하위-블럭의 생성
   --
   DECLARE
      quantity INTEGER := 80;
   BEGIN
      RAISE NOTICE ''Quantity here is %'',quantity;  -- quantity = 80
   END;

   RAISE NOTICE ''Quantity here is %'',quantity;  -- quantity = 50
END;
' LANGUAGE 'plpgsql';

이처럼 변수의 선언 DECLARE 부분에서만 선언이 되어지는 것을 알 수 있다. 또 위에서 말한 것처럼 서브 블록에 대해서 외부 블록에서는 관여를 하지 않는다. 그리고 참고로 주석문을 처리하기 위해서 사용하는 것은 2종류가 있는데 위에서 사용하고 있는 --와 /* */ 이렇게 2종류가 사용된다. 그리고 변수의 선언에서 변수의 타입은 데이터 베이스가 지원하는 모든 타입을 사용할 수 있으며 다음의 문법에 맞게 사용된다.

변수이름 [ CONSTANT ] 변수형 [ NOT NULL ] [ { DEFAULT | := } 값 ];

초기화되지 않은 변수는 자동으로 NULL이 할당되기 때문에  NOT NULL로 선언된 변수는 필히 초기화를 해주어야 한다. 다음은 몇가지 변수 선언 예이다.

darkill NUMBER(5);
query INTEGER := 32;
url varchar := ''http://mysite.com'';
user_no CONSTANT INTEGER := 10;


프로그래밍.../PostgreSQL | Posted by 고기킬러 2009. 12. 22. 14:38

PostgreSQL의 PL/PgSQL 사용법

CREATE FUNCTION pgl_get_rows() RETURNS SETOF RECORD AS
'
DECLARE
  row RECORD;

BEGIN
  FOR row IN EXECUTE ''select field1,field2 from pkg_test ''
  LOOP
    RETURN next row;

  END LOOP;
  RETURN;
END;
' LANGUAGE 'plpgsql' ;
프로그래밍.../PostgreSQL | Posted by 고기킬러 2009. 12. 22. 14:33

PostgreSQL 언어의 사용법 (PL/PgSQL)

super계정으로 들어가야됨..

DB 에 들어가서..

#create function plpgsql_call_handler() returns opaque as '/usr/local/pgsql/lib/plpgsql.so' language 'C';


#create trusted procedural language 'plpgsql' handler plpgsql_call_handler lancompiler 'PL/pgSQL';

'프로그래밍... > PostgreSQL' 카테고리의 다른 글

트리거 (Trigger) 예제  (1) 2009.12.31
PL/pgSQL이란?  (0) 2009.12.22
PostgreSQL의 PL/PgSQL 사용법  (0) 2009.12.22
PostgreSQL 간단한 명령어  (0) 2009.12.22
PostgreSQL 처음 실행시 설정 할 몇가지 것들..  (0) 2009.12.22
프로그래밍.../PostgreSQL | Posted by 고기킬러 2009. 12. 22. 14:31

PostgreSQL 간단한 명령어

1.\h를 치면 SQL 명령어에 대한 도움말.

2.\?를 치면 시스템 명령어

3.\L 를 치면 DataBase 의 리스트.

4.\DT 를 치면 접속한 Database 의 Table 정보

5.\d Table 이름을 치면 Table 의 정보

1.공유 메모리 체크
  : 현재 리눅스 시스템의 공유 메모리 체크
  #cat /proc/sys/kernel/shmmax
 
2.대부분의 리눅스 시스템은 위의 명령어로
  33554432 와 같은 값을 갖는다(32MB)
  이를 늘리자..128MB 로
 
3.늘리는 방법
  #echo 128000000 > /proc/sys/kernel/shmmax
   3번의 명령어를 해도 리부팅시에는 위의 설정이 사라진다.
   /etc/sysctl.conf 에 적용하면 좋다.
4.postgresql.conf 파일 편집

  shared_buffers = 15200
  sort_mem = 32168
  max_connections=64
  fsync=false

 
  위의 15200 은 (128000/8192 다, postgresql 은 8K segment 를 사용한다.)
 
 
실행
#/postmaster start > /var/lib/pgsql.log

 

 

실행방법

1)

$/usr/local/pgsql/bin/postmaster start > /home/pgsql/pgsql.log

 

2)

$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &

 

3)

Success. You can now start the database server using:

    ./postmaster -D /usr/local/pgsql/data
or
    ./pg_ctl -D /usr/local/pgsql/data -l logfile start

'프로그래밍... > PostgreSQL' 카테고리의 다른 글

트리거 (Trigger) 예제  (1) 2009.12.31
PL/pgSQL이란?  (0) 2009.12.22
PostgreSQL의 PL/PgSQL 사용법  (0) 2009.12.22
PostgreSQL 언어의 사용법 (PL/PgSQL)  (0) 2009.12.22
PostgreSQL 간단한 명령어  (0) 2009.12.22
프로그래밍.../Linux | Posted by 고기킬러 2009. 12. 22. 10:10

CentOS 리눅스 웹 서버 구축

CentOS 리눅스 웹서버 구축관리

##############################################################################

 

CentOS 5.3

apache -> httpd-2.2.14.tar.gz

php -> php-5.2.12.tar.gz

mysql -> mysql-5.1.41.tar.gz

phpmyadmin -> phpMyAdmin-3.2.4-all-languages.tar.gz

ZendOptimizer -> ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

mod_evasive -> http://www.zdziarski.com/projects/mod_evasive/

##############################################################################설치 웹서버(apm) => apache, php, mysql
설치 방법 => 소스 파일 다운로드후 컴파일을 통해 설치
##############################################################################

- yum은 Yellowdog Updater, Modified의 약자로 rpm기반의 시스템을 위한 자동 업데이터이자

패키지 설치/삭제도구입니다. Yum은 자동적으로 의존성을 처리해주며 rpm 패키지들을 안전하게

설치, 삭제 및 업데이트하기 위해 반드시 해야할 일들을 스스로 해결합니다.

##############################################################################

 

1) 기존 apm 삭제

     - 기존 설치된 것 확인

          => rpm -qa httpd php mysql
     - 설치된 것이 있으면 yum 으로 삭제

          => yum remove httpd php mysql
     - 삭제 확인

          => rpm -qa httpd php mysql


2) APM 다운로드(저장 디렉토리 /usr/local/src/apm/)
     - apache 다운로드 : http://www.apache.org/

          => wget http://mirror.khlug.org/apache/httpd/httpd-2.2.14.tar.gz

     - php 다운로드 : http://www.php.net/

          => wget http://kr.php.net/get/php-5.3.1.tar.gz/from/this/mirror

     - mysql 다운로드 : http://www.mysql.org/

          => wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.41.tar.gz/from/http://mirror.khlug.org/mysql/

 
3) 컴파일러 점검
     - 소스코드 컴파일을 위한 컴파일러 설치 유무확인

          => rpm -qa gcc* cpp* compat-gcc* flex*

     - gcc* cpp* compat-gcc* flex* 중에서 미설치된 컴파일러는 yum 을 통해서 설치

          => yum -y install gcc cpp gcc-c++ compat-gcc-32-g77 flex

 

4) 라이브러리 점검

     - 반드시 필요한 라이브러리

          => libpng, freetype, libjpeg, gd

     - 라이브러리 설치 유무확인

          => rpm -qa libjpeg* libpng* freetype* gd-*

     - 라이브러리 미설치시 yum 을 통해서 설치(rpm방식)

          => yum install libjpeg-devel libpng-devel freetype-devel gd-devel

 

     - 소스 다운로드 방식의 설치(최신 라이브러리 다운로드)

 

     - libjpeg => http://www.ijg.org/

          => wget http://www.ijg.org/files/jpegsrc.v7.tar.gz

          => tar zxvf jpegsrc.v7.tar.gz

          => cd jpeg-7

          => mkdir -p /usr/local/man/man1

          => ./configure --enable-shared --enable-static

          => make && make install

 

     - libpng => http://www.libpng.org/

          => wget http://prdownloads.sourceforge.net/libpng/libpng-1.2.41.tar.gz?download

          => tar zxvf libpng-1.2.41.tar.gz

          => cd libpng-1.2.41

          => ./configure

          => make && make install

 

     - freetype => http://www.freetype.org/

          => wget http://sourceforge.net/projects/freetype/files/freetype2/2.3.11/freetype-2.3.11.tar.gz/download

          => tar zxvf freetype-2.3.11.tar.gz

          => cd freetype-2.3.11

          => ./configure

          => make && make install

 

     - gd => http://www.libgd.org/

          => wget http://www.libgd.org/releases/gd-2.0.35.tar.gz

          => tar zxvf gd-2.0.35.tar.gz

          => cd gd-2.0.35

          => ./configure

          => make && make install


5) MySQL 설치

 

    - 다운로드한 파일 압축 해제
        ==> tar -zvxf mysql-5.1.41.tar.gz
        ==> cd mysql-5.1.41

 

    - mysql 계정 생성
        ==> useradd -M -s /bin/false mysql

 

    - ./configure 실행
        ==> ./configure \

        ==> >--prefix=/usr/local/server/mysql \

        ==> >--with-charset=utf8 \

        ==> >--with-extra-charsets=all

 

    - make && make install(설치경로 -> /usr/local/server/mysql)

        ==> make && make install

 

    - 환경설정파일 복사(support-files/ -> /etc/my.cnf)
        ==> cp /usr/local/src/apm/mysql-5.1.41/support-files/my-large.cnf /etc/my.cnf

 

    - 기본 DB 생성

        ==> cd /usr/local/server/mysql
        ==> bin/mysql_install_db --user=mysql

 

    - 디렉토리 권한 설정
        ==> chown -R root .
        ==> chown -R mysql var
        ==> chgrp -R mysql .

 

    - 환경변수 등록(경로 추가)
        ==> vi /root/.bash_profile
        ==> PATH=$PATH:$HOME/bin:/usr/local/server/mysql/bin <- 수정
        ==> source ~./bash_profile

 

    - 자동실행 설정
        ==> cp share/mysql/mysql.server /etc/init.d/mysqld
        ==> chkconfig --add mysqld
        ==> chkconfig --list|grep mysqld

 

    - root 함호 등록 및 테스트
        ==> /etc/init.d/mysql start
            Start MySQL          [ OK ]

        ==> mysqladmin -u root password ws960501
        ==> mysql -u root -p


6) Apache 설치
    - 기본경로1 : /usr/local/src/apm

 

    - 다운로드한 파일 압축 해제
        ==> tar -zxf httpd-2.2.14.tar.gz
        ==> cd httpd-2.2.14


    - 기본경로2 : /usr/local/src/apm/httpd-2.2.14

 

    - ./configure 실행
        ==> ./configure \
        ==> >--prefix=/usr/local/server/apache \
        ==> >--enable-mods-shared=all \
        ==> >--enable-so \
        ==> >--enable-rewrite

 

    - make && make install (설치)

    - 기본경로3 : /usr/local/server/apache/

 

    - 자동실행 설정

        ==> cp bin/apachectl /etc/init.d/httpd

        ==> vi /etc/init.d/httpd <- 아래내용을 2번째 줄부터 추가

            # chkconfig: 2345 90 90
            # description: init file for Apache server daemon
            # processname: /usr/local/server/apache/bin/apachectl
            # config: /usr/local/server/apache/conf/httpd.conf
            # pidfile: /usr/local/server/apache/logs/httpd.pid
        ==> chkconfig --add httpd
        ==> chkconfig --list|grep httpd

 

    - 환경설정
        ==> conf/httpd.conf 편집
        ==> vi conf/httpd.conf

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User nobody <- daemon=>nobody
Group nobody <- daemon=>nobody

</IfModule>
</IfModule>

 

    - 테스트
        ==> /etc/init.d/httpd start
        ==> http://192.168.2.236 으로 접속

 

7) php 설치

 

- 기본경로1 : /usr/local/src/apm/

 

- 다운로드한 파일 압축 해제
####################################
=> tar -zxf php-5.3.1.tar.gz
=> cd php-5.3.1
####################################

 

- 기본경로2 : /usr/local/src/apm/php-5.3.1


- ./configure 실행
####################################
./configure \
--prefix=/usr/local/server/php \
--with-apxs2=/usr/local/server/apache/bin/apxs \
--with-mysql=/usr/local/server/mysql \
--with-config-file-path=/usr/local/server/apache/conf \
--disable-debug \
--enable-safe-mode \
--enable-track-vars \
--enable-sockets \
--with-mod_charset \
--with-charset=utf8 \
--with-xml \
--with-language=korean \
--enable-mailparse \
--enable-calender \
--enable-sysvsem=yes \
--enable-sysvshm=yes \
--enable-ftp \
--enable-magic-quotes \
--enable-gd-native-ttf \
--enable-url-include \
--enable-trans-id \
--enable-inline-optimization \
--enable-bcmath \
--with-jpeg \
--with-png \
--with-zlib \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/lib \
--with-freetype-dir=/usr \
--with-libxml-dir=/usr \
--enable-exif \
--with-gd \
--with-ttf \
--with-gettext \
--enable-sigchild \
--enable-mbstring
####################################


- make && make install 실행
####################################
=> make && make install
####################################


- 환경설정
####################################
=> cp php.ini-dist /usr/local/server/apache/conf/php.ini

 

=> vi /usr/local/server/apache/conf/httpd.conf

 

# 수정
<IfModule dir_module>
 DirectoryIndex index.html index.htm index.php
</IfModule>

 

# AddType 지시어 추가
<IfModule mime_module>
 AddType application/x-httpd-php.php
 AddType application/x-httpd-php-source.phps
</IfModule>
####################################


- 테스트
####################################
=> /etc/init.d/httpd restart

 

==> vi /usr/local/server/apache/htdocs/phpinfo.php
<? phpinfo(); ?>

 

=> http://192.168.2.236/phpinfo.php
####################################

8) 환경설정 => apache
9) 환경설정 => php
10) 환경설정 => MySQL
11) ZendOptimizer 설치
12) DOS 설정
13) Webalizer 설치(통계분석)
14) APM 테스트
15) 제로보드 설치
16) 테테툴즈 설치


'프로그래밍... > Linux' 카테고리의 다른 글

Apache, MySQL, PostgreSQL, PHP 컴파일 옵션  (0) 2010.01.08
리눅스 명령어 (T~Z)  (0) 2009.12.21
리눅스 명령어 (O~S)  (0) 2009.12.21
리눅스 명령어 (H~N)  (0) 2009.12.21
리눅스 명령어 (A~G)  (0) 2009.12.21