서버 설치 · 3 min read · Oct 24, 2025
CentOS 7에서 PHP 및 MySQL(LEMP 스택)과 함께 Nginx 설치하는 방법
Nginx (“엔진 엑스”라고 발음됨)는 무료, 오픈 소스, 고성능 HTTP 서버입니다. Nginx는 안정성, 풍부한 기능 세트, 간단한 구성 및 낮은 자원 소비로 유명합니다. 이 튜토리얼에서는 PHP 지원( PHP-FPM을 통해) 및 MySQL(마리아DB) 지원과 함께 CentOS 7 서버에 Nginx를 설치하는 방법을 보여줍니다.
1 사전 참고
이 튜토리얼에서는 호스트 이름 server1.example.com과 IP 주소 192.168.1.105를 사용합니다. 이러한 설정은 귀하의 경우 다를 수 있으므로 적절한 곳에서 교체해야 합니다.
2 추가 리포지토리 활성화
Nginx는 공식 CentOS 리포지토리에서 사용할 수 없으므로 Nginx 프로젝트의 리포지토리를 포함하여 설치합니다:
vi /etc/yum.repos.d/nginx.repo [nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=13 MySQL 설치
먼저 마리아DB를 설치합니다. 마리아DB는 MySQL의 무료 포크입니다. 셸에서 이 명령을 실행합니다:
yum install mariadb mariadb-server net-tools그런 다음 MySQL의 시스템 시작 링크를 생성하여 MySQL이 시스템 부팅 시 자동으로 시작되도록 하고 MySQL 서버를 시작합니다:
systemctl enable mariadb.service
systemctl start mariadb.service이제 네트워킹이 활성화되었는지 확인합니다. 실행:
netstat -tap | grep mysql다음과 같은 결과가 표시되어야 합니다:
[root@example ~]# netstat -tap | grep mysql
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 10623/mysqld 실행:
mysql_secure_installation루트 사용자에 대한 비밀번호를 설정합니다(그렇지 않으면 누구나 MySQL 데이터베이스에 접근할 수 있습니다!):
[root@example ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not foundNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!MariaDB에 로그인하여 보안을 설정하려면 현재
루트 사용자에 대한 비밀번호가 필요합니다. MariaDB를 방금 설치했으며
루트 비밀번호를 아직 설정하지 않았다면 비밀번호는 비어 있으므로
여기서 그냥 Enter를 누르십시오.Enter current password for root (enter for none):
OK, successfully used password, moving on...루트 비밀번호를 설정하면 적절한 권한 없이 누구도 MariaDB
루트 사용자로 로그인할 수 없도록 보장합니다.Set root password? [Y/n] <-- ENTER
New password: <-- yourrootsqlpassword
Re-enter new password: <-- yourrootsqlpassword
Password updated successfully!
Reloading privilege tables..
... Success!기본적으로 MariaDB 설치에는 익명 사용자가 있어 누구나
사용자 계정을 생성하지 않고도 MariaDB에 로그인할 수 있습니다. 이는
오직 테스트를 위한 것이며 설치를 조금 더 원활하게 진행하기 위한 것입니다.
생산 환경으로 이동하기 전에 이를 제거해야 합니다.Remove anonymous users? [Y/n] <-- ENTER
... Success!일반적으로 루트는 'localhost'에서만 연결할 수 있어야 합니다.
이것은 누군가 네트워크에서 루트 비밀번호를 추측할 수 없도록 보장합니다.Disallow root login remotely? [Y/n] <-- ENTER
... Success!기본적으로 MariaDB에는 누구나 접근할 수 있는 'test'라는 데이터베이스가 있습니다.
이것은 오직 테스트를 위한 것이며 생산 환경으로 이동하기 전에 제거해야 합니다.Remove test database and access to it? [Y/n] <-- ENTER
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!권한 테이블을 다시 로드하면 지금까지 수행된 모든 변경 사항이
즉시 적용됩니다.Reload privilege tables now? [Y/n] <-- ENTER
... Success!Cleaning up...모든 작업이 완료되었습니다! 위의 모든 단계를 완료했다면
귀하의 MariaDB 설치는 이제 안전해야 합니다.MariaDB를 사용해 주셔서 감사합니다!
[root@example ~]#[root@server1 ~]# mysql_secure_installation
4 Nginx 설치
Nginx는 nginx.org에서 패키지로 제공되며 다음과 같이 설치할 수 있습니다:
yum install nginx그런 다음 nginx의 시스템 시작 링크를 생성하고 시작합니다:
systemctl enable nginx.service
systemctl start nginx.service포트 80이 이미 사용 중이라는 오류가 발생할 수 있으며, 오류 메시지는 다음과 같습니다:
[root@server1 ~]# service nginx start
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[FAILED]
[root@server1 ~]#이 경우 Apache 서비스가 실행 중일 가능성이 있습니다. 서비스를 중지하고 NGINX 서비스를 다음과 같이 시작합니다:
systemctl stop httpd.service
yum remove httpd
systemctl disable httpd.servicesystemctl enable nginx.service
systemctl start nginx.service그리고 방화벽에서 http 및 https 포트를 엽니다:
firebase-cmd --permanent --zone=public --add-service=http
firebase-cmd --permanent --zone=public --add-service=https
firebase-cmd --reload셸에서의 결과 출력은 다음과 같을 것입니다:
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=http
success
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@example ~]# firewall-cmd --reload
success
[root@example ~]#웹 서버의 IP 주소나 호스트 이름을 브라우저에 입력합니다(예: http://192.168.1.105), 그러면 Nginx 환영 페이지가 표시됩니다:

새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.