· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Zend_pgsql-KLDP

<!doctype linuxdoc system>

<article>

<title>PostgreSQL + Apache + Zend ¼³Ä¡Çϱâ
<author>Á¤¿ø¿µ <htmlurl url="mailto:suni00@kernel.pe.kr"
name="suni00@kernel.pe.kr">
<date>v0.3, 2000³â 2¿ù 16ÀÏ

<abstract>
DB·Î PostgreSQLÀ» »ç¿ëÇϸç Apache À¥¼­¹ö¿¡ PHP Zend¸¦ ¸ðµâ·Î
ÄÄÆÄÀÏ ÇÏ´Â ¹æ¹ýÀ» °£·«È÷ ¼³¸íÇÑ´Ù.
</abstract>

<toc>

<sect> ¼³Ä¡Çϱâ Àü<p>
<itemize>
<item>¼³Ä¡È¯°æÀº RedHat 6.0 ÀÌ»ó ¹öÀüÀ¸·Î ÇϰڴÙ.
<item>¼³Ä¡ÇÒ °¢°¢ÀÇ ¹öÀüÀº ´ÙÀ½°ú °°´Ù.
	
<itemize>
<item> PostgreSQL : 6.5.3
<item> Apache     : 1.3.11
<item> PHP  	  : Zend beta 3
</itemize>	
	
<item>°¢°¢ ¿øÇÏ´Â ¹öÀüÀ¸·Î ´ÙÀ½ »çÀÌÆ®¿¡¼­ ±¸ÇÑ´Ù.
<itemize>
<item><url url="http://www.postgresql.org">
<item><url url="http://www.apache.org">
<item><url url="http://www.php.net">
</itemize>
</itemize>

<sect> PostgreSQL ¼³Ä¡Çϱâ<p>

<sect1> postgres °èÁ¤ ¸¸µé±â <p>
<itemize>
<item>postgres¶ó´Â °èÁ¤°ú ±×·ìÀ» ¸¸µç´Ù. ±âº»ÀûÀ¸·Î RedHat ÆÐŰÁö´Â
useradd¶õ ¸í·ÉÀ¸·Î ±×·ì°ú °èÁ¤À» °°ÀÌ ¸¸µé¾î ÁØ´Ù.
<verb>
	# useradd postgres
	# passwd postgres
</verb>
</itemize>
<sect1> ¹é¾÷ Çϱâ <p>
<itemize>
<item>óÀ½ ¼³Ä¡ÇÏ´Â °æ¿ì´Â <bf>'2.3 ÄÄÆÄÀÏ¹× ¼³Ä¡'</bf>·Î ³Ñ¾î°£´Ù.
¹é¾÷Àº postgres °èÁ¤À¸·Î ÀÛ¾÷ÇÑ´Ù.

<verb>
	$ pg_dumpall -z > db.out
</verb> 
</itemize>

<sect1> ÄÄÆÄÀÏ¹× ¼³Ä¡  <p>
<enum>
<item>ÄÄÆÄÀÏ ÇϱâÀü postmaster µ¥¸óÀ» Á×ÀδÙ.
<verb>
	# ps -aux | grep postmaster
	# kill PID (À§¿¡¼­ ãÀº pid ¹øÈ£)
