3 ๋ถ„ ์†Œ์š”

[OS] LAPM ๊ตฌ์ถ• -

์ง€๋‚œ๋ฒˆ ์„ค์น˜ํ•œ Rocky Linux์—์„œ LAMP ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Apache 2.4.37 ๋ฒ„์ „์„ ์ปดํŒŒ์ผ ์„ค์น˜(์†Œ์Šค ์„ค์น˜) ๋ฐฉ๋ฒ•์œผ๋กœ ์„ค์น˜ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.

์†Œ์Šค ์„ค์น˜ ๋ฐฉ๋ฒ•์ด yum, dnf ๋“ฑ์„ ์ด์šฉํ•œ ์„ค์น˜ ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋ฒˆ๊ฑฐ๋กœ์›Œ์„œ ๊ทธ๋Ÿฐ์ง€ ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ๊ธ€์ด ์ƒ๋Œ€์ ์œผ๋กœ ์ ๋˜๋ฐ,

์ด ๊ธ€์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด ๋œ๋‹ค๋ฉด ์ข‹๊ฒ ๋‹ค.

๋‚˜์˜ ์„ค์น˜ํ™˜๊ฒฝ์€ Rocky Linux v.9.1(VirtualBox๋กœ ์‹คํ–‰) ์ด๋‹ค.

๐Ÿ”ป VirtualBox ์„ค์น˜๋ฐฉ๋ฒ•

https://yunjuparkkr.github.io/os/virtualbox/

๐Ÿ”ป Rocky Linux v.9.1 ์„ค์น˜๋ฐฉ๋ฒ•

https://yunjuparkkr.github.io/os/RockyLinux/#rocky-linux-91-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95-91-%EB%B2%84%EC%A0%84

LAMP ํ™˜๊ฒฝ ๊ตฌ์ถ•

LAMP์ด๋ž€?

LAMP ์Šคํƒ์ด๋ž€ Linux(Operating System), Apache(HTTP Server), Mysql(Database), Php(์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด)์˜ ์•ž ๊ธ€์ž๋ฅผ ๋”ด ๊ฒƒ์œผ๋กœ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฌด๋ฃŒ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ฌถ์Œ, ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์›น ์„œ๋ฒ„๋กœ Apache๋ฅผ ์‚ฌ์šฉํ•˜๋Š๋‚˜ Nginx๋ฅผ ์‚ฌ์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ LAMP, AEMP๋กœ ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜๋ฉฐ(E - Nginx Server), MySQL์ด ์•„๋‹Œ MariaDB๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

๋˜ํ•œ, Linux๋ฅผ ๋นผ๊ณ  APM(Apache, Php, Mysql)์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค.

  • Linux - ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ
  • A(๋˜๋Š” E)pache(Nginx) - ์•„ํŒŒ์น˜(๋˜๋Š” Nginx) ์›น์„œ๋ฒ„
  • MySQL ๋˜๋Š” MariaDB - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • PHP ๋˜๋Š” Perl ๋˜๋Š” Python - ์Šคํฌ๋ฆฝํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

์ด ์กฐํ•ฉ์ด ์ „ํ˜•์ ์œผ๋กœ ๋งŽ์ด ์“ฐ์ด๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๊ฒƒ์ด ๋ณ€ํ˜•๋˜์–ด ๋‹ค๋ฅธ ์กฐํ•ฉ๋“ค๋„ ์ƒ๊ฒจ๋‚ฌ๋‹ค. LAPM์˜ ๋ณ€์ข…์—๋Š” WAMP, WIMP, MAMP, SAMP, FAMP, iAMP ๋“ฑ์ด ์žˆ๋‹ค.

Apache ์„ค์น˜(v.2.4.7)

Rocky Linux์—์„œ ์ž‘์—…ํ•  ๊ฑฐ๋‹ˆ๊นŒ, VirtualBox๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ €๋ฒˆ์— ์„ค์น˜ํ–ˆ๋˜ Rocky Linux๋ฅผ ์ผ ๋‹ค.

1. ํ•„์š”ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ค์น˜

