CentOS: LAMP ์Šคํƒ ๊ตฌ์ถ• ๐Ÿ–ฅ๏ธ๐Ÿš€

์ฝ˜ํ…์ธ  ๋Œ€ํ‘œ ์ด๋ฏธ์ง€ - 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๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. CentOS ISO ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ: ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ์ตœ์‹  ๋ฒ„์ „์˜ ISO ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ถ€ํŒ… ๊ฐ€๋Šฅํ•œ USB ๋“œ๋ผ์ด๋ธŒ ์ƒ์„ฑ: ISO ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•ด ๋ถ€ํŒ… ๊ฐ€๋Šฅํ•œ USB๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. BIOS ์„ค์ •: ์ปดํ“จํ„ฐ์˜ BIOS ์„ค์ •์—์„œ USB๋กœ ๋ถ€ํŒ…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„ค์น˜ ์‹œ์ž‘: USB๋กœ ๋ถ€ํŒ… ํ›„ ์„ค์น˜ ๊ณผ์ •์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  5. ์–ธ์–ด ์„ ํƒ: ์„ค์น˜์— ์‚ฌ์šฉํ•  ์–ธ์–ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. ์‹œ๊ฐ„๋Œ€ ์„ค์ •: ์‚ฌ์šฉ์ž์˜ ์ง€์—ญ์— ๋งž๋Š” ์‹œ๊ฐ„๋Œ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  7. ํŒŒํ‹ฐ์…˜ ์„ค์ •: ํ•˜๋“œ ๋””์Šคํฌ์˜ ํŒŒํ‹ฐ์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  8. ๋„คํŠธ์›Œํฌ ์„ค์ •: ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  9. ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ: root ๊ณ„์ •๊ณผ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  10. ์„ค์น˜ ์™„๋ฃŒ ๋ฐ ์žฌ๋ถ€ํŒ…: ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์‹œ์Šคํ…œ์„ ์žฌ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค.
CentOS ์„ค์น˜ ๊ณผ์ • ๋‹ค์ด์–ด๊ทธ๋žจ ISO ๋‹ค์šด๋กœ๋“œ USB ์ƒ์„ฑ BIOS ์„ค์ • ์„ค์น˜ ์‹œ์ž‘ ์–ธ์–ด ์„ ํƒ ์‹œ๊ฐ„๋Œ€ ์„ค์ • ํŒŒํ‹ฐ์…˜ ์„ค์ • ๋„คํŠธ์›Œํฌ ์„ค์ • ๊ณ„์ • ์ƒ์„ฑ ์„ค์น˜ ์™„๋ฃŒ

์ด์ œ 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 ์„ฑ๋Šฅ ์ตœ์ ํ™” ์š”์†Œ Apache ์„ฑ๋Šฅ ์ตœ์ ํ™” KeepAlive MPM ์„ค์ • ์บ์‹œ ์„ค์ • GZIP ์••์ถ•

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: ์ž„์‹œ ํ…Œ์ด๋ธ”์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
MariaDB ์„ฑ๋Šฅ ์ตœ์ ํ™” ์š”์†Œ MariaDB ์„ฑ๋Šฅ ์ตœ์ ํ™” innodb_buffer_pool_size max_connections query_cache_size tmp_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 ์„ฑ๋Šฅ ์ตœ์ ํ™” ์š”์†Œ PHP ์„ฑ๋Šฅ ์ตœ์ ํ™” OPcache Realpath Cache ์„ธ์…˜ ํ•ธ๋“ค๋Ÿฌ ๋ชจ๋“ˆ ๊ด€๋ฆฌ

์ด์ œ 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 ์Šคํƒ ๋ณด์•ˆ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” LAMP ์Šคํƒ ๋ณด์•ˆ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐฉํ™”๋ฒฝ SELinux SSH ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ ์„ฑ๋Šฅ ํŠœ๋‹ ๋ฐฑ์—…

์ด๋Ÿฌํ•œ ๋ณด์•ˆ ๊ฐ•ํ™”์™€ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•˜๋ฉด LAMP ์Šคํƒ์˜ ์•ˆ์ •์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ์ง€์†์ ์ธ ๊ด€๋ฆฌ์™€ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•œ ๊ณผ์ •์ž„์„ ๋ช…์‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •๊ธฐ์ ์ธ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ, ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”์— ๋”ฐ๋ฅธ ์„ค์ • ์กฐ์ •์„ ํ†ตํ•ด ํ•ญ์ƒ ์ตœ์ ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋กœ์จ CentOS์—์„œ LAMP ์Šคํƒ์„ ๊ตฌ์ถ•ํ•˜๊ณ , ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋ฉฐ, ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ์ „์ฒด ๊ณผ์ •์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ผ ๊ตฌ์ถ•ํ•œ LAMP ์Šคํƒ์€ ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ธ ์›น ์„œ๋ฒ„ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์›น ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์šด์˜๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ๐ŸŒŸ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ‘ฉโ€๐Ÿ’ป