</verb>
<item>PostgreSQL ¼Ò½º¸¦ /usr/local ¹æ¿¡¼­ Ǭ´Ù.
<item>Ç®¸é postgresql-6.5.3À̶õ µð·ºÅ丮°¡ »ý±â´Âµ¥ À̸§À» pgsql·Î ¹Ù²ãÁØ´Ù.
(±âÁ¸ÀÇ pgsql µð·ºÅ丮´Â ¹öÀüÀ» ¸í½ÃÇϸç À̸§À» ¹Ù²ãÁØ´Ù.)
<verb>
	# mv postgresql-6.5.3 pgsql      (À̸§À» pgsql·Î ¹Ù²Û´Ù)

	# chown -R postgres.postgres pgsql (user¿Í groupÀ» ¹Ù²Û´Ù)

										
	# cd /usr/local/pgsql/src
	# vi Makefile.custom              (Pentitum pro±Þ À̻󿡼­ ÃÖÀûÈ­¸¦
	  CFLAG+= -m486                    À§ÇØ »ý¼ºÇÑ´Ù)
	
	# ./configure --with-mb=EUC_KR    (ÇÑ±Û »ç¿ëÀ» À§ÇØ)

	# cd /usr/local/pgsql/doc
	# make install                    (¸Ç ÆäÀÌÁö, HTML ¹®¼­ÆÄÀÏ ¼³Ä¡)			

	# cd /usr/local/pgsql/src
	# make all                        (ÄÄÆÄÀÏ)
</verb>

<item>'All of PostgreSQL is successfully made. Ready to install' ¶õ ¸Þ¼¼Áö°¡
º¸ÀÌ¸é ¼º°ø.

<verb>
	# su postgres                     (postgres °èÁ¤À¸·Î ÀÛ¾÷ÇϱâÀ§ÇØ)
	$ make install                    (¼³Ä¡)
</verb>
</enum>
<sect1> ¼³Ä¡ÈÄ ÀÛ¾÷  <p>
<enum>
<item>¶óÀ̺귯¸® Ãß°¡
<verb>
	# vi /etc/ld.so.conf             
	  /usr/local/pgsql/lib
	# /sbin/ldconfig
</verb>
<item>ȯ°æº¯¼ö Ãß°¡
<verb>
°¢ °³ÀÎÀÇ È¯°æº¯¼ö¸¦ ¼³Á¤ÇϱâÀ§ÇØ °³ÀÎÀÇ .bash_profile¿¡ ´ÙÀ½À» Ãß°¡ÇÑ´Ù.
(DB¸¦ »ç¿ëÇÒ °èÁ¤ÀÇ È¯°æº¯¼ö¸¦ ¼³Á¤ - postgres °èÁ¤¿¡µµ Àû¿ë½ÃŲ´Ù.)

	PATH=$PATH:/usr/local/pgsql/bin
	MANPATH=$MANPATH:/usr/local/pgsql/man
	PGLIB=/usr/local/pgsql/lib
	PGDATA=/usr/local/pgsql/data
	export PATH MANPATH PGLIB PGDATA
</verb>

<item>ȯ°æ º¯¼ö Àû¿ë
<verb>	                                  
°¢ °èÁ¤¿¡¼­ ½ÇÇàÇØ¼­ ȯ°æº¯¼ö¸¦ Àû¿ë½ÃŲ´Ù.
	$ source .bash_profile            
</verb>

<item>µ¥ÀÌÅͺ£À̽º ÃʱâÈ­ Çϱâ 
<verb>
postgres°èÁ¤À¸·Î ÀÛ¾÷ÇØ¾ßÇÑ´Ù.
	$ initdb -e EUC_KR
</verb>
</enum>

<sect1> postmaster µ¥¸ó ¶Ù¿ì±â <p>
<itemize>
<item>postgres °èÁ¤À¸·Î ¶Ù¿ö¾ß ÇÑ´Ù.
</itemize>
<verb>	
	$ postmaster -i -S -D /usr/local/pgsql/data
</verb>
<sect1> ¹é¾÷ µ¥ÀÌÅÍ º¹±¸ <p>
<itemize>
<item>¹é¾÷µÈ ÆÄÀÏ db.outÀ» º¹±¸Çϱâ À§ÇØ ´ÙÀ½°ú °°ÀÌ postgres °èÁ¤À¸·Î ÀÛ¾÷ÇÑ´Ù.
</itemize>

<verb>
	$ psql -e template1 < db.out
</verb>



