OpenSUSE Leap 42.1에 Nginx, PHP 및 MySQL(LEMP 스택)을 설치하는 방법
이 페이지에서
- 1단계 - SuSEfirewall2 설치 및 구성
- 2단계 - Nginx 설치 및 구성
- 3단계 - MariaDB 설치 및 구성
- 4단계 - PHP-FPM 설치 및 구성
- 5단계 - Nginx 가상 호스트 구성\n
- 6단계 - phpMyAdmin 설치 및 구성
- 참조
LEMP 또는 Linux, Engine-x, MySQL 및 PHP는 PHP 기반 웹 응용 프로그램을 빠른 Nginx 웹 서버에서 실행하기 위해 Linux 운영 체제에 설치된 소프트웨어 모음입니다. LEMP 스택은 웹 애플리케이션 호스팅을 위한 빠르고 안정적인 기반을 제공합니다. LEMP는 완전한 문서 세트가 있는 오픈 소스 소프트웨어 모음이므로 다양한 응용 프로그램과 응용 프로그램이 함께 적용되는 방식에 대해 쉽게 배울 수 있습니다.
이 튜토리얼에서는 openSUSE Leap 42.1에 Nginx, MariaDB 및 PHP-FPM을 설치하는 방법을 보여줍니다. 그런 다음 SuSEfirewall2로 OpenSUSE 방화벽을 구성하여 Nginx 웹 서버에 대한 액세스를 허용하고 Nginx 웹 서버에 새 가상 호스트 구성을 추가하는 방법을 보여 드리겠습니다.
- OpenSUSE 도약 42.1.
- 루트 권한.\n
- zypper 명령 이해.\n
1단계 - SuSEfirewall2 설치 및 구성
SuSEfirewall2는 "/etc/sysconfig/SuSEfirewall2" 구성 파일을 기반으로 iptables 규칙을 생성하는 스크립트입니다. 서버 포트에 대한 네트워크 공격을 방지하기 위해 설치 및 구성합니다.
zypper를 사용하여 SuSEfirewall2를 설치합니다.
zypper in SuSEfirewall2
설치가 완료되면 웹 응용 프로그램 및 SSH에 대한 일부 포트를 열어야 합니다. ssh 서비스용으로 포트 22를 열고 http 및 https용으로 포트 80 및 443을 엽니다. "/etc/sysconfig/" 디렉토리로 이동하여 "SuSEfirewall2" 파일을 편집합니다.
cd /etc/sysconfig/
vim SuSEfirewall2
253행에서 서비스의 포트 번호를 공백으로 구분하여 추가합니다.
FW_SERVICES_EXT_TCP="22 80 443"
파일을 저장하고 종료합니다.
SuSEfirewall2 및 SSH 서비스를 다시 시작한 다음 텔넷을 통해 서버에 연결하여 포트 구성을 테스트합니다.
SuSEfirewall2 및 SSH 서비스를 다시 시작합니다.
/sbin/rcSuSEfirewall2 restart
systemctl restart sshd
포트 22에서 telnet과의 ssh 연결 테스트:
telnet 192.168.1.101 22

2단계 - Nginx 설치 및 구성
Nginx 또는 엔진 x는 메모리 소비가 적은 고성능 HTTP 및 프록시 서버입니다. Netflix, Pinterest, CloudFlare, Github 등과 같은 대규모 웹 사이트에서 사용됩니다. Nginx는 구성 구문을 배우기 쉽고 캐싱 기능이 있는 상태 확인 및 역방향 프록시가 있는 로드 밸런서 역할도 할 수 있습니다.
이 단계에서는 nginx를 설치하고 부팅 시 시작하도록 추가합니다. "zypper in" 명령으로 설치하십시오:
zypper in nginx
nginx를 시작하고 부팅 시 시작되도록 활성화합니다.
systemctl start nginx
systemctl enable nginx
이제 Nginx가 시작되었지만 웹 브라우저를 통해 액세스하려고 하면 403 금지 오류가 발생합니다. 이 오류는 웹 루트 폴더에 표준 색인 문서가 없기 때문에 발생합니다. 이 문제를 해결하려면 루트 웹 디렉토리 "/srv/www/htdocs"에 새 인덱스 html을 만듭니다. 디렉터리로 이동하여 index.html 파일을 만듭니다.
cd /srv/www/htdocs/
echo "<h1>This is Nginx OpenSUSE Leap 42.1</h1>" > index.html
웹 브라우저를 열고 서버 IP를 입력하면 색인 페이지가 나타납니다.
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=http://192.168.1.101/

