웹사이트 검색

OpenSUSE에 LEMP - Nginx, PHP, MariaDB 및 PhpMyAdmin 설치


LEMP 또는 Linux, Engine-x, MySQLPHP 스택은 소프트웨어입니다. Nginx HTTP 서버 및 MySQL/MariaDB 데이터베이스 관리 시스템으로 구동되는 PHP 기반 웹 애플리케이션을 실행하기 위해 Linux 운영 체제에 설치된 오픈 소스 소프트웨어로 구성된 번들입니다.

추가 읽기: OpenSUSE에 LAMP – Apache, PHP, MariaDB 및 PhpMyAdmin 설치

이 튜토리얼은 Nginx, MariaDB, PHP, 와 함께 LEMP 스택을 설치하는 방법을 안내합니다. OpenSuse 서버/데스크톱 버전의 PHP-FPMPhpMyAdmin.

Nginx HTTP 서버 설치

Nginx는 더 높은 로드의 HTTP 요청을 처리할 수 있는 빠르고 안정적인 HTTP 및 프록시 서버입니다. 요청을 처리하기 위해 비동기식 이벤트 기반 접근 방식을 사용하며, 모듈식 이벤트 기반 아키텍처는 높은 부하에서 보다 예측 가능한 성능을 제공할 수 있습니다.

OpenSuseNginx를 설치하려면 다음 명령을 실행하세요.

sudo zypper install nginx

Nginx가 설치되면 지금 서비스를 시작한 다음 부팅 시 자동 시작되도록 활성화하고 다음 명령을 실행하여 Nginx의 상태를 확인할 수 있습니다.

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

또한 읽어 보세요: 모든 Linux 사용자가 알아야 할 가장 많이 사용되는 Nginx 명령 10가지

이 시점에서 Nginx 웹 서버가 실행 중이어야 하며 표시된 대로 netstat 명령을 사용하여 상태를 확인할 수도 있습니다.

sudo netstat -tlpn | grep nginx

이제 Nginx 설치가 제대로 작동하는지 테스트해야 합니다. 다른 Linux 배포판과 달리 openSUSE에서 Nginx에는 웹 루트 폴더에 표준 index.html 문서가 없습니다. 표시된 대로 루트 웹 디렉터리 "/srv/www/htdocs" 아래에 새 index.html 파일을 만들어야 합니다.

echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

방화벽이 설치되어 있는 경우 방화벽에서 웹 트래픽을 허용하려면 포트 80443을 열어야 합니다.

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

다음으로, 웹 브라우저를 열고 http://localhost 주소로 이동하여 Nginx 페이지를 확인하세요.

MariaDB 데이터베이스 서버 설치

MariaDBMySQL 관계형 데이터베이스 관리 시스템의 무료 오픈 소스 포크입니다. 이는 MySQL의 원래 개발자에 의해 개발되었으며 오픈 소스로 유지될 예정입니다. MariaDB는 빠르고 확장 가능하며 강력하며 풍부한 스토리지 엔진, 플러그인 및 기타 도구로 구성된 생태계를 갖추고 있어 다양한 사용 사례에 매우 다재다능하게 사용할 수 있습니다.

OpenSuseMariaDB를 설치하려면 다음 명령을 실행하세요.

sudo zypper install mariadb mariadb-client 

다음으로 지금은 MariaDB 서비스를 시작한 다음 부팅 시 자동 시작되도록 활성화하고 상태를 확인합니다.

sudo systemctl start mariadb 
sudo systemctl enable mariadb 
sudo systemctl status mariadb 

이 섹션의 다음 중요한 단계는 MariaDB 서버 설치를 보호하는 것입니다. 따라서 표시된 대로 MariaDB 패키지와 함께 제공되는 보안 스크립트를 실행하십시오.

참고: 프로덕션에 있는 모든 MariaDB 서버에 대해 MariaDB 보안 스크립트 및 모든 부분을 실행하는 것이 좋습니다.

sudo mysql_secure_installation 

스크립트를 실행한 후 각 단계의 설명을 주의 깊게 읽어보세요. 루트 사용자 비밀번호를 설정하고, 익명 사용자를 제거하고, 원격 루트 액세스를 비활성화하고, 테스트 데이터베이스와 이에 대한 액세스를 제거한 다음 마지막으로 권한 테이블을 다시 로드해야 합니다.

PHP 및 PHP-FPM 설치 및 구성

PHP-FPM(PHP FastCGI Process Manager의 약어)은 몇 가지 추가 기능을 갖춘 PHP용 대체 FastCGI 데몬입니다. 높은 하중을 처리하도록 설계되었습니다. 이를 달성하기 위해 풀(PHP 요청에 응답할 수 있는 작업자)을 유지관리합니다. 중요한 것은 다중 사용자 PHP 환경의 경우 SUPHP와 같은 기존 CGI 기반 방법보다 빠릅니다.

