웹사이트 검색

CentOS 7에서 Nginx와 함께 Pimcore를 설치하는 방법


이 페이지에서

  1. 1단계 - Nginx 설치
  2. 2단계 - PHP 설치
  3. 3단계 - MariaDB 설치
  4. 4단계 - 추가 서버 소프트웨어 설치\n
  5. 5단계 - Pimcore 설치 및 구성
  6. 6단계 - 권한 및 방화벽 구성\n
  7. 결론

Pimcore는 무료 오픈 소스 기업 콘텐츠 관리 시스템을 제공합니다. PHP로 작성되었으며 MySQL을 사용하여 데이터베이스를 저장합니다. Pimcore CMS는 완전히 유연하고 편집 가능하며 원하는 방식으로 사이트를 개인화할 수 있습니다. 이 모든 것 외에도 엔터프라이즈급 웹 사이트의 수요를 충족할 수 있는 많은 엔터프라이즈급 기능이 있습니다.

이 튜토리얼에서는 CentOS 7 서버에 Pimcore CMS를 설치합니다.

전제 조건

  • 최소 CentOS 7 서버
  • 루트 권한\n

1단계 - Nginx 설치

기존 패키지와 리포지토리가 업데이트되도록 패키지를 설치하기 전에 서버를 업데이트하는 것이 좋습니다.

yum -y install epel-release
yum -y update

시스템이 업데이트되면 Nginx 웹 서버 설치를 진행할 수 있습니다.

yum -y install nginx

이제 Nginx 웹 서버를 시작하고 다음 명령을 사용하여 부팅 시 시작되도록 활성화합니다.

systemctl start nginx
systemctl enable nginx

2단계 - PHP 설치

Pimcore는 5.6보다 큰 모든 버전의 PHP를 지원합니다. 그러나이 자습서에서는 PHP 7.1을 설치합니다. 최신 버전의 PHP를 설치하면 애플리케이션의 최대 보안 및 성능이 보장됩니다.

CentOS의 기본 YUM 리포지토리에는 PHP 7.1이 포함되어 있지 않으므로 시스템에 Webtatic 리포지토리를 추가해야 합니다.

명령을 입력하여 Webtatic 리포지토리를 설치합니다.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y update

필요한 모든 종속성과 함께 PHP 7.1을 설치하려면 다음 명령을 입력하십시오.

yum -y install php71w php71w-mysqli php71w-fpm php71w-gd php71w-cli php71w-iconv php71w-dom php71w-simplexml php71w-exif php71w-fileinfo php71w-mbstring php71w-zlib php71w-zip php71w-bz2 php71w-openssl php71w-opcache php71w-curl php71w-pecl-redis ImageMagick

PHP가 성공적으로 설치되었는지 확인하려면 다음을 실행할 수 있습니다.

php -v

이와 유사한 출력이 표시되어야 합니다.

[ ~]# php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 07:28:42) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.6, Copyright (c) 1999-2017, by Zend Technologies

이제 PHP에서 몇 가지 구성을 구성해야 합니다. 선호하는 텍스트 편집기를 사용하여 PHP 구성 파일인 php.ini를 엽니다.

nano /etc/php.ini

다음 줄을 찾아 주석 처리를 해제하고 지역에 따라 시간대를 설정합니다. 예를 들어:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Kolkata

또한 다음 줄을 검색합니다.

upload_max_filesize = 2M

값을 2M에서 100M으로 변경하고 다음 줄을 검색합니다.

post_max_size = 8M

값을 8M에서 100M로 변경합니다. 파일을 저장하고 편집기를 종료합니다.

이제 /etc/php-fpm.d/www.conf에 있는 PHP-FPM 구성 파일을 엽니다.

nano /etc/php-fpm.d/www.conf

다음 줄을 찾으십시오.

user = apache
group = apache

사용자 및 그룹 값을 apache에서 nginx로 변경합니다. 이제 다음을 찾으십시오.

;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660

위 줄의 주석을 제거하고 nobody를 nginx로 변경합니다.

그리고 마지막으로 다음을 찾습니다.

listen = 127.0.0.1:9000

위 줄을 주석 처리하고 그 아래에 다음 줄을 추가합니다.