3단계 - MariaDB 설치 및 구성
MariaDB는 GNU GPL 라이선스에 따라 MySQL에서 분기된 오픈 소스 RDBMS(관계형 데이터베이스 관리 시스템)입니다. 이 자습서에서는 MariaDB를 설치하고 MariaDB 셸의 루트 암호를 구성합니다.
zypper 명령을 사용하여 MariaDB를 설치합니다.
zypper in mariadb mariadb-client
MariaDB/MySQL을 시작하고 아래 systemctl 명령을 사용하여 부팅 시작에 추가합니다.
systemctl start mysql
systemctl enable mysql
다음으로 mysqladmin 명령을 사용하여 MariaDBb/MySQL의 관리자 암호를 구성합니다. 이 목적으로 사용할 수 있는 또 다른 옵션은 "mysql_secure_installation"입니다. 이 단계에서는 mysqladmin을 사용합니다.
/usr/bin/mysqladmin -u root password 'aqwe123'
메모:
"aqwe123"은 MariaDB/MySQL의 새 암호입니다.
그런 다음 사용자 루트와 비밀번호 aqwe123으로 mysql 셸에 로그인합니다.
mysql -u root -p
TYPE PASSWORD 'aqwe123'

이제 MariaDB/MySQL이 설치되고 새 암호로 구성됩니다.
4단계 - PHP-FPM 설치 및 구성
PHP-FPM 또는 FastCGI Process Manager는 이전 PHP FastCGI의 대안으로 추가 기능과 속도 향상을 제공합니다. PHP-FPM은 PHP 프로그래밍 언어를 기반으로 하는 소규모 및 대규모 사이트에 적합합니다.
이 단계에서는 phpMyAdmin에 필요한 일부 추가 확장과 함께 php5-fpm을 설치합니다. php5-fom 및 zypper로 확장 프로그램을 설치합니다.
zypper in php5 php5-mysql php5-fpm php5-gd php5-mbstring
설치가 완료되면 php5-fpm 디렉토리로 이동하여 구성 파일을 복사합니다.
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
vim 명령으로 구성을 편집합니다.
vim php-fpm.conf
php-fpm 로그를 활성화하려면 32행의 주석을 제거하십시오. 기본 접두어는 /var이며 php5-fpm에 문제가 있는 경우 "/var/log/php-fpm.log" 로그 파일을 확인할 수 있습니다.
error_log = log/php-fpm.log
148행에서 nginx 프로세스의 소유자를 Nginx 사용자로 구성합니다. 사용자 및 프로세스 그룹을 nginx로 변경합니다.
user = nginx
group = nginx
159행: 포트가 아닌 소켓 파일에서 실행되도록 php-fpm을 구성합니다. 해당 줄을 다음과 같이 변경하십시오.
listen = /var/run/php-fpm.sock
그리고 170행에서 유닉스 소켓에 대한 권한을 모드 0660을 사용하여 nginx 사용자 및 그룹으로 변경합니다.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
파일을 저장하고 편집기를 종료합니다.
다음으로 PHP cli 디렉토리로 이동하여 vim으로 php.ini 파일을 편집합니다.
cd /etc/php5/cli/
vim php.ini
보안상의 이유로 cgi.fix_pathinfo 값을 0으로 변경하십시오. 178행:
cgi.fix_pathinfo=0
저장 및 종료.
php.ini를 conf.d 디렉토리에 복사합니다:
cp php.ini /etc/php5/conf.d/
이 단계에서 PHP-FPM 구성이 완료되었지만 여전히 Nginx를 구성해야 합니다. php-fpm과 함께 작동하도록 Nginx를 설정해야 합니다.
nginx 구성 디렉토리로 이동하고 cp 명령을 사용하여 구성 파일을 백업합니다.
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim으로 nginx.conf를 편집합니다.
vim nginx.conf
48행에 index.php를 추가합니다.
index index.php index.html index.htm;
68행에 새로운 php 구성 섹션을 추가합니다. 이것은 .php 파일 요청을 처리하기 위한 구성입니다.
location ~ \.php$ {
root /srv/www/htdocs;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
파일을 저장하고 종료합니다.
다음으로 nginx 구성 파일 구문을 테스트하여 오류가 없는지 확인합니다. 그런 다음 php-fpm 데몬을 시작하고 Nginx를 다시 시작합니다.
nginx -t
systemctl start php-fpm
systemctl restart nginx
php-fpm 및 nginx가 제대로 작동하는지 확인하기 위해 새 php 테스트 파일을 추가합니다. DocumentRoot 디렉토리로 이동하여 info.php라는 이름으로 phpinfo 파일을 만듭니다.
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
웹 브라우저를 열고 서버 ipaddress를 입력하십시오.
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=http://192.168.1.101/info.php

Nginx와 php-fpm이 현재 작동 중입니다.
5단계 - Nginx 가상 호스트 구성
이 단계에서는 웹 사이트에 대한 가상 호스트 구성을 추가하는 방법을 보여 드리겠습니다. 새 도메인 "www.example.com"을 구성하고 "/srv/www/example/"에 웹루트 디렉토리를 구성합니다. example 및 example.com을 자신의 도메인 이름으로 바꾸십시오.
GNginx nginx 디렉토리를 만들고 가상 호스트 구성을 위한 새 디렉토리를 만듭니다.
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
다음으로 도메인 이름 "example.com" 가상 호스트에 대한 새 파일 example.conf를 만듭니다.
vim example.conf
아래에 가상 호스트 구성을 붙여넣으십시오.
server {
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 80;
root /srv/www/example;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
파일을 저장하고 종료합니다.
이제 /srv/www/ 디렉토리에 "example.com" 사이트에 대한 디렉토리를 만들고 새 인덱스 파일을 만듭니다.
mkdir -p /srv/www/example/
cd /srv/www/example/
echo "<h1>This is www.example.com site.</h1>" > index.html
echo "<?php phpinfo(); ?>" > info.php
이제 웹 브라우저를 열고 도메인을 방문하십시오.
example.com
www 도메인으로 리디렉션되고 이제 php 파일에 액세스합니다.
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=http://www.example.com/info.php

6단계 - phpMyAdmin 설치 및 구성
PhpMyAdmin은 웹 브라우저에서 MySQL 또는 MariaDB 데이터베이스를 관리하는 PHP 기반 애플리케이션입니다. 이 단계에서는 phpMyAdmin이 php-fpm에서 실행되도록 구성한 다음 phpMyAdmin 로그인 페이지에 대한 액세스를 제한하여 PHPMyAdmin을 안전하게 만듭니다.
zypper 명령을 사용하여 phpMyAdmin을 설치합니다.
zypper in phpMyAdmin
이 명령은 암호 파일 생성에 필요한 apache2-utils를 포함하여 phpMyAdmin에 필요한 모든 패키지를 설치합니다.
이제 시스템에 phpMyAdmin이 설치되었습니다. 다음으로 htpasswd 명령을 사용하여 새 htpasswd 파일을 만듭니다.
비밀번호 파일 htpasswd 생성:
htpasswd -c /etc/nginx/htpasswd megumi
TYPE YOUR PASSWORD for user megumi
다음으로 phpmyadmin 디렉터리에 HTTP 기본 인증을 사용하도록 Nginx를 구성해야 합니다. auth_basic으로 phpMyAdmin 로그인 페이지에 대한 액세스를 제한하고 "htpasswd" 파일에 있는 사용자만 phpMyAdmin에 로그인할 수 있습니다.
Nginx 구성 디렉토리로 이동하여 nginx.conf 파일을 편집합니다.
cd /etc/nginx/
vim nginx.conf
줄 40(server_name) 아래에 새 줄을 추가하여 서버 섹션 내부에 웹 루트 디렉터리를 정의합니다.
server_name localhost;
root /srv/www/htdocs; #newline config
그런 다음 nginx에 대한 phpMyAdmin 구성을 60행에 추가합니다.
location ~ ^/phpMyAdmin/.*\.php$ {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
파일을 저장하고 편집기를 종료합니다.
nginx 구성을 테스트하고 nginx를 다시 시작합니다.
nginx -t
systemctl restart nginx
그런 다음 웹 브라우저를 열고 phpMyAdmin URL을 방문하면 로그인 페이지의 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다.
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=http://192.168.1.101/phpMyAdmin/

그런 다음 MySQL 사용자 이름과 비밀번호로 로그인합니다.

phpMyAdmin이 성공적으로 설치되었으며 htpasswd의 사용자만 로그인할 수 있습니다.
참조
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=https://www.ruby-forum.com/topic/4411851