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

  • 리눅스 chage 명령어

    리눅스 chage 명령어는 change age의 줄임 말로 사용자 계정의 만료 및 비밀번호 만료 설정을 관리 할 때 사용합니다. 주요 기능과 목적은 비밀번호 만료일 설정, 비밀번호 최소 사용 기간 설정, 계정의 비활성화 날짜 설정 등이 있습니다. ✅ chage 명령어 옵션 ✅ chage 명령어 사용 방법 ✅ chage 명령어 사용 예시 계정 만료, 비밀번호 만료…

  • 리눅스 touch 명령어

    touch 명령어는 파일의 날짜 시간 정보를 변경하는 명령어입니다. 아무 옵션 없이 사용할 경우 파일의 최근 사용 시간, 변경 시간이 서버의 현재 시간으로 변경됩니다. 파일이 없는 파일명을 입력할 경우 새로운 크기가 0인 빈 파일이 생성됩니다. ✅ touch 명령어 기본 사용 방법 ✅ touch 명령어 명령어 옵션 ✅ 사용 예시 최근 사용 시간(Access), 변경 시간(Modify)이…

  • 리눅스 cd 명령어

    cd 명령어는 “Change Directory”의 약자로, 현재 작업 디렉토리(현재 위치)를 다른 디렉토리로 이동할 때 사용하는 명령어입니다. ✅ cd 명령어 기본 사용 방법 ✅ 사용 예시 cd 명령은 절대 경로(/부터 시작)를 기입해서 이동하는 방식과 상대 경로(. 및 ..)를 이용해서 이동하는 방식으로 나뉩니다.

  • bash: 셸 따옴표 및 셸 쌍따옴표

    bash 및 셸 프로그램에서 명령어를 치환하는데 ‘$’ 기호와 소괄호'()’를 사용하는 대신 따옴표 기호도 사용합니다. 치환은 수식의 어떤 부분에 그와 대등한 무언가로 바꿔 넣는 행위입니다. ‘셸 따옴표’와 ‘셸 쌍따옴표’의 기본 공통 사항은 확장을 제어하는데 활용된다는 것입니다. 여기에서 차이점은 셸 따옴표는 모든 확장을 제어하지만 셸 쌍따옴표는 3개의 기호를 제외하게 됩니다. 셸 쌍따옴표 제외 기호: $…

  • [Linux] Shell 확장 6가지와 Shell 인용 3가지

    echo 명령어를 사용해서 Shell 확장(Expansion)에 대해 알아 보겠습니다. 1. Shell 확장 Shell 확장(Expansion)이란 셸에서 프로그램을 실행하기 직전 사용자가 입력한 인자를 정해진 의미에 맞게 해석해서 입력 or 출력으로 전환하는 것을 의미합니다. 프로그램은 echo를 포함한 명령어와 쉘에서 실행하는 모든 기능과 명령어들을 의미합니다. echo 명령어로 인수(or 인자: Argument)가 표시됩니다. 1.1 경로명 확장(Pathname Expansion) 와일드카드가 작동하는 메커니즘을…

  • 리눅스 백그라운드(Back Ground)&포그라운드(Fore Ground): 프로세스 제어하기

    리눅스의 프로세스는 백그라운드(Back Ground)와 포그라운드(Fore Ground) 두 가지의 모드로 작동됩니다. 리눅스 백그라운드 작업을 하는 이유는 일반적인 쉘 명령어를 실행했을 때 프로세스가 종료될 때까지 기다리면서 다른 작업을 하지 못하는 경우가 있기 때문입니다. ✅ 리눅스 포그라운드(Fore Ground)란? 터미널에 직접 연결되어 터미널과 입출력을 진행하는 프로세스를 뜻 합니다. 리눅스 단축키 설명 Ctrl+D 포그라운드 프로세스 정상 종료 Ctrl+C…

답글 남기기

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

Prove your humanity: 1   +   1   =