필요한 모듈과 함께 PHPPHP-FPM을 설치하려면 다음 명령을 실행하세요.

sudo zypper install php php-mysql php-fpm php-gd php-mbstring

PHP-FPM 서비스 시작을 진행하기 전에 설치 중에 제공된 기본 파일에서 필요한 구성 파일을 생성하고 서비스 작동 준비를 구성해야 합니다.

sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

그런 다음 편집을 위해 기본 php-fpm.conf 구성 파일을 엽니다.

sudo vim /etc/php7/fpm/php-fpm.conf 

표시된 대로 줄 번호 24에서 다음 줄의 주석 처리를 제거합니다.

error_log = log/php-fpm.log

파일을 저장하고 닫습니다.

다음으로 www.conf 구성 파일에 구성된 풀에 대한 올바른 설정을 정의해야 합니다.

sudo vim /etc/php7/fpm/php-fpm.d/www.conf

먼저 프로세스의 Unix 소유자 및 그룹 소유자를 Nginx 사용자 및 그룹으로 구성합니다. 사용자 및 그룹 매개변수 값을 nobody에서 nginx로 변경하면 됩니다.

user = nginx
group = nginx

이제 파일의 변경 사항을 저장하고 종료합니다.

또한 /etc/php/cli/php.ini 파일에서 PHP-FPM을 보호하는 중요한 구성이 하나 더 있습니다.

sudo vim /etc/php7/cli/php.ini

;cgi.fix_pathinfo=1 줄을 검색하여 다음으로 변경하세요.

cgi.fix_pathinfo=0

파일의 변경 사항을 저장하고 종료합니다.

그런 다음 지금은 PHP-FPM 서비스를 시작한 다음 부팅 시 자동 시작되도록 활성화하고 상태를 확인합니다.

sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm

PHP-FPM과 함께 작동하도록 Nginx 구성

이제 기본 Nginx 구성 파일에서 PHP-FPM과 함께 작동하도록 Nginx를 구성해야 합니다.

sudo vim /etc/nginx/nginx.conf

그런 다음 다음 섹션을 찾아 예상 인덱스 파일 목록에 index.php를 추가하세요.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

또한 다음 섹션(주석 처리해야 함)을 찾아 주석 처리를 제거하십시오. 이 섹션은 127.0.0.1:9000을 수신하는 FastCGI 서버에 PHP 스크립트를 전달하는 데 사용됩니다.

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

파일의 변경 사항을 저장하고 종료합니다.

Nginx 및 PHP-FPM 테스트

다음 단계는 다음과 같이 DocumentRoot 디렉토리에 새 PHP 테스트 파일을 생성하여 PHP-FPM과 함께 Nginx가 제대로 작동하는지 테스트하는 것입니다. 표시됩니다.

echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

이제 서비스를 다시 시작하기 전에 다음과 같이 Nginx 구성이 올바른지 확인해야 합니다.

sudo nginx -t

Nginx 구성 구문에 문제가 없으면 NginxPHP-FPM 서비스를 다시 시작하여 최근 변경 사항을 적용하세요.

sudo systemctl restart nginx php-fpm

이제 웹 브라우저를 열고 http://localhost/info.php 주소로 이동하여 다음 스크린샷과 같이 PHP 구성을 확인하세요.

PhpMyAdmin 설치 및 구성

phpMyAdmin은 웹을 통해 MySQL 서버를 관리하기 위해 구축된 PHP로 작성된 간단하고 사용하기 쉬우며 널리 사용되는 무료 도구입니다. MySQLMariaDB에 대한 광범위한 작업을 지원합니다.

OpenSusephpMyAdmin을 설치하려면 다음 명령을 실행하세요.

sudo zypper install phpMyAdmin

설치가 완료되면 표시된 대로 phpMyAdmin에 액세스하기 위한 새 가상 호스트 구성 파일을 생성합니다.

sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

다음 구성을 파일에 추가하십시오.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

   location / { 
       try_files $uri /index.php?$args; 
   } 

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

변경 사항을 저장하고 파일을 닫습니다. 그런 다음 다음 명령을 사용하여 Nginx 서비스를 다시 시작하세요.

sudo systemctl restart nginx

이제 웹 브라우저로 이동하여 http://localhost/phpMyAdmin 주소를 입력하세요. phpMyAdmin 로그인 페이지는 다음 스크린샷과 같이 표시되어야 합니다. 데이터베이스 루트 사용자 로그인 자격 증명을 입력하고 이동을 클릭하세요.

그게 다야! 이 튜토리얼에서는 Nginx, MariaDB, PHP, LEMP 스택을 설치하는 방법을 설명했습니다. OpenSuse 서버/데스크톱 버전의 Strong>PHP-FPM 및 PhpMyAdmin. 설정 중에 문제가 발생하는 경우 아래 의견 양식을 통해 질문하세요.