À¥ Àü¹®°¡°¡ ÀüÇÏ´Â À¥ ¼¼»ó Web Story [¾ç¼±°ïÀÇ À¥ À̾߱â]

CentOS¿¡¼­ apache, php, mysql (°£´ÜÈ÷ ÁÙ¿©¼­ APMÀ̶ó ÇÏ°Ú´Ù)À» ¼³Ä¡ÇÏ´Â °¡Àå ½¬¿î ¹æ¹ýÀº yumÀ» ÅëÇØ ¼³Ä¡ÇÏ´Â ¹æ¹ýÀÌ´Ù.

´ÙÀ½°ú °°Àº ¸í·ÉÀ¸·Î ½±°Ô ¼³Ä¡°¡ °¡´ÉÇÏ´Ù.

# yum install -y yum-plugin-fastestmirror.noarch

°¡Àå ºü¸¥ yum ¹Ì·¯ »çÀÌÆ®¸¦ ÀÚµ¿À¸·Î ã¾Æ ÁØ´Ù. yum ´Ù¿î·Îµå ¼Óµµ°¡ »¡¶óÁø´Ù.

# yum install -y httpd-*

ÀÌÁ¦ php¿Í mysqlÀ» ¼³Ä¡ÇØ º¸ÀÚ.

# yum install -y php
# yum install -y mysql-*

 

php¿Í mysqlÀ» ¿¬µ¿½ÃÅ°·Á¸é ´ÙÀ½ ÆÐÅ°Áö°¡ ÇÊ¿äÇÏ´Ù.

# yum install -y php-mysql

 

ÇÊ¿äÇÑ °ÅÀÇ ¸ðµç ÆÐÅ°ÁöµéÀº ÀÌ·¸°Ô ¼³Ä¡ ÇÒ ¼ö ÀÖ´Ù.

php¿Í °ü·ÃµÈ ÆÐÅ°ÁöµéÀº ´ÙÀ½ ¸í·ÉÀ¸·Î È®ÀÎ ÇÒ ¼ö ÀÖ´Ù.

#yum list php-*

ÀÏ¹Ý ¸®´ª½º »ç¿ëÀÚµéÀº ±»ÀÌ ¼Ò½º ÆÄÀÏÀ» ¹Þ¾Æ´Ù°¡ ÄÄÆÄÀÏÇÏ´Â ±ÍÂúÀº ÀÛ¾÷À» ÇÏ´Â °Í º¸´Ù ÀÌ·¸°Ô yumÀ» ÅëÇØ ÇÊ¿äÇÑ ÆÐÅ°ÁöµéÀ» ¼³Ä¡ÇÏ°í °ü¸®ÇÏ´Â °ÍÀ» ÃßõÇÑ´Ù.

»ç½Ç ¼Ò½º ÄÄÆÄÀÏÀ» Çؼ­ ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡À̶ó´Â °ÍÀº Àڽſ¡°Ô ÇÊ¿äÇÑ ¿É¼ÇÀ» Á÷Á¢ ÁöÁ¤Çؼ­ ¼³Ä¡ÇÒ ¼ö ÀÖ´Â °Í ¿Ü¿¡´Â µüÈ÷ ¶°¿À¸£Áö ¾Ê´Â´Ù. ±×·¯³ª ½Ã½ºÅÛ °ü¸®ÀÚ¶ó¸é ¼Ò½º ÄÄÆÄÀÏ °úÁ¤À» ÀÌÇØÇÒ Çʿ伺ÀÌ ÀÖ´Ù. ¼Ò½º ÄÄÆÄÀÏÀ» ÇÒ ÁÙ ¾Ë¾Æ¾ß Àڽſ¡°Ô ÇÊ¿äÇÑ rpmÀ» Á¦ÀÛÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