yum์„ ์ด์šฉํ•˜์—ฌ ์•„ํŒŒ์น˜ ์„ค์น˜ ๋ฐ ์‹คํ–‰์— ํ•„์š”ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋“ค์„ ๋จผ์ € ์„ค์น˜ํ•ด์ฃผ์ž.

(์ด๋Ÿฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋“ค์€ ์–ด๋Š ๊ฒฝ๋กœ์—์„œ ์„ค์น˜ํ•˜๋“  ๋ฌด๊ด€ํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๊ทธ๋ƒฅ ๋ฃจํŠธ๊ฒฝ๋กœ์—์„œ ์„ค์น˜ํ•ด์คฌ๋‹ค)

์ตœ์ข…์ ์œผ๋กœ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ–ˆ๋‹ค.

yum -y install wget cmake ncurses-devel libtool libtool-ltdl expat-devel pcre-devel openssl-devel gcc gcc-c++ autoconf

image

์„ค์น˜๊ฐ€ ์ž˜ ๋˜์—ˆ๋‹ค.

  • ์ฐธ๊ณ  - yum ์—์„œ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•: yum list ํŒจํ‚ค์ง€์ด๋ฆ„

์•„๋ž˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ yum list ํŒจํ‚ค์ง€์ด๋ฆ„ ์„ ์น˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด yum์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์˜ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

image

  • ์ฐธ๊ณ  - yum ๋ช…๋ น์–ด ์˜ต์…˜ y
  • y: ๋‹ค์Œ ๋‚˜์˜ฌ ์„ ํƒ์ง€์— ๋Œ€ํ•ด ๋ชจ๋‘ yes ์ฒ˜๋ฆฌ(yum install ์‹œ y ์˜ต์…˜์„ ์ฃผ๋ฉด ์„ค์น˜ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋“ฑ์˜ ๋ฌผ์Œ์— ๋ชจ๋‘ ์ž๋™์œผ๋กœ y ํ•œ๋‹ค.)

2. ์•„ํŒŒ์น˜ ํŒจํ‚ค์ง€ ์„ค์น˜

์•„ํŒŒ์น˜ ์„ค์น˜ ์‹œ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ํŒจํ‚ค์ง€์—๋Š” 4์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

apr, apr-util, pcre, httpd ์ด๋ ‡๊ฒŒ 4๊ฐ€์ง€๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š”๋ฐ, ๊ฐ๊ฐ wget์œผ๋กœ ์›น์„œ๋ฒ„์— ์ ‘์†ํ•˜์—ฌ tar ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ๋‹ค์Œ ์••์ถ•์„ ํ•ด์ œํ•˜๊ณ  ์„ค์น˜ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.

์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ง๊ณ , ์•ž์œผ๋กœ ์„ค์น˜ํ•  ํŒจํ‚ค์ง€(์•„ํŒŒ์น˜, MySQL, PHP)๋“ค์€ ๋ชจ๋‘ /usr/local/src ๊ฒฝ๋กœ์— ์„ค์น˜ํ•ด์ฃผ๋„๋ก ํ•˜๊ฒ ๋‹ค.

์œ„์—์„œ๋Š” ๊ทธ๋ƒฅ root ๊ฒฝ๋กœ์— ์žˆ์—ˆ๋Š”๋ฐ, cd ๋ช…๋ น์–ด๋กœ ์•„ํŒŒ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์ค€๋‹ค.

image

apr-1.6.5 ์„ค์น˜

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ apr tarํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š”๋‹ค.

wget http://mirror.apache-kr.org/apr/apr-1.6.5.tar.gz

image

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ tar ํŒŒ์ผ์„ ์••์ถ• ํ•ด์ œํ•œ๋‹ค.

tar zxvf apr-1.6.5.tar.gz

image

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ด๋™ํ•ด์„œ

cd apr-1.6.5

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•œ๋‹ค

./configure โ€“prefix=/usr/local/apr

make

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค

make install

apr 1.6.5๋ฒ„์ „ ์„ค์น˜ ์™„๋ฃŒ.

apr-util-1.6.3 ์„ค์น˜