<sect> Apache + PHP ¼³Ä¡Çϱâ <p>
<enum>
<item>ȯ°æ¼³Á¤¹× ÄÄÆÄÀÏ
<verb>
¾ÆÆÄÄ¡¿Í PHP¸ðµÎ /usr/local µð·ºÅ丮¿¡ Ç®¾úÀ¸¸ç ¾ÆÆÄÄ¡ÀÇ ¼Ò½º µð·ºÅ丮´Â
/usr/local/apache_1.3.11À̸ç PHPÀÇ ¼Ò½º µð·ºÅ丮´Â /usr/local/php-4.0b3ÀÌ´Ù.
¸ðµç°Ç root °èÁ¤À¸·Î ÀÛ¾÷ÇÑ´Ù.

	# cd /usr/local/apache_1.3.11	  (¾ÆÆÄÄ¡ ¼Ò½º µð·ºÅ丮·Î À̵¿)

	# ./configure --prefix=/etc/httpd (ÄÄÆÄÀÏÈÄ »ý¼º ÆÄÀÏÀÇ °æ·Î´Â
	                                    /etc/httpd ÀÌ´Ù)
	

	# cd /usr/local/php-4.0b3         (php ¼Ò½º µð·ºÅ丮·Î À̵¿)

	# ./configure --with-apache=/usr/local/apache_1.3.11
	              --with-pgsql=/usr/local/pgsql 
	              --enable-track-vars 
	            (¾ÆÆÄÄ¡¿Í postgresÀÇ °æ·ÎÀε¥ ÇÑÁÙ¿¡ ÀÌ¾î ½á¾ßÇÑ´Ù)
	# make
	# make install                    (php ¼³Ä¡)

	# cp php.ini-dist /usr/local/lib/php.ini (php ¿É¼Çµé)
				

	# cd /usr/local/apache_1.3.11     (¾ÆÆÄÄ¡ µð·ºÅ丮·Î À̵¿)
	# ./configure --prefix=/etc/httpd
	              --activate-module=src/modules/php4/libphp4.a 
                (php¸¦ ¸ðµâ·Î Æ÷ÇÔ½ÃÅ´, ¿ª½Ã ÇÑÁÙ·Î ÀÌ¾î ½á¾ßÇÑ´Ù)
	# make
	# make install                    (¾ÆÆÄÄ¡ ¼³Ä¡)
</verb>
<item>¼³Ä¡ ÈÄ
<verb>
¼³Ä¡ÈÄ ¾ÆÆÄÄ¡ ȯ°æ¼³Á¤ ÆÄÀÏÀÎ /etc/httpd/conf/httpd.conf ÆÄÀÏÀ» ¿­¾î
´ÙÀ½°ú °°ÀÌ µÇ¾îÀÖ´ÂÁö È®ÀÎÇϰí ÁÖ¼®À» Ç®¾îÁØ´Ù.

	AddType application/x-httpd-php .php
	AddType application/x-httpd-php-source .phps
</verb>
</enum>
<sect> ¼³Ä¡ Å×½ºÆ® Çϱâ <p>
Áö±ÝºÎÅÍ Äí۸¦ ÀÌ¿ëÇÑ PHP + PostgreSQL¿ë °£´ÜÇÑ Ä«¿îÅ͸¦ ¸¸µé¾îº¸¸ç
¼³Ä¡°¡ Á¦´ë·Î µÇ¾ú´ÂÁö È®ÀÎÇØ º¸ÀÚ.
»ç¿ëÀÚ °èÁ¤Àº suni00À¸·Î °¡Á¤ÇϰڴÙ.
<sect1> ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô DB ±ÇÇÑÁÖ±â <p>
<itemize>
<item>postgres °èÁ¤À¸·Î ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô DB ±ÇÇÑÀ» ÁÖ¾î¾ßÁö DB¸¦ »ý¼ºÇÒ ¼ö
ÀÖ´Ù.
<verb>
	$ su - postgres                   (»ç¿ëÀÚ¸¦ postgres·Î ¹Ù²Û´Ù)
	$ createuser suni00               (±ÇÇÑÀ» ÁÖ°íÇ °èÁ¤À» Àû´Â´Ù) 