¿©±â¼­´Â APMÀ» ¼Ò½º ÄÄÆÄÀÏÀ» ÅëÇؼ­ ¼³Ä¡ÇØ º¸°í apache 1Á¡´ë¿Í 2Á¡´ëÀÇ ¼Ò½º ÄÄÆÄÀÏ Â÷ÀÌÁ¡À» °£·«ÇÏ°Ô ¼³¸íÇÏ·Á°í ÇÑ´Ù.

°¡Àå ¸ÕÀú mysqlºÎÅÍ ¼³Ä¡ÇÑ´Ù.

#wget http://ftp.superuser.co.kr/pub/mysql/mysql-3.23.58.tar.gz # tar xvzf mysql-3.23.58.tar.gz
# cd mysql-3.23.58

CentOS 5Á¡´ë¿¡¼­ ¸¸¾à mysql 3Á¡´ë¸¦ ÄÄÆÄÀÏ ÇÒ ÀÏÀÌ ÀÖ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇØÁÖ¾î¾ß Á¤»óÀûÀ¸·Î ÄÄÆÄÀÏ µÈ´Ù.

# echo "/* Linuxthreads */" >> /usr/include/pthread.h

¼Ò½º ÄÄÆÄÀÏÇؼ­ ¼³Ä¡ÇÏ´Â ¸í·ÉÀº ´ÙÀ½°ú °°´Ù.

# ./configure
# make
# make install

ÀÌ·¯¸é ¼Ò½º´Â default°ª¿¡ ÀÇÇØ ´ëºÎºÐ /usr/local ¿¡ ¼³Ä¡°¡ µÈ´Ù.

¸¸¾à ÇÊ¿äÇÑ ¿É¼ÇÀÌ ÀÖ´Ù¸é ./configure ´ÙÀ½¿¡ ÇÊ¿äÇÑ ¿É¼ÇÀ» ³Ö¾î¼­ ÄÄÆÄÀÏÀ» ÇÏ¸é µÈ´Ù.

ÇÊ¿äÇÑ ¿É¼ÇÀº ´ÙÀ½ ¸í·ÉÀ¸·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù.
# ./configure -help

¿¹¸¦ µé¾î mysqlÀ» /usr/local/mysql µð·ºÅ͸®¿¡ ¼³Ä¡ ÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.

# ./configure -prefix=/usr/local/mysql
# make
# make install

ÀÎÅͳݿ¡ ¶°µµ´Â ÄÄÆÄÀÏ ¹®¼­ Áß¿¡ ./configure ?help·Î È®ÀÎ ÇÒ ¼ö ¾ø´Â ÄÄÆÄÀÏ ¿É¼ÇÀÌ ÀÖ´Ù¸é ¹«½Ã Çϰųª ²À ÇÊ¿äÇÑ ¿É¼ÇÀ̶ó¸é ÇØ´ç ¼Ò½ºÀÇ ¹öÀüÀ» È®ÀÎÇؼ­ ÇØ´ç ¿É¼Ç¿¡ ¸Â´Â ¹öÀüÀ» ±¸Çؼ­ ÄÄÆÄÀÏ ÇØ¾ß ÇÑ´Ù.

¾Æ·¡´Â ±âº»ÀûÀ¸·Î »ç¿ëÇÏ´Â mysql ÄÄÆÄÀÏ ¿É¼ÇÀÌ´Ù.

# ./configure
--prefix=/usr/local/mysql
--disable-shared
--enable-assembler
--enable-thread-safe-client
--with-mysqld-user="mysql"
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--with-readline
--without-debug
--without-docs
--without-bench
--with-charset=euc_kr

apache ÄÄÆÄÀÏ ¼³Ä¡µµ ±âº»ÀûÀ¸·Î À§¿Í µ¿ÀÏÇÏ´Ù. ´Ù¸¸ ÇÑ°¡Áö ÁÖÀÇÇÒ Á¡Àº apache´Â DSO¹æ½Ä°ú STATIC¹æ½ÄÀÇ ¼³Ä¡¸¦ ¸ðµÎ Áö¿øÇÑ´Ù´Â °ÍÀÌ´Ù.

