CentOS 7 Nginx 설치 | PHP & MariaDB 설치

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

VritrualBox에 CentOS 7 Nginx 설치를 진행해 보겠습니다. 추가로 PHP 설치 후 PHP-FPM 설정을 같이 진행합니다.

✅ CentOS 7 Nginx 설치

epel 저장소 설치 후 nginx 저장소를 추가합니다.

yum -y install epel-release

# /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
stable mainline

CentOS 7에서 기본 패키지 설치로 stable 버전 설치를 진행합니다.

yum  install -y nginx 
nginx -v
nginx version: nginx/1.26.1

기능 테스트 등의 사용 목적으로 최신 버전의 설치가 필요한 경우


yum-config-manager --enable nginx-mainline

✅ php 설치

yum -y install yum-utils
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

설치 가능한 php 버전을 외부 저장소에서 조회합니다.

 yum --enablerepo=remi-safe list php*

설치할 PHP 버전을 활성화 후 설치를 진행합니다.

yum-config-manager --enable remi-php83

yum info php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * remi-php83: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
remi-php83                                                                                        | 3.0 kB  00:00:00     
remi-php83/primary_db                                                                             | 179 kB  00:00:01     
Available Packages
Name        : php
Arch        : x86_64
Version     : 8.3.8
Release     : 1.el7.remi
Size        : 2.1 M
Repo        : remi-php83

설치했던 yum-utils 설치 시 설치된 config-manager를 사용하여 설치할 php 버전을 설정합니다.

yum install -y php php-mbstring php-cli php-fpm php-mysqlnd php-xml
  • php-mbstring : 다국어 문자열 처리, 한글 등 필요 시
  • php-fpm : FastCGI Process Manager, nginx와 연동용
  • php-cli :커맨드라인용, 관리 및 테스트 용도
  • php-mysqlnd :MySQL/MariaDB 연동용 네이티브 드라이버
  • php-xml :XML 처리용, 워드프레스 등 많이 필요

php 버전 확인.

php -v 
PHP 8.3.8 (cli) (built: Jun  4 2024 14:53:17) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.8, Copyright (c) Zend Technologies

✅ Nginx 설정

🔲 방화벽 http 허용 설정

firewall-cmd --add-service=http --permanent
firewall-cmd --reload
firewall-cmd --list-ports
22/tcp

🔲 /etc/nginx/nginx.conf 설정 확인


user  nginx;   # nginx 프로세스 실행 사용자
worker_processes  auto; # cpu 코어 수에 따라 자동 설정

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

# 최대 동시 연결 수
events {
    worker_connections  1024;
}

🔲 user.conf 설정

default.conf 파일 user.conf로 복사 후 설정을 기존 내용을 모두 지우고 아래의 내용을 적용합니다.