</verb>
DB »ý¼º ±ÇÇÑÀº ²À ÁÖ¾î¾ß ÇÑ´Ù.
</itemize>

<sect1> DB »ý¼º¹× Å×ÀÌºí ¸¸µé±â <p>
<itemize>
<item>postgres°¡ ÁØ ±ÇÇÑÀ¸·Î ÀϹݻç¿ëÀÚ°¡ ´ÙÀ½°ú °°Àº DB¹× Å×À̺íÀ» »ý¼ºÇÑ´Ù.
	
<verb>
	$ su - suni00                     (ÀϹݰèÁ¤ »ç¿ëÀÚ·Î ¹Ù²Û´Ù)
	$ createdb test                   (test¶õ DB¸¦ ¸¸µç´Ù)
	$ psql test                       (test DB¿¡ ¿¬°á)

	test=> create table counter ( count int );  (table »ý¼º)
	test=> insert into counter values ( 0 );    (0À» ÀÔ·Â)
	test=> \q                                   (DB ºüÁ®³ª°¨)
</verb>
</itemize>

<sect1> PHP ÇÁ·Î±×·¡¹Ö Çϱâ <p>
<itemize>
<item>´ÙÀ½°ú °°Àº ³»¿ëÀÇ count.php ÆÄÀÏÀ» ¸¸µç´Ù.
<verb>
<?
	$connect=pg_connect("dbname=test user=suni00");
	$result=pg_exec($connect,"select * from counter");

	$count_num = pg_result($result,0,"count");

	if (!$counted) {
		$count_num++;
		pg_exec($connect,"update counter set count=$count_num");
	}

	echo $count_num;
?>
</verb>
ÀÌÁ¦ À¥¿¡¼­ ÀÌ ÆÄÀÏÀ» Àо¸é reload ÇÒ ¶§¸¶´Ù Çϳª¾¿ Ä«¿îÆ®°¡
Áõ°¡ÇÏ´Â°É ¾Ë ¼ö ÀÖ´Ù.
</itemize>
<sect1> ÄíŰ »ç¿ëÇϱâ <p>
<itemize>
<item>¾Õ¿¡¼­ ¸¸µç Ä«¿îÅÍ´Â reload ÇÒ¶§¸¶´Ù Áõ°¡ÇϹǷΠ±×¸® Á¤È®ÇÏÁö ¾ÊÀº
´ÜÁ¡ÀÌ ÀÖ´Ù. ±×·¡¼­ ´ÙÀ½°ú °°ÀÌ Äí۸¦ ÀÌ¿ëÇÏ¿© ¾à°£À̳ª¸¶ ½Å·ÚÇÒ ¼ö
ÀÖ°Ô ÇØº¸ÀÚ.
ÄíŰ´Â ¸ðµç ű׺¸´Ù À§¿¡ÀÖ¾î¾ß Çϱ⠶§¹®¿¡ < html > ½ÃÀÛ Å±׺¸´Ù
À­ÁÙ¿¡ ´ÙÀ½°ú °°ÀÌ ³Ö¾îÁØ´Ù.
<verb>
	<? if (!$counted) { setcookie("counted",1,time()+3600); } ?>
</verb>
À§ ³»¿ëÀ» ´ëÃæ ¼³¸íÇϸé 3600ÃÊ(1½Ã°£)µ¿¾È $counted °ªÀ» 1·Î ¸¸µé¾î
ÁØ´Ù. ±×·¯¹Ç·Î Çѹø Á¢¼ÓÇÑÈÄ 1½Ã°£ µÚ¿¡ Á¢¼ÓÇØ¾ßÁö¸¸ Ä«¿îÅÍ´Â
Áõ°¡ÇÑ´Ù. 
</itemize>

</article>


ID
Password
Join
He who invents adages for others to peruse takes along rowboat when going on cruise.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-11-27 13:14:12
Processing time 0.0070 sec