¿©±â¼­´Â ÀÌ µÑÀÇ Á¤ÀǸ¦ ¼³¸íÇϱ⠺¸´Ù´Â °¢°¢ÀÇ ¹æ½ÄÀ¸·Î ¼³Ä¡ ÇÏ¿´À» ¶§ÀÇ ÀϾ´Â Çö»óÀ¸·Î DSO¿Í STATIC ¼³Ä¡¿¡ ´ëÇØ ¼³¸íÇÏ°Ú´Ù.

´ÙÀ½Àº ¾ÆÆÄÄ¡ 1Á¡´ë¿¡¼­ STATIC¹æ½ÄÀ¸·Î ÄÄÆÄÀÏÇÑ °ÍÀÌ´Ù.

# wget http://ftp.superuser.co.kr/pub/apache/apache_1.3.39.tar.bz2
# tar xvjf apache_1.3.39.tar.bz2
# cd apache_1.3.39
# ./configure --prefix=/usr/local/apache --enable-module=so
# make
# make install

--enable-module=so ¿É¼ÇÀº mod_so¸¦ ¿Ã¸®±â À§ÇÑ ¿É¼ÇÀÌ´Ù. Â÷ÈÄ DSO¹æ½ÄÀ¸·Î ¸ðµâÀ» Ãß°¡ Çϱâ À§Çؼ­ ¹Ýµå½Ã ÇÊ¿äÇÑ ¸ðµâÀÌ°í DSO·Î ÄÄÆÄÀÏ ÇÒ ¼ö ¾ø´Â ¸ðµâÀÌ´Ù. ¹Ýµå½Ã ¾ÆÆÄÄ¡ Äھ Æ÷ÇԵǾî ÄÄÆÄÀÏ µÇ¾î¾ß ÇÑ´Ù.

´ÙÀ½ ¸í·ÉÀ¸·Î STATIC ÄÄÆÄÀÏÀÌ °¡Áö´Â Àǹ̸¦ ¾Ë ¼ö ÀÖ´Ù.

# cd /usr/local/apache/bin
# ./httpd -l
Compiled-in modules:
- http_core.c
- mod_env.c
- mod_log_config.c
- mod_mime.c
- mod_negotiation.c
- mod_status.c
- mod_include.c
- mod_autoindex.c
- mod_dir.c
- mod_cgi.c
- mod_asis.c
- mod_imap.c
- mod_actions.c
- mod_userdir.c
- mod_alias.c
- mod_access.c
- mod_auth.c
- mod_so.c
- mod_setenvif.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec

¾ÆÆÄÄ¡ ¸ðµâÀÌ Äھ ¸ðµÎ Æ÷ÇԵǾî ÀÖ´Ù. Áï ¾ÆÆÄÄ¡ ÇÁ·Î¼¼½º¸¦ ½ÇÇàÇϸé À§ÀÇ ¸ðµâµéµµ ¸ðµÎ °°ÀÌ ÀûÀçµÇ¾î ½ÇÇàµÈ´Ù´Â ¶æÀÌ´Ù. ´ç¿¬È÷ ¸ðµâÀÌ ¸Þ¸ð¸®¿¡ ¿Ã¶ó°¡ ÀÖÀ¸¹Ç·Î ½ÇÇà ¼Óµµ°¡ ºü¸¦ ¼ö ¹Û¿¡ ¾ø´Ù.

ÀÌ¿Í ¹Ý´ë·Î DSO¹æ½ÄÀ¸·Îµµ ÄÄÆÄÀÏ ÇØ º¸´Ù. --enable-shared=max ¿É¼ÇÀº ¾ÆÆÄÄ¡ ÇÙ½É ¸ðµâµéÀ» DSO¹æ½ÄÀ¸·Î ÄÄÆÄÀÏ Ç϶ó´Â ¿É¼ÇÀÌ´Ù.

