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

  • 리눅스 hosts.allow 및 hosts.deny 설정

    리눅스 서버에서 특정 IP만 허용 및 특정 IP에 대한 차단을 위해 리눅스 hosts.allow 및 hosts.deny 설정을 각각 진행할 수 있습니다. iptables 방화벽에서 특정 IP만 SSH 접속을 허용하는 방법을 사용할 수 있지만 1개 이상의 IP가 SSH에 접속해야 하는 경우 hosts.allow 설정을 진행할 수 있습니다. ✅ 리눅스 hosts.allow 설정 ✅ 리눅스 hosts.deny 설정 설정 후…

  • Linux snapd | Rocky Linux에서 snapd 설치

    스냅크래프트(Snapcraft) 또는 스냅(Snap)은 캐노니컬(Canonical)이 시작한 Ubuntu 스마트폰 운영 체제를 위한 소프트웨어 배포 및 패키지 도구로서 개발되었으며, 패키지 관리 시스템이다. 스냅(snap)이라고 불리는 패키지와 snapd를 사용하는 도구는 업스트림 소프트웨어 패키징을 간편화하여 다양한 리눅스 배포판에서 사용할 수 있도록 도와준다. Linux snapd은 앱 패키지로 데스크톱, 클라우드, IoT에서 사용 가능하며, 설치가 용이하고 안전하며 다양한 플랫폼에서 사용할 수 있으며…

  • WAS와 WEB 서버 차이

    웹서버는 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에 요청을 하면 요청을 받아 정적 콘텐츠를 제공하는 서버입니다. 정적 콘텐츠는 HTML, CSS, 이미지, 파일 등의 콘텐츠가 제공됩니다. WAS란 DB 조회 또는 다양한 로직의 처리가 요구되는 동적 콘텐츠를 제공하기 위해 만들어진 Application 서버입니다. 웹서버란 무엇인가? WAS(Web Application Server)란? ※서블릿(Servlet) 서블릿(Servlet)은 자바로 작성된 웹 애플리케이션의 구성 요소 중 하나입니다….

  • [우분투] AH00558: apache2: Could not reliably .. server’s fully qualified domain name , using 127.0.1.1. Set

    우분투 서버에서 APM까지 설치 후 서버에서 apache2ctl -t 무결성 및 apache2ctl graceful 명령어 입력 중 server’s fully qualified domain name 오류 메시지를 확인할 수 있습니다. ✅ qualified domain name 경고 메시지 오류가 아닌 경고 메시지로, etc/apache2/apache2.conf 파일에 SeverName에 도메인 주소 또는 다음과 같은 설정을 진행하여 경고 메시지가 뜨는 것을 제거할 수 있습니다. 여러…

  • [Linux] usermod 명령어

    usermod 명령어는 user modification(사용자 수정)의 약자로 이미 존재하는 사용자 계정의 속성을 변경할 때 사용됩니다. usermod는 사용자의 로그인 이름, UID (사용자 ID), 홈 디렉토리, 로그인 셸, 그룹 등의 속성을 변경할 수 있는 명령어입니다. ✅ usermod 명령어 기본 옵션 ✅ 주요 옵션 ✅ 사용 예시 🔲 사용자 홈 디렉토리 변경 사용자의 홈 디렉토리를 변경할 때 -m…

  • FTP 평가: vsftpd vs proftpd 차이점

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

답글 남기기

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

Prove your humanity: 4   +   1   =