cd /etc/nginx/conf.d/
cp default.conf user.conf
vi user.conf 
server {
    # 1. HTTP 포트 80으로 리스닝
    listen       80;

    # 2. 요청을 받을 도메인 이름 (서버 이름)
    server_name  mydomain.com;

    # 3. 웹 문서 루트 디렉토리 설정
    root   /home/testuser/www;

    # 4. 기본 인덱스 파일 설정
    index  index.html index.htm index.php;

    # 5. 문자 인코딩 UTF-8 설정
    charset utf-8;

    # 6. 정적 파일 처리
    location / {
        # 요청된 파일이 있으면 그 파일, 디렉터리이면 index 파일, 없으면 404 반환
        try_files $uri $uri/ =404;
    }

    # 7. PHP 파일 처리 설정
    location ~ \.php$ {
        # fastcgi 설정 파일 포함 (필수 파라미터들 포함)
        include        fastcgi_params;

        # PHP 요청을 FastCGI (PHP-FPM) 서버로 전달
        fastcgi_pass   127.0.0.1:9000;

        # 기본 인덱스 파일 설정
        fastcgi_index  index.php;

        # 실제 PHP 파일 경로를 FastCGI에 전달
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

php-fpm 설정 변경 내용

  • home/testuser/www;
  • /scripts$fastcgi_script_name; > $document_root$fastcgi_script_name;

웹 접속 시 403 에러가 발생하기 때문에 호스트 계정 폴더의 퍼미션을 755로 수정 및 SELinux를 비활성화 합니다.

chmod 755  /home/testuser

/etc/selinux/config 파일에서 SELINUX=disabled 설정을 진행했습니다. source 명령어 반영은 안되고 재부팅 시에만 적용되는 것으로 확인했습니다.

nginx 시작 및 php-fpm 시작을 진행합니다.

systemctl start nginx
systemctl enable nginx
systemctl status nginx
nginx 상태 확인
systemctl start php-fpm
systemctl enable php-fpm
systemctl status php-fpm
PHP_FPM 상태 확인

🔲 PHP_FPM 연동 테스트 테스트

루트 폴더 경로에 phpinfo.php 생성

vi phpinfo.php

<?php phpinfo(); ?>

php-fpm 구동까지 웹 접속 후 확인합니다.

nginx php 설치_php-fpm 설정 확인

✅ MariaDB 설치

MariaDB 기본 설치를 진행할 경우 예전 버전의 MariaDB 버전이 설치됩니다.(CentOS 7에서 공식적으로 안정 지원되는 MariaDB 버전은 최대가 10.x 대입니다.)

먼저 저장소를 생성합니다.

vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.11/rhel/$releasever/$basearch
baseurl = https://mirrors.xtom.jp/mariadb/yum/10.11/rhel/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.xtom.jp/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

yum 캐시 초기화 및 재설정을 합니다.

yum clean all
yum makecache

활성화 된 저장소를 확인합니다.

yum info mariadb
yum list available | grep -i mariadb
CentOS 7 yum.repo에서 현재 설정되어 설치될 MariaDB-Server 조회_

yum install maradb 를 입력하면 구 버전의 ‘mariadb-server’, ‘mariadb-client’가 설치되니 아래와 같이 명령어를 입력합니다.

yum install -y mariadb-server mariadb-client

설치된 버전을 확인합니다.

mariadb -V
mariadb  Ver 15.1 Distrib 10.11.9-MariaDB, for Linux (x86_64) using readline 5.1

mariaDB 시작 및 활성화를 진행합니다.

systemctl start mariadb
systemctl enable mariadb

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

Similar Posts

  • 리눅스 파티션 설정 방법: gdisk 명령어

    리눅스 파티션 설정(생성과 수정, 삭제)을 진행할 때 fdisk 명령어 또는 gdisk 명령어를 사용합니다. gdisk를 이용한 파티션 정보 편집에 대해 다뤄 보겠습니다. 마운트 하기 전 파티션의 설정은 다음과 같은 순서로 진행됩니다. 저장 후 종료 전까지 파티션 작업 내용은 디스크에 반영되지 않습니다. ✅ gdisk 명령어로 리눅스 파티션 설정하기 gdisk는 리눅스 시스템에서 파티션 관리에 사용되는 fdisk와…

  • FTP 평가: vsftpd vs proftpd 차이점

    FTP는 파일을 광범위하게 전송하는데 사용되는 표준 프로토콜입니다. vsftpd 및 proftpd는 FTP 프로그램은 원격 서버에 저장된 파일을 엑세스하고 전송할 수 있도록 합니다. 서버를 사용하는 방법에 따라 ‘vsftpd vs proftpd’ 둘 중에 어떤 것이 더 적합할지 알아 보겠습니다. Vsftpd 개요 Vsftpd(Very Secure FTP Daemon)는 빠른 파일 전송 방법을 제공하기 위해 개발된 GPL 라이센스에 속하는 서버…

  • 리눅스 tree 명령어

    tree 명령어는 디렉토리 안의 파일과 디렉토리를 나무 형태로 출력하는 명령어입니다. 디렉토리 구성을 파악하는데 유용하며, 하위 디렉토리와 파일이 어떤 구조로 정리되어 있는지 한눈에 확인 가능합니다. 문서화 및 시스템 분석 등에 활용됩니다. ✅ tree 명령어 기본 사용 방법 ✅ tree 옵션 ✅ 사용 예시 🔲 전체 경로 포함하여 출력: -f 기본 대상 폴더의 기본 파일만…

  • 리눅스 killall 명령어: 설치, 사용 방법과 옵션

    리눅스 killall 명령어는 특정 프로세스를 한번에 종료 시키는 명령어입니다. kill과 killall은 단순 종료가 아닌 프로세스에 지정한 시그널(Signal)을 보내는 명령어로 시그널에서 액션이 종료일 때 프로세스가 종료됩니다. ✅ 리눅스 killall 명령어 설치 대부분의 유닉스 시스템에서는 killall 명령어가 설치되어 있지만 설치되어 있지 않은 경우 psmisc 패키지를 설치해서 사용할 수 있습니다. ✅ killall 명령어 사용 방법 보통…

  • [Linux] 쉘(Shell)과 커널&쉘 스크립트 및 프롬프트

    리눅스에 대해 공부하면서 터미널 창에서 명령어를 입력해서 관리를 하지만 시스템 자체에 대한 공부가 리눅스 서버를 운영하는데 많은 도움이 되기 때문에 기초와 개념에 대해 알아야 할 필요성을 가지게 되었습니다. 리눅스 쉘(Shell)과 쉘 스크립트(Shell Script) 그리고 프롬프트(Prompt)의 기본 개념에 대해 알아 보겠습니다. ✅ 쉘(Shell)이란? Shell은 껍데기, 주변이라는 뜻을 가지고 있으며, 키보드로 입력한 리눅스 명령어를 운영…

  • cp 명령어 옵션 및 실행 시 일괄 덮어쓰기 설정 | yes, \(역슬래쉬) 2가지 설정

    cp 명령어는 Copy의 약자로 파일 및 디렉토리를 복사합니다. 기본 사용법은 간단하게 복사할 대상과 새로운 이름 등을 설정하여 사용할 수 있습니다. cp 명령어를 실행할 때 같은 이름의 대상 파일이 있을 때는 사용자에게 묻지 않고 덮어쓰기가 되는데, 이를 방지하기 위해 alias “cp=’cp -i”로 설정되어 있습니다. ✅ 기본 사용 방법 🔲 파일 및 디렉토리 ◻️ 파일…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 6   +   5   =