# ./configure --prefix=/usr/local/apache --enable-module=so --enable-shared=max


# make && make install


# cd /usr/local/apache/bin


# ./httpd -l


Compiled-in modules:


http_core.c

mod_so.c


suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec

À§¿¡ ¾ÆÆÄÄ¡ ÄÚ¾î¿Í °°ÀÌ Æ÷ÇԵǾî ÀÖ´ø ¸¹Àº ¸ðµâµéÀÌ ¾ø¾îÁ® ¹ö·È´Ù. ÀÌ ¸ðµâµéÀº ¾îµð·Î °¡¹ö¸° °ÍÀΰ¡?

# cd /usr/local/apache/libexec
# ls -al
-rw-r--r-- 1 root root? 7587 May 22 09:25 httpd.exp
-rwxr-xr-x 1 root root? 9798 May 22 09:25 mod_access.so
-rwxr-xr-x 1 root root? 8148 May 22 09:25 mod_actions.so
-rwxr-xr-x 1 root root 10760 May 22 09:25 mod_alias.so
-rwxr-xr-x 1 root root? 6083 May 22 09:25 mod_asis.so
-rwxr-xr-x 1 root root 11144 May 22 09:25 mod_auth.so
-rwxr-xr-x 1 root root 28739 May 22 09:25 mod_autoindex.so
-rwxr-xr-x 1 root root 14784 May 22 09:25 mod_cgi.so
-rwxr-xr-x 1 root root? 7385 May 22 09:25 mod_dir.so
-rwxr-xr-x 1 root root? 7196 May 22 09:25 mod_env.so
-rwxr-xr-x 1 root root 16499 May 22 09:25 mod_imap.so
-rwxr-xr-x 1 root root 36637 May 22 09:25 mod_include.so
-rwxr-xr-x 1 root root 16972 May 22 09:25 mod_log_config.so
-rwxr-xr-x 1 root root 15078 May 22 09:25 mod_mime.so
-rwxr-xr-x 1 root root 28542 May 22 09:25 mod_negotiation.so
-rwxr-xr-x 1 root root? 9730 May 22 09:25 mod_setenvif.so
-rwxr-xr-x 1 root root 18059 May 22 09:25 mod_status.so
-rwxr-xr-x 1 root root? 8410 May 22 09:25 mod_userdir.so

DSO ¹æ½ÄÀ¸·Î ¼³Ä¡ÇÏ¸é ¾ÆÆÄÄ¡ ¼³Ä¡ µð·ºÅ͸®ÀÇ libexec µð·ºÅ͸®¿¡ ÀÌ·¸°Ô ¸ðµâµéÀÌ ÆÄÀÏ·Î ÀúÀåµÈ´Ù.
(¾ÆÆÄÄ¡ 2Á¡´ë¿¡¼­´Â modulesµð·ºÅ͸®·Î º¯°æµÇ¾ú´Ù.)

ÀÌ·¯ÇÑ ¸ðµâµéÀº httpd.conf ¿¡¼­ LoadModule Áö»çÀÚ¿Í AddModule Áö½ÃÀÚ·Î ÀûÀçµÈ´Ù.
(¾ÆÆÄÄ¡ 2Á¡´ë¿¡¼­´Â AddModule Áö½ÃÀÚ´Â ¾ø¾îÁ³´Ù.)

Áö±Ý±îÁö´Â ¾ÆÆÄÄ¡ Àüü ¸ðµâÀ» ÇѲ¨¹ø¿¡ ÄÄÆÄÀÏ ÇßÀ¸³ª ´ÙÀ½°ú °°Àº ÄÄÆÄÀÏ ¿É¼ÇÀ» ÅëÇØÇÊ¿äÇÑ ¸ðµâÀ» STATIC¹æ½ÄÀ¸·Î ȤÀº DSO¹æ½ÄÀ¸·Î ÀÚÀ¯·Ó°Ô ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ´Ù.

