웹사이트 검색

CentOS 6에 Linux, nginx, MySQL, PHP(LEMP) 스택을 설치하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 CentOS 버전에 대해 설명합니다. 현재 CentOS 6을 실행하는 서버를 운영 중인 경우 지원되는 CentOS 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

이유:

대신 참조:

다음 DigitalOcean 튜토리얼은 CentOS 7 서버에 LEMP 스택을 설치하는 방법을 설명하므로 흥미로울 수 있습니다.

  • Linux, Nginx, MySQL, PHP(LEMP) 스택을 CentOS 7에 설치하는 방법

렘프 소개

LEMP 스택은 웹 서버를 시작하고 실행하기 위한 오픈 소스 소프트웨어 그룹입니다. 약어는 Linux, nginx(엔진 x로 발음), MySQL 및 PHP를 나타냅니다. 서버가 이미 CentOS를 실행 중이므로 Linux 부분이 처리됩니다. 나머지 설치 방법은 다음과 같습니다.

1단계 - 필수 리포지토리 설치

Yum으로 필요한 모든 소프트웨어를 설치할 것입니다. 그러나 nginx는 CentOS에서 바로 사용할 수 없기 때문에 epel 저장소를 설치해야 합니다.

sudo yum install epel-release

2단계 - MySQL 설치

다음 단계는 MySQL 및 종속성부터 시작하여 가상 사설 서버에 서버 소프트웨어 설치를 시작하는 것입니다.

 sudo yum install mysql-server

다운로드가 완료되면 MySQL을 다시 시작합니다.

sudo /etc/init.d/mysqld restart

다음 명령을 사용하여 MySQL의 일부 구성을 수행할 수 있습니다.

sudo /usr/bin/mysql_secure_installation

프롬프트에서 현재 루트 비밀번호를 묻습니다.

방금 MySQL을 설치했으므로 없을 가능성이 높으므로 Enter 키를 눌러 비워 둡니다.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

그런 다음 프롬프트에서 루트 암호를 설정할 것인지 묻습니다. 계속해서 Y를 선택하고 지침을 따르십시오.

CentOS는 MySQL 설정 프로세스를 자동화하여 일련의 예 또는 아니오 질문을 합니다.

모든 옵션에 예라고 말하는 것이 가장 쉽습니다. 마지막에 MySQL은 변경 사항을 다시 로드하고 구현합니다.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

3단계 - nginx 설치

MySQL과 마찬가지로 yum을 사용하여 가상 사설 서버에 nginx를 설치합니다.

sudo yum install nginx

nginx는 자체적으로 시작되지 않습니다. nginx를 실행하려면 다음을 입력하십시오.

sudo /etc/init.d/nginx start

브라우저에서 IP 주소로 이동하여 가상 사설 서버에 nginx가 설치되었는지 확인할 수 있습니다.

다음 명령을 실행하여 서버의 IP 주소를 표시할 수 있습니다.

ifconfig eth0 | grep inet | awk '{ print $2 }'

4단계 - PHP 설치

php-fpm 패키지는 현재 비활성화된 REMI 저장소 내에 있습니다. 가장 먼저 해야 할 일은 REMI 저장소를 활성화하고 php 및 php-fpm을 설치하는 것입니다.

sudo yum install php-fpm php-mysql

5단계 - PHP 구성

우리는 php 구성에서 한 가지 작은 변화를 만들어야 합니다. php.ini를 엽니다.

 sudo vi /etc/php.ini

cgi.fix_pathinfo=1 줄을 찾아 1을 0으로 변경합니다.

cgi.fix_pathinfo=0

이 숫자가 1로 유지되면 php 인터프리터는 요청된 파일에 최대한 가까운 파일을 처리하기 위해 최선을 다할 것입니다. 이것은 가능한 보안 위험입니다. 반대로 이 숫자를 0으로 설정하면 인터프리터는 정확한 파일 경로만 처리하므로 훨씬 안전한 대안이 됩니다. 저장 및 종료.

6단계 - nginx 구성

기본 nginx 구성 파일을 엽니다.

sudo vi /etc/nginx/nginx.conf

작업자 프로세스 수를 4로 올린 다음 해당 파일을 저장하고 종료합니다.

이제 nginx 가상 호스트를 구성해야 합니다.

기본 nginx 파일을 더 간결하게 만들기 위해 가상 호스트 세부 정보는 다른 위치에 있습니다.

sudo vi /etc/nginx/conf.d/default.conf

구성에는 아래 변경 사항이 포함되어야 합니다(변경 세부 정보는 구성 정보 아래에 있음).

#
# The default server
#
server {
    listen       80;
    server_name example.com;

   
    location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

변경 내용은 다음과 같습니다.

  • 인덱스 라인 내에 index.php를 추가하세요.
  • server_name을 도메인 이름 또는 IP 주소로 변경(구성에서 example.com 대체)
  • 루트를 /usr/share/nginx/html로 변경합니다.
  • "location ~ \\.php${"로 시작하는 섹션의 주석을 제거합니다.
  • 실제 문서 루트인 /usr/share/nginx/html에 액세스하도록 루트를 변경합니다.
  • php 인터프리터가 문서 루트 홈에 저장한 PHP 스크립트를 찾을 수 있도록 fastcgi_param 줄을 변경합니다.

저장 및 종료

php-fpm 구성을 엽니다.

sudo vi /etc/php-fpm.d/www.conf

사용자 및 그룹의 Apache를 nginx로 바꿉니다.

[...]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;	will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
[...]

php-fpm을 다시 시작하여 완료하십시오.

sudo service php-fpm restart

7단계 - 결과: PHP 정보 페이지 만들기

LEMP가 설치되어 있지만 빠른 php 정보 페이지를 생성하여 온라인에서 구성 요소를 살펴보고 볼 수 있습니다.

이를 설정하려면 먼저 새 파일을 만듭니다.

sudo vi /usr/share/nginx/html/info.php

다음 줄을 추가합니다.

<?php
phpinfo();
?>

그런 다음 저장하고 종료하십시오.

모든 변경 사항이 적용되도록 nginx를 다시 시작합니다.

sudo service nginx restart

PHP 정보 페이지를 방문하여 완료하십시오(예제 IP 주소를 올바른 주소로 바꾸십시오): http://12.34.56.789/info.php

이것과 비슷하게 보일 것입니다.

8단계 - 자동 시작 설정

거의 끝났습니다. 마지막 단계는 새로 설치된 모든 프로그램이 VPS가 부팅될 때 자동으로 시작되도록 설정하는 것입니다.

sudo chkconfig --levels 235 mysqld on
sudo chkconfig --levels 235 nginx on
sudo chkconfig --levels 235 php-fpm on