CentOS: LAMP ์คํ ๊ตฌ์ถ ๐ฅ๏ธ๐

์๋ ํ์ธ์, ์ฌ๋ฌ๋ถ! ์ค๋์ ์น ๊ฐ๋ฐ์ ํต์ฌ์ด๋ผ๊ณ ํ ์ ์๋ LAMP ์คํ์ CentOS ํ๊ฒฝ์์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ธ์ ์ฌ๋ฅ๋ท์ '์ง์์ธ์ ์ฒ' ๋ฉ๋ด์ ๋ฑ๋ก๋ ์์ ์ด๋ฉฐ, 'DB/์๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ์ํ๋ ๋ด์ฉ์ ๋๋ค. LAMP ์คํ์ Linux, Apache, MySQL(MariaDB), PHP์ ์ฝ์๋ก, ์น ์๋ฒ ๊ตฌ์ถ์ ํ์์ ์ธ ์์๋ค์ ํฌํจํ๊ณ ์์ต๋๋ค.
LAMP ์คํ์ ์คํ ์์ค ๊ธฐ๋ฐ์ ๊ฐ๋ ฅํ ์น ์๋ฒ ํ๊ฒฝ์ ์ ๊ณตํ๋ฉฐ, ๋ง์ ๊ธฐ์ ๊ณผ ๊ฐ๋ฐ์๋ค์ด ์ ํธํ๋ ๊ตฌ์ฑ์ ๋๋ค. ํนํ CentOS๋ ์์ ์ฑ๊ณผ ๋ณด์์ฑ์ด ๋ฐ์ด๋ ์๋ฒ ์ด์ ์ฒด์ ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ฃ . ์ด ๊ธ์ ํตํด ์ฌ๋ฌ๋ถ์ CentOS์์ LAMP ์คํ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์์ธํ ๋ฐฐ์ฐ์ค ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ง๊ธ๋ถํฐ LAMP ์คํ์ ๊ฐ ๊ตฌ์ฑ ์์์ ์ค์น ๊ณผ์ , ๊ทธ๋ฆฌ๊ณ ์ต์ ํ ๋ฐฉ๋ฒ๊น์ง ๊น์ด ์๊ฒ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๐ง๐ก
1. CentOS ์๊ฐ ๋ฐ ์ค์น ๐ง
CentOS(Community ENTerprise Operating System)๋ Red Hat Enterprise Linux(RHEL)์ ์์ค ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ๋ฌด๋ฃ ์คํ ์์ค ๋ฆฌ๋ ์ค ๋ฐฐํฌํ์ ๋๋ค. ์์ ์ฑ๊ณผ ๋ณด์์ฑ์ด ๋ฐ์ด๋ ์๋ฒ ์ด์ ์ฒด์ ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
1.1 CentOS์ ํน์ง
- ๋์ ์์ ์ฑ: RHEL์ ์์ค ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ์์ ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
- ๊ธด ์ง์ ๊ธฐ๊ฐ: ๊ฐ ๋ฒ์ ๋ง๋ค ์ต์ 10๋ ์ ์ง์ ๊ธฐ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
- ๊ฐ๋ ฅํ ๋ณด์: SELinux(Security-Enhanced Linux)๊ฐ ๊ธฐ๋ณธ์ผ๋ก ํ์ฌ๋์ด ์์ด ๋ณด์์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค.
- ๋ฌด๋ฃ ์ฌ์ฉ: ์์ ์ฉ์ผ๋ก๋ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋์ ์ฌ์ฉ์ ์ปค๋ฎค๋ํฐ: ๋ง์ ์ฌ์ฉ์๋ค์ด ์์ด ๋ฌธ์ ํด๊ฒฐ์ด ์ฉ์ดํฉ๋๋ค.
1.2 CentOS ์ค์น ๊ณผ์
CentOS๋ฅผ ์ค์นํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- CentOS ISO ์ด๋ฏธ์ง ๋ค์ด๋ก๋: ๊ณต์ ์น์ฌ์ดํธ์์ ์ต์ ๋ฒ์ ์ ISO ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ๋ถํ ๊ฐ๋ฅํ USB ๋๋ผ์ด๋ธ ์์ฑ: ISO ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํด ๋ถํ ๊ฐ๋ฅํ USB๋ฅผ ๋ง๋ญ๋๋ค.
- BIOS ์ค์ : ์ปดํจํฐ์ BIOS ์ค์ ์์ USB๋ก ๋ถํ ํ ์ ์๋๋ก ์ค์ ํฉ๋๋ค.
- ์ค์น ์์: USB๋ก ๋ถํ ํ ์ค์น ๊ณผ์ ์ ์์ํฉ๋๋ค.
- ์ธ์ด ์ ํ: ์ค์น์ ์ฌ์ฉํ ์ธ์ด๋ฅผ ์ ํํฉ๋๋ค.
- ์๊ฐ๋ ์ค์ : ์ฌ์ฉ์์ ์ง์ญ์ ๋ง๋ ์๊ฐ๋๋ฅผ ์ค์ ํฉ๋๋ค.
- ํํฐ์ ์ค์ : ํ๋ ๋์คํฌ์ ํํฐ์ ์ ์ค์ ํฉ๋๋ค.
- ๋คํธ์ํฌ ์ค์ : ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ณ์ ์์ฑ: root ๊ณ์ ๊ณผ ์ผ๋ฐ ์ฌ์ฉ์ ๊ณ์ ์ ์์ฑํฉ๋๋ค.
- ์ค์น ์๋ฃ ๋ฐ ์ฌ๋ถํ : ์ค์น๊ฐ ์๋ฃ๋๋ฉด ์์คํ ์ ์ฌ๋ถํ ํฉ๋๋ค.
์ด์ CentOS๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ค์น๋์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊ธฐ ์ ์, ์์คํ ์ ์ต์ ์ํ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํด์ฃผ์ธ์:
sudo yum update -y
์ด ๋ช ๋ น์ด๋ ์์คํ ์ ๋ชจ๋ ํจํค์ง๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. '-y' ์ต์ ์ ๋ชจ๋ ํ์ธ ๋ฉ์์ง์ ์๋์ผ๋ก '์'๋ก ๋ตํ๋๋ก ํฉ๋๋ค.
CentOS์ ์ค์น๊ฐ ์๋ฃ๋์์ผ๋, ์ด์ LAMP ์คํ์ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค. ๋ค์ ์น์ ์์๋ Apache ์น ์๋ฒ์ ์ค์น์ ์ค์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๐
2. Apache ์น ์๋ฒ ์ค์น ๋ฐ ์ค์ ๐
Apache๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ ์์ค ์น ์๋ฒ ์ํํธ์จ์ด์ ๋๋ค. ์์ ์ฑ, ๋ณด์์ฑ, ํ์ฅ์ฑ์ด ๋ฐ์ด๋๋ฉฐ, ๋ค์ํ ๋ชจ๋์ ํตํด ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ต๋๋ค.
2.1 Apache ์ค์น
CentOS์์ Apache๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ธ์:
sudo yum install httpd -y
์ด ๋ช ๋ น์ด๋ Apache ์น ์๋ฒ(httpd)๋ฅผ ์ค์นํฉ๋๋ค.
2.2 Apache ์๋น์ค ์์ ๋ฐ ํ์ฑํ
Apache๋ฅผ ์ค์นํ ํ์๋ ์๋น์ค๋ฅผ ์์ํ๊ณ ์์คํ ๋ถํ ์ ์๋์ผ๋ก ์์๋๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค:
sudo systemctl start httpd
sudo systemctl enable httpd
์ฒซ ๋ฒ์งธ ๋ช ๋ น์ด๋ Apache ์๋น์ค๋ฅผ ์ฆ์ ์์ํ๊ณ , ๋ ๋ฒ์งธ ๋ช ๋ น์ด๋ ์์คํ ๋ถํ ์ Apache๊ฐ ์๋์ผ๋ก ์์๋๋๋ก ์ค์ ํฉ๋๋ค.
2.3 ๋ฐฉํ๋ฒฝ ์ค์
์น ์๋ฒ๊ฐ ์ธ๋ถ์์ ์ ์ ๊ฐ๋ฅํ๋๋ก ๋ฐฉํ๋ฒฝ์ ์ค์ ํด์ผ ํฉ๋๋ค:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
์ด ๋ช ๋ น์ด๋ค์ HTTP(80๋ฒ ํฌํธ)์ HTTPS(443๋ฒ ํฌํธ)์ ๋ํ ์ ๊ทผ์ ํ์ฉํ๊ณ ๋ฐฉํ๋ฒฝ ์ค์ ์ ๋ค์ ๋ก๋ํฉ๋๋ค.
2.4 Apache ์ค์ ํ์ผ
Apache์ ์ฃผ์ ์ค์ ํ์ผ์ /etc/httpd/conf/httpd.conf์ ๋๋ค. ์ด ํ์ผ์ ์์ ํ์ฌ Apache์ ๋์์ ์ธ๋ถ์ ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค.
์ฃผ์ ์ค์ ํญ๋ชฉ๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ServerRoot: Apache์ ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค.
- Listen: Apache๊ฐ ์ฌ์ฉํ ํฌํธ๋ฅผ ์ง์ ํฉ๋๋ค.
- ServerAdmin: ๊ด๋ฆฌ์ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ง์ ํฉ๋๋ค.
- DocumentRoot: ์น ๋ฌธ์์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค.
- Directory: ํน์ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ค์ ํฉ๋๋ค.
2.5 ๊ฐ์ ํธ์คํธ ์ค์
Apache์์๋ ๊ฐ์ ํธ์คํธ๋ฅผ ํตํด ํ๋์ ์๋ฒ์์ ์ฌ๋ฌ ์น์ฌ์ดํธ๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค. ๊ฐ์ ํธ์คํธ ์ค์ ์ /etc/httpd/conf.d/ ๋๋ ํ ๋ฆฌ์ .conf ํ์ผ์ ๋ง๋ค์ด ๊ด๋ฆฌํฉ๋๋ค.
์๋ฅผ ๋ค์ด, example.com์ด๋ผ๋ ๋๋ฉ์ธ์ ์ํ ๊ฐ์ ํธ์คํธ๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค:
sudo nano /etc/httpd/conf.d/example.com.conf
ํ์ผ ๋ด์ฉ:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
์ด ์ค์ ์ example.com๊ณผ www.example.com์ผ๋ก ๋ค์ด์ค๋ ์์ฒญ์ /var/www/example.com ๋๋ ํ ๋ฆฌ๋ก ์ฐ๊ฒฐํฉ๋๋ค.
2.6 Apache ์ฑ๋ฅ ์ต์ ํ
Apache์ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค:
- KeepAlive: ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ์ ์ ์งํ์ฌ ๋ฐ๋ณต์ ์ธ ์์ฒญ ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ ๋๋ค.
- MPM (Multi-Processing Module) ์ค์ : ์๋ฒ์ ํ๋์จ์ด ์์์ ๋ง๊ฒ ํ๋ก์ธ์ค์ ์ค๋ ๋ ์๋ฅผ ์กฐ์ ํฉ๋๋ค.
- ์บ์ ์ค์ : mod_cache๋ฅผ ์ฌ์ฉํ์ฌ ์์ฃผ ์์ฒญ๋๋ ์ฝํ ์ธ ๋ฅผ ์บ์ํฉ๋๋ค.
- GZIP ์์ถ: mod_deflate๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ก๋๋ ๋ฐ์ดํฐ๋ฅผ ์์ถํฉ๋๋ค.
Apache ์น ์๋ฒ์ ์ค์น์ ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ด ์๋ฃ๋์์ต๋๋ค. ์ด์ ์น ์๋ฒ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๊ณ ์์ผ๋ฉฐ, ๊ธฐ๋ณธ ์น ํ์ด์ง๋ฅผ ํตํด ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ์ IP ์ฃผ์๋ ๋๋ฉ์ธ ์ด๋ฆ์ ์ ๋ ฅํ๋ฉด Apache์ ๊ธฐ๋ณธ ํ์ด์ง๊ฐ ํ์๋ ๊ฒ์ ๋๋ค.
๋ค์ ์น์ ์์๋ LAMP ์คํ์ ๋ค์ ๊ตฌ์ฑ ์์์ธ MySQL(MariaDB) ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ค์น์ ์ค์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ์์์ด๋ฏ๋ก, ์ด ๊ณผ์ ์ ํตํด ๋์ฑ ๊ฐ๋ ฅํ ์น ์๋ฒ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ๐๏ธ๐ฝ
3. MySQL(MariaDB) ์ค์น ๋ฐ ์ค์ ๐๏ธ
MySQL์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์ ๋๋ค. ๊ทธ๋ฌ๋ CentOS 7๋ถํฐ๋ MySQL์ ํฌํฌ(fork) ๋ฒ์ ์ธ MariaDB๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฑํํ๊ณ ์์ต๋๋ค. MariaDB๋ MySQL๊ณผ ์๋ฒฝํ ํธํ๋๋ฉฐ, ๋ช ๊ฐ์ง ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
3.1 MariaDB ์ค์น
MariaDB๋ฅผ ์ค์นํ๊ธฐ ์ํด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค:
sudo yum install mariadb-server mariadb -y
์ด ๋ช ๋ น์ด๋ MariaDB ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ฅผ ํจ๊ป ์ค์นํฉ๋๋ค.
3.2 MariaDB ์๋น์ค ์์ ๋ฐ ํ์ฑํ
์ค์น๊ฐ ์๋ฃ๋๋ฉด MariaDB ์๋น์ค๋ฅผ ์์ํ๊ณ ์์คํ ๋ถํ ์ ์๋์ผ๋ก ์์๋๋๋ก ์ค์ ํฉ๋๋ค:
sudo systemctl start mariadb
sudo systemctl enable mariadb
3.3 MariaDB ๋ณด์ ์ค์
MariaDB์ ๊ธฐ๋ณธ ๋ณด์ ์ค์ ์ ์ํด mysql_secure_installation ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค:
sudo mysql_secure_installation
์ด ์คํฌ๋ฆฝํธ๋ ๋ค์๊ณผ ๊ฐ์ ๋ณด์ ์ค์ ์ ๋์์ค๋๋ค:
- root ๋น๋ฐ๋ฒํธ ์ค์
- ์ต๋ช ์ฌ์ฉ์ ์ ๊ฑฐ
- ์๊ฒฉ root ๋ก๊ทธ์ธ ๋นํ์ฑํ
- ํ ์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ฑฐ
- ๊ถํ ํ ์ด๋ธ ๋ฆฌ๋ก๋
3.4 MariaDB ๋ก๊ทธ์ธ
์ค์ ์ด ์๋ฃ๋๋ฉด ๋ค์ ๋ช ๋ น์ด๋ก MariaDB์ ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค:
mysql -u root -p
๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด MariaDB ์ฝ์์ ์ ์๋ฉ๋๋ค.
3.5 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์ฌ์ฉ์ ์์ฑ
MariaDB ์ฝ์์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค:
CREATE DATABASE mydb;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
์ด ๋ช ๋ น์ด๋ค์ 'mydb'๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๊ณ , 'myuser'๋ผ๋ ์ฌ์ฉ์์๊ฒ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๋ชจ๋ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
3.6 MariaDB ์ค์ ์ต์ ํ
MariaDB์ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด /etc/my.cnf.d/ ๋๋ ํ ๋ฆฌ์ ์ค์ ํ์ผ์ ์์ ํ ์ ์์ต๋๋ค. ์ฃผ์ ์ต์ ํ ํญ๋ชฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- innodb_buffer_pool_size: InnoDB ์คํ ๋ฆฌ์ง ์์ง์ด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค.
- max_connections: ๋์์ ์ฒ๋ฆฌํ ์ ์๋ ์ต๋ ์ฐ๊ฒฐ ์๋ฅผ ์ค์ ํฉ๋๋ค.
- query_cache_size: ์ฟผ๋ฆฌ ์บ์์ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค.
- tmp_table_size ๋ฐ max_heap_table_size: ์์ ํ ์ด๋ธ์ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค.
3.7 MariaDB ๋ฐฑ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. mysqldump ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฑ์ ํ ์ ์์ต๋๋ค:
mysqldump -u root -p --all-databases > backup.sql
์ด ๋ช ๋ น์ด๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ backup.sql ํ์ผ๋ก ๋ฐฑ์ ํฉ๋๋ค.
3.8 MariaDB ๋ชจ๋ํฐ๋ง
MariaDB์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋๊ตฌ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
- mysqltuner: MariaDB ์๋ฒ์ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ์ต์ ํ ์ ์์ ์ ๊ณตํฉ๋๋ค.
- phpMyAdmin: ์น ๊ธฐ๋ฐ์ MariaDB ๊ด๋ฆฌ ๋๊ตฌ์ ๋๋ค.
- MariaDB ๋ด์ฅ ๋ช ๋ น์ด: SHOW PROCESSLIST, SHOW STATUS ๋ฑ์ ๋ช ๋ น์ด๋ก ์๋ฒ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ด์ MariaDB๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ค์น๋๊ณ ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ด ์๋ฃ๋์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๊ฐ ์์ ํ๊ฒ ์คํ๋๊ณ ์์ผ๋ฉฐ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
๋ค์ ์น์ ์์๋ LAMP ์คํ์ ๋ง์ง๋ง ๊ตฌ์ฑ ์์์ธ PHP์ ์ค์น์ ์ค์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. PHP๋ ๋์ ์น ํ์ด์ง๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๋ฒ ์ฌ์ด๋ ์คํฌ๋ฆฝํ ์ธ์ด๋ก, ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์์ ์ธ ์์์ ๋๋ค. ๐ฅ๏ธ๐ป
4. PHP ์ค์น ๋ฐ ์ค์ ๐
PHP(PHP: Hypertext Preprocessor)๋ ์๋ฒ ์ฌ์ด๋ ์คํฌ๋ฆฝํ ์ธ์ด๋ก, ๋์ ์น ํ์ด์ง๋ฅผ ์์ฑํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. Apache์ ํจ๊ป ์ฌ์ฉ๋์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฑ์๋๋ฅผ ๊ตฌ์ฑํ๋ ํต์ฌ ์์์ ๋๋ค.
4.1 PHP ์ค์น
CentOS์์ PHP๋ฅผ ์ค์นํ๊ธฐ ์ํด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค:
sudo yum install php php-mysql php-fpm -y
์ด ๋ช ๋ น์ด๋ PHP ์ฝ์ด, MySQL ์ฐ๋ ๋ชจ๋, FastCGI Process Manager(FPM)๋ฅผ ํจ๊ป ์ค์นํฉ๋๋ค.
4.2 ์ถ๊ฐ PHP ๋ชจ๋ ์ค์น
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ถ๊ฐ์ ์ธ PHP ๋ชจ๋์ ์ค์นํ ์ ์ ์ต๋๋ค. ์์ฃผ ์ฌ์ฉ๋๋ ๋ชจ๋๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
sudo yum install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel -y
์ด ๋ช ๋ น์ด๋ ์ด๋ฏธ์ง ์ฒ๋ฆฌ, LDAP ์ฐ๋, XML ์ฒ๋ฆฌ, ๋ค๊ตญ์ด ์ง์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ชจ๋๋ค์ ์ค์นํฉ๋๋ค.
4.3 PHP ์ค์ ํ์ผ
PHP์ ์ฃผ์ ์ค์ ํ์ผ์ /etc/php.ini์ ๋๋ค. ์ด ํ์ผ์ ์์ ํ์ฌ PHP์ ๋์์ ์ธ๋ถ์ ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค.
์ฃผ์ ์ค์ ํญ๋ชฉ๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- memory_limit: PHP ์คํฌ๋ฆฝํธ๊ฐ ์ฌ์ฉํ ์ ์๋ ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ค์ ํฉ๋๋ค.
- max_execution_time: PHP ์คํฌ๋ฆฝํธ์ ์ต๋ ์คํ ์๊ฐ์ ์ค์ ํฉ๋๋ค.
- post_max_size: POST ๋ฐฉ์์ผ๋ก ์ ์กํ ์ ์๋ ์ต๋ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค.
- upload_max_filesize: ์ ๋ก๋ํ ์ ์๋ ํ์ผ์ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค.
- display_errors: ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ๋ฉด์ ํ์ํ ์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค.
4.4 PHP-FPM ์ค์
PHP-FPM(FastCGI Process Manager)์ PHP์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค. PHP-FPM์ ์ค์ ํ์ผ์ /etc/php-fpm.d/www.conf์ ์์ต๋๋ค.
์ฃผ์ ์ค์ ํญ๋ชฉ๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- pm: ํ๋ก์ธ์ค ๊ด๋ฆฌ ๋ฐฉ์์ ์ค์ ํฉ๋๋ค (static, dynamic, ondemand).
- pm.max_children: ์ต๋ ์์ ํ๋ก์ธ์ค ์๋ฅผ ์ค์ ํฉ๋๋ค.
- pm.start_servers: ์์ ์ ์์ฑํ ์์ ํ๋ก์ธ์ค ์๋ฅผ ์ค์ ํฉ๋๋ค.
- pm.min_spare_servers: ์ต์ ์ ํด ํ๋ก์ธ์ค ์๋ฅผ ์ค์ ํฉ๋๋ค.
- pm.max_spare_servers: ์ต๋ ์ ํด ํ๋ก์ธ์ค ์๋ฅผ ์ค์ ํฉ๋๋ค.
4.5 PHP์ Apache ์ฐ๋
PHP๋ฅผ Apache์ ์ฐ๋ํ๊ธฐ ์ํด Apache ์ค์ ํ์ผ์ ์์ ํด์ผ ํฉ๋๋ค. /etc/httpd/conf/httpd.conf ํ์ผ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
์ด ์ค์ ์ .php ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ์ PHP-FPM์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ์ง์ํฉ๋๋ค.
4.6 PHP ์ ๋ณด ํ์ธ
PHP๊ฐ ์ ์์ ์ผ๋ก ์ค์น๋์๋์ง ํ์ธํ๊ธฐ ์ํด ๊ฐ๋จํ PHP ์ ๋ณด ํ์ด์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. /var/www/html/info.php ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ ๋ ฅํฉ๋๋ค:
<?php
phpinfo();
?>
์น ๋ธ๋ผ์ฐ์ ์์ http://your_server_ip/info.php์ ์ ์ํ๋ฉด PHP ์ค์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
4.7 PHP ์ฑ๋ฅ ์ต์ ํ
PHP์ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค:
- OPcache ํ์ฑํ: PHP ์คํฌ๋ฆฝํธ์ ์ปดํ์ผ๋ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์บ์ํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
- Realpath Cache ์ต์ ํ: ํ์ผ ๊ฒฝ๋ก ํ์ธ ์์ ์ ์ต์ํํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํฉ๋๋ค.
- ์ธ์ ํธ๋ค๋ฌ ์ต์ ํ: ์ธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ผ ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ฌ ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ ๋๋ค.
- ๋ถํ์ํ ๋ชจ๋ ๋นํ์ฑํ: ์ฌ์ฉํ์ง ์๋ PHP ๋ชจ๋์ ๋นํ์ฑํํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ ๋๋ค.
์ด์ PHP๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ค์น๋๊ณ Apache์ ์ฐ๋๋์์ต๋๋ค. ์ด๋ก์จ LAMP ์คํ์ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ค๋น๋์์ต๋๋ค. ์ด ํ๊ฒฝ์์ ๋ค์ํ PHP ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๊ฒ ๋์์ต๋๋ค.
๋ค์ ์น์ ์์๋ LAMP ์คํ์ ๋ณด์ ๊ฐํ ๋ฐฉ๋ฒ๊ณผ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ ์ต์ ํ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฅผ ํตํด ๋์ฑ ์์ ํ๊ณ ํจ์จ์ ์ธ ์น ์๋ฒ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ๐ก๏ธ๐
5. LAMP ์คํ ๋ณด์ ๊ฐํ ๋ฐ ์ฑ๋ฅ ์ต์ ํ ๐๐
LAMP ์คํ์ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ค์น๋์์ง๋ง, ๋ณด์๊ณผ ์ฑ๋ฅ ์ต์ ํ๋ ์ง์์ ์ผ๋ก ๊ด๋ฆฌํด์ผ ํ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ์ด ์น์ ์์๋ LAMP ์คํ์ ๋ณด์์ ๊ฐํํ๊ณ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
5.1 ๋ณด์ ๊ฐํ
5.1.1 ๋ฐฉํ๋ฒฝ ์ค์
CentOS์ ๊ธฐ๋ณธ ๋ฐฉํ๋ฒฝ์ธ firewalld๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ํฌํธ๋ง ๊ฐ๋ฐฉํฉ๋๋ค:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
5.1.2 SELinux ํ์ฉ
SELinux(Security-Enhanced Linux)๋ฅผ ํ์ฑํํ๊ณ ์ ์ ํ ์ค์ ํ์ฌ ์์คํ ๋ณด์์ ๊ฐํํฉ๋๋ค:
sudo setenforce 1
sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config
5.1.3 SSH ๋ณด์ ๊ฐํ
/etc/ssh/sshd_config ํ์ผ์ ์์ ํ์ฌ SSH ์ ์ ๋ณด์์ ๊ฐํํฉ๋๋ค:
- ๋ฃจํธ ๋ก๊ทธ์ธ ๋นํ์ฑํ: PermitRootLogin no
- ๋น๋ฐ๋ฒํธ ์ธ์ฆ ๋นํ์ฑํ (ํค ๊ธฐ๋ฐ ์ธ์ฆ ์ฌ์ฉ): PasswordAuthentication no
- SSH ํฌํธ ๋ณ๊ฒฝ: Port 2222 (๊ธฐ๋ณธ 22 ๋์ ๋ค๋ฅธ ํฌํธ ์ฌ์ฉ)
5.1.4 ์ ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ
์์คํ ๊ณผ ์ค์น๋ ํจํค์ง๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค:
sudo yum update -y
5.1.5 ModSecurity ์ค์น
์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฉํ๋ฒฝ์ธ ModSecurity๋ฅผ ์ค์นํ์ฌ ์น ๊ณต๊ฒฉ์ ๋ฐฉ์ดํฉ๋๋ค:
sudo yum install mod_security mod_security_crs -y
5.2 ์ฑ๋ฅ ์ต์ ํ
5.2.1 Apache ์ฑ๋ฅ ํ๋
/etc/httpd/conf/httpd.conf ํ์ผ์์ ๋ค์ ์ค์ ์ ์ต์ ํํฉ๋๋ค:
- KeepAlive On
- MaxKeepAliveRequests 100
- KeepAliveTimeout 5
5.2.2 PHP ์ฑ๋ฅ ํ๋
/etc/php.ini ํ์ผ์์ ๋ค์ ์ค์ ์ ์ต์ ํํฉ๋๋ค:
- opcache.enable=1
- opcache.memory_consumption=128
- opcache.interned_strings_buffer=8
- opcache.max_accelerated_files=4000
5.2.3 MariaDB ์ฑ๋ฅ ํ๋
/etc/my.cnf.d/server.cnf ํ์ผ์์ ๋ค์ ์ค์ ์ ์ต์ ํํฉ๋๋ค:
- innodb_buffer_pool_size = 1G (์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ 50-70% ์ ๋)
- innodb_log_file_size = 256M
- innodb_flush_log_at_trx_commit = 2
5.2.4 ์์คํ ๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง
์์คํ ๋ฆฌ์์ค ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด ๋ค์ ๋๊ตฌ๋ค์ ์ฌ์ฉํฉ๋๋ค:
- top: CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ํ์ธ
- iostat: ๋์คํฌ I/O ๋ชจ๋ํฐ๋ง
- netstat: ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํ ํ์ธ
5.3 ๋ฐฑ์ ์ ๋ต
์ ๊ธฐ์ ์ธ ๋ฐฑ์ ์ ์์คํ ์์ ์ฑ์ ์ํด ํ์์ ์ ๋๋ค:
- ํ์ผ ์์คํ ๋ฐฑ์ : rsync๋ฅผ ์ฌ์ฉํ ์ฆ๋ถ ๋ฐฑ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ : mysqldump๋ฅผ ์ฌ์ฉํ ์ ๊ธฐ์ ์ธ ๋ฐฑ์
- ์ค์ ํ์ผ ๋ฐฑ์ : ์ฃผ์ ์ค์ ํ์ผ๋ค์ ์ ๊ธฐ์ ์ธ ๋ฐฑ์
์ด๋ฌํ ๋ณด์ ๊ฐํ์ ์ฑ๋ฅ ์ต์ ํ ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ฉด LAMP ์คํ์ ์์ ์ฑ๊ณผ ํจ์จ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ ์ง์์ ์ธ ๊ด๋ฆฌ์ ๋ชจ๋ํฐ๋ง์ด ํ์ํ ๊ณผ์ ์์ ๋ช ์ฌํด์ผ ํฉ๋๋ค. ์ ๊ธฐ์ ์ธ ๋ณด์ ์ ๋ฐ์ดํธ, ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง, ๊ทธ๋ฆฌ๊ณ ํ์์ ๋ฐ๋ฅธ ์ค์ ์กฐ์ ์ ํตํด ํญ์ ์ต์ ์ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด๋ก์จ CentOS์์ LAMP ์คํ์ ๊ตฌ์ถํ๊ณ , ๋ณด์์ ๊ฐํํ๋ฉฐ, ์ฑ๋ฅ์ ์ต์ ํํ๋ ์ ์ฒด ๊ณผ์ ์ ์ดํด๋ณด์์ต๋๋ค. ์ด ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผ ๊ตฌ์ถํ LAMP ์คํ์ ์์ ์ ์ด๊ณ ํจ์จ์ ์ธ ์น ์๋ฒ ํ๊ฒฝ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค. ์ฌ๋ฌ๋ถ์ ์น ํ๋ก์ ํธ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ด์๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! ๐๐จโ๐ป๐ฉโ๐ป
๊ด๋ จ ํค์๋
- ์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ฌ๋ฅ๋ท์ ์ต์ AI ๊ธฐ์ ๊ณผ ๋ฒ๋ฅ ์ ๊ธฐ๋ฐํ์ฌ ์์ฌ์ ์ง์ ์ฌ์ฐ๊ถ์ ์ ๊ทน์ ์ผ๋ก ๋ณดํธํ๋ฉฐ,
๋ฌด๋จ ์ฌ์ฉ ๋ฐ ์นจํด ํ์์ ๋ํด ๋ฒ์ ๋์์ ํ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ ํฉ๋๋ค.
ยฉ 2025 ์ฌ๋ฅ๋ท | All rights reserved.
๋๊ธ 0๊ฐ