listen = /var/run/php-fpm/php-fpm.sock

이제 PHP-FPM 서비스를 시작하고 다음을 사용하여 부팅 시 자동으로 시작되도록 설정합니다.

systemctl start php-fpm
systemctl enable php-fpm

3단계 - MariaDB 설치

MariaDB는 MySQL 데이터베이스의 포크입니다. 서버에 MariaDB를 설치하려면 다음을 실행하십시오.

yum -y install mariadb mariadb-server

다음 명령을 실행하여 MariaDB를 시작하고 부팅 시 시작되도록 활성화합니다.

systemctl start mariadb
systemctl enable mariadb

이제 다음 명령을 실행하여 MariaDB 설치를 보호하십시오.

mysql_secure_installation

위의 명령은 새로운 MariaDB 설치를 보호하기 위해 스크립트를 실행합니다. 스크립트는 기존 루트 사용자 암호를 묻습니다. 방금 MariaDB를 설치했으며 루트 암호가 설정되지 않았습니다. 계속 진행하려면 Enter 키를 누르십시오.

스크립트는 MariaDB 설치를 위한 루트 암호를 설정할지 묻고 y를 선택하고 설치를 위한 강력한 암호를 설정합니다. 대부분의 질문은 자명하며 모든 질문에 예 또는 y로 대답해야 합니다. 출력은 아래와 같이 표시됩니다.

데이터베이스를 생성하려면 먼저 MySQL 명령줄에 로그인해야 합니다. 동일하게 다음 명령을 실행하십시오.

mysql -u root -p

위의 명령은 루트 사용자의 MySQL 셸에 로그인하고 루트 사용자의 암호를 묻는 메시지를 표시합니다. 로그인하려면 암호를 입력하십시오. 이제 다음 쿼리를 실행하여 Pimcore 설치를 위한 새 데이터베이스를 만듭니다.

CREATE DATABASE pimcore_data CHARACTER SET UTF8;

위 쿼리는 pimcore_data라는 새 데이터베이스를 생성합니다. 쿼리는 항상 세미콜론으로 끝나므로 각 쿼리 끝에 세미콜론을 사용해야 합니다.

새 데이터베이스 사용자를 생성하려면 다음 쿼리를 실행합니다.

CREATE USER 'pimcore_user'@'localhost' IDENTIFIED BY 'StrongPassword';

이제 생성한 데이터베이스에 대한 모든 권한을 데이터베이스 사용자에게 제공하십시오. 다음 명령을 실행합니다.

GRANT ALL PRIVILEGES ON pimcore_data.* TO 'pimcore_user'@'localhost';

이제 다음 명령을 실행하여 데이터베이스 권한에 대한 변경 사항을 즉시 적용하십시오.

FLUSH PRIVILEGES;

다음 명령을 사용하여 MySQL 프롬프트를 종료합니다.

EXIT;

4단계 - 추가 서버 소프트웨어 설치

Pimcore는 Pimcore CMS를 사용하여 특정 작업을 수행하는 데 사용되는 추가 서버 패키지가 필요했습니다. 종속성 중 일부는 RPMFusion 리포지토리에서만 사용할 수 있습니다. 다음 명령을 사용하여 RPM Fusion 리포지토리를 설치합니다.

rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm

다음 명령을 실행하여 추가 서버 소프트웨어를 설치합니다.

yum -y install ffmpeg libreoffice libreoffice-math xorg-x11-fonts-75dpi poppler-utils inkscape libXrender ghostscript fontconfig wkhtmltopdf

위의 명령은 FFMPEG, LibreOffice, pdftotext, Inkscape 및 Wkhtmltoimage/Wkhtmltopdf를 설치합니다.

5단계 - Pimcore 설치 및 구성

모든 종속성이 준비되었으므로 이제 Pimcore 웹 사이트에서 설치 패키지를 다운로드할 수 있습니다.

cd /var/www

Pimcore는 세 가지 유형의 설치 아카이브를 제공합니다. 초보자에게 적합한 데모 데이터와 함께 Pimcore를 설치하려면 다음 링크를 사용하여 Pimcore를 다운로드할 수 있습니다.

wget https://www.pimcore.org/download/pimcore-data.zip