¾ÆÆÄÄ¡ 1Á¡´ë¿¡¼­ ƯÁ¤ ¸ðµâÀ» DSO¹æ½ÄÀ¸·Î ÄÄÆÄÀÏ

--enable-module=rewrite
--enable-shared=rewrite

¾ÆÆÄÄ¡ 1Á¡´ë¿¡¼­ ƯÁ¤ ¸ðµâÀ» STATIC¹æ½ÄÀ¸·Î ÄÄÆÄÀÏ

--enable-module=rewrite
--disable-shared=rewrite

¸¶Áö¸·À¸·Î ¾ÆÆÄÄ¡ 1Á¡´ë¿Í 2Á¡´ëÀÇ ÄÄÆÄÀÏ ¿É¼ÇÀÇ Â÷ÀÌÁ¡¿¡ ´ëÇØ Â¤°í ³Ñ¾î°¡°Ú´Ù.

¾Æ·¡ ¿É¼ÇÀº ÀÎÅͳݿ¡ ÈçÈ÷ ³Î·Á ÀÖ´Â ¾ÆÆÄÄ¡ 2Á¡´ë ¹öÀüÀÇ À߸øµÈ ÄÄÆÄÀÏ ¿É¼ÇÀÇ ¿¹ÀÌ´Ù.

./configure
--enable-rule=SHARED_CORE \
--enable-module=so \
--enable-so \
--enable-shared=max \

--enable-rule=SHARED_CORE ¿É¼ÇÀº ¾ÆÆÄÄ¡ Äھ DSO¹æ½ÄÀ¸·Î ÄÄÆÄÀÏÇÏ´Â ¿É¼ÇÀÌ´Ù. 2Á¡´ëºÎÅÍ ¾ø¾îÁ³´Ù.
--enable-module=so ¾ÆÆÄÄ¡ 2Á¡´ëºÎÅÍ --enable-so ·Î º¯°æ µÇ¾ú´Ù. °°Àº ±â´ÉÀ» °¡Áø ¿É¼ÇÀÌ Áߺ¹ µÇ¾ú´Ù.

--enable-shared=max´Â 2Á¡´ë¿¡¼­´Â --enable-mods-shared=most·Î ½á¾ßÁö ¸Â´Ù.

¾ÆÆÄÄ¡ 2Á¡´ë¿¡¼­ ƯÁ¤ ¸ðµâÀ» DSO¿Í STATICÀ¸·Î ÄÄÆÄÀÏ ÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.

--enable-rewrite=shared

ȤÀº

--enable-rewrite
--enable-mods-shared=rewrite

--enable-rewrite=static

ȤÀº

--enable-rewrite
--enable-modules=rewrite

ÀÌ ¿É¼ÇµéÀ» ÀüºÎ ¿Ü¿ï ÇÊ¿ä´Â ¾ø´Ù. ÄÄÆÄÀÏ ÇÒ ¶§ ÇÊ¿äÇÑ ¸ðµç ¿É¼ÇµéÀº

./configure ?-help

¿¡ ³ª¿Í ÀÖÀ¸¹Ç·Î ÇÊ¿äÇÒ ¶§¸¶´Ù Âü°í Çϱ⸸ ÇÏ¸é µÈ´Ù. ´ÙÀ½¿¡´Â ½ÇÁ¦·Î apache¿Í php¸¦ static¹æ½Ä°ú dso¹æ½ÄÀ¸·Î ÄÄÆÄÀÏÇØ º¸°í ½ÇÁ¦·Î ÀÚ±â ÀÔ¸À¿¡ ¸À´Â rpmÆÐŰ¡À» Á¦ÀÛÇØ º¸±â·Î ÇÏÀÚ.

DB connect error