๋‹ค์‹œ /usr/local/src ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์„œ

cd ..

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ apr-util 1.6.3๋ฒ„์ „ ์„ค์น˜

wget http://mirror.apache-kr.org/apr/apr-util-1.6.3.tar.gz

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์••์ถ• ํ’€๊ณ 

tar zxvf apr-util-1.6.3.tar.gz

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ด๋™ํ•ด์„œ

cd apr-util-1.6.3

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•œ๋‹ค

./configure โ€“prefix=/usr/local/apr-util โ€“with-apr=/usr/local/apr

make

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค

make install

pcre-8.45 ์„ค์น˜

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ pcre 8.45๋ฒ„์ „ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ

wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz/download

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์••์ถ• ํ’€๊ธฐ

tar zxvf pcre-8.45.tar.gz

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ด๋™ํ•ด์„œ

cd pcre-8.45

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•œ๋‹ค

./configure โ€“prefix=/usr/local/pcre

make

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค

make install

httpd-2.4.56 ์„ค์น˜

๋‹ค์‹œ /usr/local/src ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์„œ

cd ..

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ httpd 2.4.56๋ฒ„์ „ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ

wget https://downloads.apache.org/httpd/httpd-2.4.56.tar.gz

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์••์ถ• ํ’€๊ธฐ

tar zxvf httpd-2.4.56.tar.gz

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ด๋™ํ•ด์„œ

cd httpd-2.4.56

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•œ๋‹ค

./configure โ€“prefix=/usr/local/apache โ€“with-apr=/usr/local/apr โ€“with-apr-util=/usr/local/apr-util โ€“with-pcre=/usr/local/pcre โ€“enable-mods-shared=all โ€“enable-so โ€“enable-rewirte โ€“enable-auth-digest

(make์— ๋ช‡ ๋ถ„ ๊ฑธ๋ฆผ)

make

์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค

make install

์„ค์น˜ ์™„๋ฃŒ!

3. ์•„ํŒŒ์น˜ ์„ค์ •ํŒŒ์ผ ์ˆ˜์ •

httpd.conf ํŒŒ์ผ์€ ์•„ํŒŒ์น˜์˜ ์ฃผ์š” ์„ค์ • ๋‚ด์šฉ์ด ์ž‘์„ฑ๋˜์–ด์žˆ๋Š” ํŒŒ์ผ์ด๋‹ค. ์ด ํŒŒ์ผ์„ ์กฐ๊ธˆ ์ˆ˜์ •ํ•  ๊ฒƒ์ด๋‹ค.

์šฐ์„  ํŒŒ์ผ์ด ์œ„์น˜ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„๋ณด์ž.

cd

find / -name httpd.conf

image

์œ„ ./configure ๊ณผ์ •์—์„œ โ€“prefix์— ๊ฒฝ๋กœ ์„ค์ •์„ /usr/local/apache ๋กœ ์ž˜ ํ•ด์ฃผ์—ˆ๋‹ค๋ฉด

/usr/local/apache/conf/httpd.conf ์ด httpd.conf ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋กœ ํ™•์ธ๋  ๊ฒƒ์ด๋‹ค.

vi ํŽธ์ง‘๊ธฐ๋กœ ํŒŒ์ผ์„ ์—ด์–ด๋ณด์ž.

vi /usr/local/apache/conf/httpd.conf

image

vi ํŒŒ์ผ์„ ์—ด๋ฉด ๊ธฐ๋ณธ์€ ์ฝ๊ธฐ๋ชจ๋“œ ๊ฐ™์€ ๋ชจ๋“œ๋กœ ์—ด๋ฆฐ๋‹ค.

a ๋ฅผ ๋ˆŒ๋Ÿฌ ํŽธ์ง‘๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๊ณ 

ServerName ๋ถ€๋ถ„์„ ์ฐพ์•„ (/ ๋˜๋Š” ? ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ‚ค์›Œ๋“œ๋กœ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ, ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ n์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™, N์„ ๋ˆ„๋ฅด๋ฉด ์ด์ „ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™)

image

ServerName localhost:80 ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ 

