๐ง OS ๐ง LAMP ๊ตฌ์ถ - Apache ์ปดํ์ผ ์ค์น ๋ฐฉ๋ฒ (v.2.4.37)
[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 ์ค์น๋ฐฉ๋ฒ
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
์ค์น๊ฐ ์ ๋์๋ค.
- ์ฐธ๊ณ - yum ์์ ๋ค์ด๋ก๋ ๊ฐ๋ฅํ ํจํค์ง ๊ฒ์ ๋ฐฉ๋ฒ: yum list ํจํค์ง์ด๋ฆ
์๋ ์์์ฒ๋ผ yum list ํจํค์ง์ด๋ฆ ์ ์น๊ณ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด yum์ผ๋ก ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋ ํจํค์ง๋ค์ ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.
- ์ฐธ๊ณ - 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 ๋ช ๋ น์ด๋ก ์ํ์น ํจํค์ง๋ฅผ ์ค์นํ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํด์ค๋ค.
apr-1.6.5 ์ค์น
์๋ ๋ช ๋ น์ผ๋ก apr tarํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ๋๋ค.
wget http://mirror.apache-kr.org/apr/apr-1.6.5.tar.gz
์๋ ๋ช ๋ น์ผ๋ก tar ํ์ผ์ ์์ถ ํด์ ํ๋ค.
tar zxvf apr-1.6.5.tar.gz
๋๋ ํ ๋ฆฌ๋ฅผ ์ด๋ํด์
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
์ ./configure ๊ณผ์ ์์ โprefix์ ๊ฒฝ๋ก ์ค์ ์ /usr/local/apache ๋ก ์ ํด์ฃผ์๋ค๋ฉด
/usr/local/apache/conf/httpd.conf ์ด httpd.conf ํ์ผ์ ๊ฒฝ๋ก๋ก ํ์ธ๋ ๊ฒ์ด๋ค.
vi ํธ์ง๊ธฐ๋ก ํ์ผ์ ์ด์ด๋ณด์.
vi /usr/local/apache/conf/httpd.conf
vi ํ์ผ์ ์ด๋ฉด ๊ธฐ๋ณธ์ ์ฝ๊ธฐ๋ชจ๋ ๊ฐ์ ๋ชจ๋๋ก ์ด๋ฆฐ๋ค.
a ๋ฅผ ๋๋ฌ ํธ์ง๋ชจ๋๋ก ์ ํํ๊ณ
ServerName ๋ถ๋ถ์ ์ฐพ์ (/ ๋๋ ? ๋ฅผ ์ ๋ ฅํ๋ฉด ํค์๋๋ก ๊ฒ์ ๊ฐ๋ฅ, ๊ฒ์ ๊ฒฐ๊ณผ์์ n์ ๋๋ฅด๋ฉด ๋ค์ ๊ฒ์ ๊ฒฐ๊ณผ๋ก ์ด๋, N์ ๋๋ฅด๋ฉด ์ด์ ๊ฒ์ ๊ฒฐ๊ณผ๋ก ์ด๋)
ServerName localhost:80 ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๊ณ
(# ํ์๋ ์ฃผ์ ํ์์ด๋ฏ๋ก, ๋๋ ๊ธฐ์กด์ ์ฃผ์์ฒ๋ฆฌ ๋์ด์๋ ๋ถ๋ถ์ ๊ทธ๋ฅ ๋๊ณ ์๋ซ์ค์ ์ถ๊ฐํด์คฌ๋ค)
๊ทธ ๋ค์, Require all denied ๋ก ๋์ด์๋ ๋ถ๋ถ์ Require all granted ๋ก ์์
(์ฐธ๊ณ ๋ก, ํธ์ง๊ธฐ ์ฝ๊ธฐ๋ชจ๋์์ :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 ๋ฅผ ์ถ๊ฐํด์ฃผ๋ผ๊ณ ํด์ ์๋์ ๊ฐ์ด ์ถ๊ฐํจ.
์ด๋ฒ์๋ ๋ค๋ฅธ ์ค๋ฅ ๋ฐ์. no listening sockets available
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๋?
๐ ์ถํ ์์ฑ ์์ โฆ ๐
๐จโ๐ซ ์ฐธ๊ณ ์๋ฃ
- LAMP ์คํ์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์ํค๋ฐฑ๊ณผ - LAMP
- ์ํ์น 2.4๋ฒ์ access control๊ณผ syntax
- http://mirror.apache-kr.org/
- https://sourceforge.net/projects/pcre/files/pcre/8.45/
- <>
๐ ๋ด์ฉ ์ค ์๋ชป๋ ๋ถ๋ถ์ด ์์ ๊ฒฝ์ฐ ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