CentOS 7에 Nginx 1.15, MariaDB 10, PHP 7 설치

이 기사에서는 LEMP 스택(Linux, Nginx, MariaDB, PHP) 및 PHP-FPMRHEL/CentOS 7/6Fedora 26-29 서버에 yumdnf 패키지 관리자를 사용하여 설치하는 방법을 설명합니다.

이 과정에서는 이러한 패키지의 최신 버전을 설치할 수 있도록 Epel, Remi, NginxMariaDB 저장소를 설치하고 활성화합니다.

Read Also: CentOS 7에 Apache, MySQL 8 또는 MariaDB 10 및 PHP 7 설치

단계 1: EPEL 및 Remi 저장소 설치

EPEL(Enterprise Linux용 추가 패키지)는 RHEL 기반 Linux 배포판을 위한 추가 소프트웨어 패키지를 제공하는 커뮤니티 기반 저장소입니다.

Remi는 Fedora 및 Enterprise Linux 배포판에 설치할 수 있는 최신 버전의 PHP 스택(전체 기능)을 찾을 수 있는 저장소입니다.

RHEL/CentOS 7에서

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
# subscription-manager repos --enable=rhel-7-server-optional-rpms

RHEL/CentOS 6에서

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
# subscription-manager repos --enable=rhel-6-server-optional-rpms

Fedora 24-29에서

# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

단계 2: Nginx 및 MariaDB 저장소 설치

Nginx 저장소는 RHELCentOS 배포판에서만 필요합니다. /etc/yum.repos.d/nginx.repo라는 파일을 만들고 다음 라인을 추가하십시오.

RHEL 7/6용:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

CentOS 7/6용:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

MariaDB 저장소를 활성화하려면 다음 내용으로 /etc/yum.repos.d/mariadb.repo라는 파일을 만드십시오.

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

단계 4: Ngnix 및 MariaDB 설치

Nginx (Engine X)는 오픈 소스이며 강력하고 가벼우며 고성능 웹 서버, 리버스 프록시 서버이자 HTTP, SMTP, POP3 및 IMAP 프로토콜용 메일 프록시 서버입니다. 자세한 내용은 http://wiki.nginx.org/Overview를 방문하십시오.

MariaDB는 잘 알려진 MySQL의 포크로, 세계에서 가장 인기 있는 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다. 이는 완전히 커뮤니티에 의해 개발되었으며 따라서 FOSS로 유지되고 GPL과 호환될 예정입니다.

NgnixMariaDB를 설치하려면 다음 명령을 실행하십시오.

----------- Installing on RHEL/CentOS 7/6 ----------- 
# yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
# dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

단계 3: Remi 저장소를 사용하여 PHP 설치

PHP (하이퍼텍스트 프리프로세서)는 웹 개발에 가장 적합한 무료이자 오픈 소스 서버 측 스크립팅 언어입니다. 이것은 웹 사이트를 위한 동적 웹 페이지를 생성하는 데 사용될 수 있으며, 주로 *nix 서버에서 찾을 수 있습니다. PHP의 장점 중 하나는 다양한 모듈을 사용하여 쉽게 확장할 수 있다는 것입니다.

PHP를 설치하려면 먼저 Remi 저장소를 활성화해야 합니다. 이를 위해 yum-utils를 설치하십시오. 이는 yum 저장소와 패키지를 관리하는 유용한 프로그램 모음입니다.

# yum install yum-utils

설치한 후, yum-utils에서 제공하는 yum-config-manager를 사용하여 다양한 PHP 버전을 설치하는 데 기본 저장소로 Remi 저장소를 활성화할 수 있습니다. 다음과 같이 표시됩니다.

예를 들어, PHP 7.x 버전을 설치하려면 다음 명령을 사용하십시오.

------------- On CentOS & RHEL ------------- 
# yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
# yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
# yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
# yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
# dnf --enablerepo=remi install php70      [Install PHP 7.0]
# dnf --enablerepo=remi install php71      [Install PHP 7.1]
# dnf --enablerepo=remi install php72      [Install PHP 7.2]
# dnf --enablerepo=remi install php73      [Install PHP 7.3]

다음으로, 다음과 같은 PHP 모듈을 모두 설치할 것입니다.