(# ํ‘œ์‹œ๋Š” ์ฃผ์„ ํ‘œ์‹œ์ด๋ฏ€๋กœ, ๋‚˜๋Š” ๊ธฐ์กด์— ์ฃผ์„์ฒ˜๋ฆฌ ๋˜์–ด์žˆ๋˜ ๋ถ€๋ถ„์€ ๊ทธ๋ƒฅ ๋‘๊ณ  ์•„๋žซ์ค„์— ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค)

image

๊ทธ ๋‹ค์Œ, Require all denied ๋กœ ๋˜์–ด์žˆ๋Š” ๋ถ€๋ถ„์„ Require all granted ๋กœ ์ˆ˜์ •

image

(์ฐธ๊ณ ๋กœ, ํŽธ์ง‘๊ธฐ ์ฝ๊ธฐ๋ชจ๋“œ์—์„œ :set number ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ผ์ธ ๋„˜๋ฒ„๊ฐ€ ๋ณด์ธ๋‹ค)

esc๋ฅผ ๋ˆŒ๋Ÿฌ ํŽธ์ง‘๋ชจ๋“œ์—์„œ ๋น ์ ธ๋‚˜์˜ค๊ณ 

:w ๋ฅผ ๋ˆŒ๋Ÿฌ ํŒŒ์ผ ์ €์žฅ

:q ๋ฅผ ๋ˆŒ๋Ÿฌ ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์•„ํŒŒ์น˜๋ฅผ ์‹คํ–‰ํ•˜๋ ค ํ•˜๋‹ˆ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.

Syntax error์ธ๋ฐ, httpd.conf ์—์„œ Require ๋ผ๋Š” ์ปค๋งจ๋“œ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

๋ถ„๋ช… ๋‚˜๋Š” ์•„ํŒŒ์น˜ 2.4๋Œ€ ๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ–ˆ๊ณ , Require ๋ผ๊ณ  ์จ์ฃผ๋Š” ๊ฒŒ ๋งž๋Š”๋ฐ ์™œ?????

๊ฒ€์ƒ‰์œผ๋กœ๋„ ํ•ด๊ฒฐ์ด ์ž˜ ์•ˆ๋ผ์„œ ChatGPT ํ•œํ…Œ ๋ฌผ์–ด๋ดค๋‹ค. ๐Ÿ˜ญ

httpd.conf ํŒŒ์ผ์— LoadModule authz_core_module modules/mod_authz_core.so ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ผ๊ณ  ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€ํ•จ.

image

์ด๋ฒˆ์—๋Š” ๋‹ค๋ฅธ ์˜ค๋ฅ˜ ๋ฐœ์ƒ. no listening sockets available

image

ps -ef grep httpd ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์ธํ•ด๋ดค๋‹ค

4. ์•„ํŒŒ์น˜ ์‹คํ–‰

์•„ํŒŒ์น˜ ์‹œ์ž‘

/usr/local/apache/bin/httpd -k start

์•„ํŒŒ์น˜ ํ™•์ธ

ps -ef grep httpd

curl localhost

์œ„ ๋ช…๋ น์„ ์ž…๋ ฅํ•œ ๊ฒฐ๊ณผ

It works!

์ด๋ ‡๊ฒŒ ๋œจ๋ฉด ์„ค์น˜์™„๋ฃŒ.

์•„ํŒŒ์น˜ ์ค‘์ง€

/usr/local/apache/bin/httpd stop

๋!!!



๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด์–ด์„œ MySQL์„ ์„ค์น˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค~~ ๐Ÿ˜‰


๋ถ€๊ฐ€์„ค๋ช…

Apache๋ž€?

MySQL์ด๋ž€?

Php๋ž€?

๐Ÿ›  ์ถ”ํ›„ ์ž‘์„ฑ ์˜ˆ์ •โ€ฆ ๐Ÿ› 


๐Ÿ‘จโ€๐Ÿซ ์ฐธ๊ณ ์ž๋ฃŒ

๐Ÿ™‚ ๋‚ด์šฉ ์ค‘ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด ์žˆ์„ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