Pimcore 핵심 패키지만 설치하려는 경우 다음 링크를 사용하여 다운로드할 수 있습니다.

wget https://www.pimcore.org/download/pimcore-latest.zip

세 번째 옵션은 개발 목적으로만 사용되는 nightly build를 설치하는 것입니다. 위의 명령은 항상 최신 버전의 Pimcore를 다운로드합니다. 다음 명령을 사용하여 아카이브를 추출하십시오.

unzip pimcore*.zip -d pimcore

unzip이 설치되어 있지 않으면 yum -y install unzip을 실행할 수 있습니다.

6단계 - 권한 및 방화벽 구성

이제 다음 명령을 사용하여 웹 서버 사용자에게 애플리케이션의 소유권을 제공해야 합니다.

chown -R nginx:nginx /var/www/pimcore

방화벽을 실행 중인 경우 방화벽을 통해 포트 80에서 HTTP 트래픽을 허용해야 할 수도 있습니다. 동일하게 다음 명령을 실행하십시오.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

서버를 다시 시작하지 않고 SELinux를 일시적으로 비활성화하려면 다음 명령을 실행합니다.

setenforce 0

SELinux를 완전히 비활성화하려면 /etc/selinux/config 파일을 편집해야 합니다.

nano /etc/selinux/config

다음 줄을 찾으십시오.

SELINUX=enforcing

다음으로 변경:

SELINUX=disabled

이제 Pimcore 애플리케이션을 위한 가상 호스트 또는 서버 블록을 생성합니다. 동일하게 다음 명령을 실행하십시오.

nano /etc/nginx/conf.d/cms.yourdomain.com.conf

다음 줄을 파일에 붙여넣습니다.

server {
    root /var/www/pimcore;
    index index.php;
    server_name cms.yourdomain.com;
    listen 80;
    access_log  /var/www/pimcore/website/var/log/nginx_access.log;
    error_log   /var/www/pimcore/website/var/log/nginx_error.log error;
 
    set $getassets "";
    if ($uri ~* ^/website/var/assets)   { set $getassets "${getassets}A"; }
    if ($request_method = GET)      { set $getassets "${getassets}B"; }
    if ($getassets = "AB") {
        rewrite ^ $uri$args last;
    }
 
  location ~* ^(/plugins/(?!.*/static).*|^/pimcore/(?!(static|modules/3rdparty)).*|/website/var/(?!tmp|assets|areas)|/modules/(?!.*/static).*|^(vendor|tests|node_modules|phing)/.*|^(bower|package|composer|gulpfile)\.) {
        return 403;
    }
    
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        index index.php;
    }
 
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_read_timeout 60;
    }

    location ~* \.(jpe?g|gif|png|bmp|ico|css|js|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
        access_log off;
        log_not_found off;
        try_files $uri $uri/ /website/var/assets$uri /index.php$is_args$args;
        expires 1w;
    }
    
  
    rewrite ^\/cache-buster-\d+(.*) $1 break;
    
    location /fpm-ping {
        access_log off;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    }

    location /fpm-status {
        allow 127.0.0.1;
        deny all;
        access_log off;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    }
    location /nginx-status {
        allow 127.0.0.1;
        deny all;
        access_log off;
        stub_status;
    }
}

cms.yourdomain.com을 응용 프로그램에 액세스하는 데 사용할 도메인 또는 하위 도메인으로 바꿉니다. 파일을 저장하고 편집기를 종료합니다. 다음 명령을 실행하여 Nginx 서버를 다시 시작하십시오.

systemctl restart nginx

이제 웹 브라우저를 사용하여 설치를 완료하고 다음 링크로 이동합니다.

http://cms.yourdomain.com

다음 페이지에서 환영합니다.

데이터베이스 어댑터로 mysqli를 선택하고 데이터베이스 및 새 관리 사용자의 세부 정보를 제공합니다. 지금 설치를 클릭하십시오! 완료되면 버튼을 누릅니다. 설치를 완료하는 데 몇 초밖에 걸리지 않습니다.

결론

이제 Pimcore 설치가 완료되었습니다. Pimcore를 사용하여 개인용 또는 상업용으로 아름다운 웹사이트를 쉽게 만들 수 있습니다.