------ On RHEL/CentOS 7/6 ------
# yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
# dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

단계 6: Apache 서비스 중지 및 비활성화

기본적으로, ApacheNginx는 동일한 포트 (TCP 80)에서 수신 대기합니다. 따라서 서버에 Apache가 설치된 경우, Nginx를 사용하려면 Apache를 중지하고 비활성화/마스킹해야 합니다(서비스를 /dev/null에 연결하는 비활성화의 강화된 버전). 또는 더 이상 사용하지 않는 경우 제거할 수 있습니다.

# systemctl stop httpd 
# systemctl disable httpd 
or 
# systemctl mask httpd 

단계 7: Nginx, MariaDB 및 PHP-FPM 시작/중지

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
# systemctl enable nginx 
# systemctl enable mariadb 
# systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
# systemctl start nginx 
# systemctl start mariadb 
# systemctl start php-fpm 

단계 8: Nginx 및 PHP-FPM 구성

이제 웹 사이트(가상 호스트 또는 Nginx에서는 서버 블록이라고 함)의 디렉토리 구조를 만들어 보겠습니다. /srv/www/ 아래에. 이 예제에서는 www.tecmint.com을 사용할 것이지만, 원하는 경우 다른 도메인과 주 디렉토리를 선택해도 괜찮습니다.

# mkdir -p /srv/www/tecmint/public_html 
# mkdir /srv/www/tecmint/logs 
# chown -R nginx:nginx /srv/www/tecmint  

단계 9: Nginx 가상 호스트 디렉토리 구성

여러 사이트를 동일한 기계에서 실행할 수 있는 능력은 주요 웹 서버의 특징 중 하나입니다. 이제 서버 블록을 만들기 위해 /etc/nginx 아래에 서버 블록을 저장할 디렉토리를 만들어 보겠습니다(아파치에서는 가상 호스트로 알려져 있음).

# mkdir /etc/nginx/sites-available 
# mkdir /etc/nginx/sites-enabled 

다음 코드 라인은 /etc/nginx/nginx.conf에서 http 블록을 닫기 전에 삽입되어야 합니다. 이 코드 라인은 Nginx가 실행 중일 때 /etc/nginx/sites-enabled 디렉토리 내의 구성 파일이 고려될 수 있도록 보장합니다:

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 
Configuring Nginx VirtualHost

tecmint.com을 위한 서버 블록을 만들려면 다음 코드 라인을 /etc/nginx/sites-available/tecmint에 추가하십시오(이 파일은 원하는 텍스트 편집기를 시작하기 위해 전체 경로를 입력할 때 만들어집니다). 이것은 기본 가상 호스트 구성 파일입니다.

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

가상 호스트를 “활성화”하는 프로세스는 tecmint 가상 호스트의 정의에서 /etc/nginx/sites-enabled로 심볼릭 링크를 만드는 것으로 구성됩니다.

# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

우리가 한 변경 사항을 실제로 적용하려면 이제 Nginx를 다시 시작해야 합니다. 때로는 그 전에 구성 파일을 구문 오류를 확인하는 것이 유용할 수 있습니다:

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 
Restart Nginx and Verify Status

새로 생성한 가상 호스트에 액세스하려면 도메인 이름 해결의 기본 방법으로 다음 줄을 /etc/hosts에 추가해야 합니다.

192.168.0.18	www.tecmint.com tecmint.com 

단계 10: Nginx, MySQL, PHP 및 PHP-FPM 테스트

PHP를 테스트하는 전통적인 방법을 따라봅시다. test.php라는 파일을 /srv/www/tecmint/public_html/에 만들고 다음 코드를 추가하세요.

phpinfo() 함수는 현재 PHP 설치에 대한 많은 정보를 보여줍니다.

<?php 
	phpinfo(); 
?> 

이제 웹 브라우저를 http://tecmint/test.php로 이동하여 설치된 모듈 및 추가 소프트웨어의 존재 여부를 확인하세요.

축하합니다! 이제 LEMP 스택의 작동 설치가 완료되었습니다. 예상대로 작동하지 않는 경우 아래 양식을 사용하여 문의해 주세요. 질문과 제안을 환영합니다.

Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/