CentOS 7에 Grav CMS를 설치하는 방법
이 페이지에서
- 요구 사항\n
- 전제 조건
- 초기 단계
- 1단계 - PHP 및 필요한 PHP 확장 설치\n
- 2단계 - acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)\n
- 3단계 - NGINX 설치 및 구성
- 4단계 - Grav CMS 설치
- 5단계 - Grav 설정 완료
- 링크
Grav는 빠르고 간단하며 유연한 파일 기반 CMS 플랫폼입니다. Grav는 강력한 패키지 관리 시스템과 함께 제공되어 플러그인과 테마의 간단한 설치 및 업그레이드는 물론 Grav 자체의 간단한 업데이트가 가능합니다.
Grav의 기본 아키텍처는 Grav가 사용하기 쉽고 확장하기 쉽도록 잘 정립된 동급 최고의 기술을 사용하도록 설계되었습니다. 이러한 핵심 기술 중 일부는 다음과 같습니다.
- Twig 템플릿: 사용자 인터페이스의 강력한 제어\n
- Markdown: 손쉬운 콘텐츠 생성
- YAML: 간단한 구성용\n
- Parsedown: 빠른 마크다운 및 마크다운 추가 지원
- Doctrine Cache: 성능 계층
- Pimple Dependency Injection Container: 확장성 및 유지보수성\n
- Symfony Event Dispatcher: 플러그인 이벤트 처리용\n
- Symfony Console: CLI 인터페이스용
- Gregwar 이미지 라이브러리: 동적 이미지 조작용
요구 사항
Grav는 의도적으로 요구 사항이 거의 없도록 설계되었습니다. Grav는 콘텐츠용 일반 텍스트 파일로 제작되었습니다. 데이터베이스가 필요하지 않습니다.
시스템이 다음 요구사항을 충족하는지 확인하세요.
- 웹 서버(Apache, Nginx, LiteSpeed, Lightly, IIS 등) NGINX를 사용합니다.\n
- PHP 버전 7.1.3 이상
전제 조건
- CentOS 7을 실행하는 운영 체제.\n
- sudo 권한이 있는 루트가 아닌 사용자.\n
초기 단계
CentOS 버전 확인:
cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)
시간대 설정:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
운영 체제 패키지(소프트웨어)를 업데이트합니다. 이는 운영 체제 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정 사항이 있는지 확인하기 때문에 중요한 첫 번째 단계입니다.
sudo yum update -y
CentOS 운영체제의 기본 관리에 필요한 몇 가지 필수 패키지를 설치합니다.
sudo yum install -y curl wget vim git unzip socat bash-completion epel-release
1단계 - PHP 및 필요한 PHP 확장 설치
Webtatic YUM 저장소 설정:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
PHP와 필요한 PHP 확장을 설치합니다.
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-json php72w-mbstring php72w-xml php72w-zip php72w-opcache php72w-pecl-apcu
모듈로 컴파일된 PHP를 표시하려면 다음을 실행할 수 있습니다.
php -m
ctype
curl
exif
fileinfo
. . .
. . .
PHP 버전 확인:
php --version
# PHP 7.2.17 (cli) (built: May 13 2019 18:03:04) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.17, Copyright (c) 1999-2018, by Zend Technologies
PHP-FPM 서비스 시작 및 활성화:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
2단계 - acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)
HTTPS로 포럼을 보호할 필요는 없지만 사이트 트래픽을 보호하는 것이 좋습니다. Lets Encrypt에서 TLS 인증서를 얻기 위해 acme.sh 클라이언트를 사용합니다. Acme.sh는 종속성이 없는 Lets Encrypt에서 TLS 인증서를 얻기 위한 순수 UNIX 셸 소프트웨어입니다.
acme.sh를 다운로드하고 설치합니다.
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail
source ~/.bashrc
cd ~
acme.sh 버전 확인:
acme.sh --version
# v2.8.0
도메인/호스트 이름에 대한 RSA 및 ECC/ECDSA 인증서 받기:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
테스트를 위해 가짜 인증서를 원하는 경우 위 명령에 --staging
플래그를 추가할 수 있습니다.
위 명령어를 실행하면 인증서 및 키가 다음 위치에 있게 됩니다.
- RSA의 경우:
/home/username/example.com
디렉토리. - ECC/ECDSA의 경우:
/home/username/example.com_ecc
디렉토리.
발급된 인증서를 나열하려면 다음을 실행할 수 있습니다.
acme.sh --list
인증서를 저장할 디렉터리를 만듭니다. /etc/letsencrypt
디렉토리를 사용합니다.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
인증서를 /etc/letsencrypt 디렉터리에 설치/복사합니다.
# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
모든 인증서는 60일마다 자동으로 갱신됩니다.
인증서를 얻은 후 루트 사용자에서 종료하고 일반 sudo 사용자로 돌아갑니다.
exit
3단계 - NGINX 설치 및 구성
NGINX 설치:
sudo yum install -y nginx
NGINX 버전 확인:
nginx -v
# nginx version: nginx/1.12.2
NGINX 서비스 시작 및 사용 설정:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Grav용 NGINX를 구성합니다. sudo vim /etc/nginx/conf.d/grav.conf
를 실행하고 다음 구성을 추가합니다.
server {
listen 80;
listen 443 ssl;
server_name example.com;
root /var/www/grav;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
NGINX 구성에서 구문 오류를 확인하세요.
sudo nginx -t
NGINX 서비스 다시 로드:
sudo systemctl reload nginx.service
4단계 - Grav CMS 설치
문서 루트 디렉터리를 만듭니다.
sudo mkdir -p /var/www/grav
/var/www/grav
디렉토리의 소유권을 johndoe:
로 변경합니다.
sudo chown -R johndoe:johndoe /var/www/grav
문서 루트 폴더로 이동합니다.
cd /var/www/grav
Grav 다운로드 및 압축 해제:
wget https://getgrav.org/download/core/grav-admin/1.6.9
unzip 1.6.9
mv grav-admin/* . && mv grav-admin/.* .
rm -rf grav-admin 1.6.9
참고: 버전 1.6.9는 현재 버전이며 이 문서를 읽는 시점에는 다를 수 있습니다. 최신 정보는 Grav 웹사이트를 확인하세요.
/var/www/grav
디렉토리의 소유권을 nginx:
로 변경합니다.
sudo chown -R nginx:nginx /var/www/grav
sudo vim /etc/php-fpm.d/www.conf
를 실행하고 사용자 및 그룹을 nginx
로 설정합니다. 처음에는 사용자 및 그룹 apache:
로 설정됩니다.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
PHP-FPM 서비스를 다시 시작하십시오.
sudo systemctl restart php-fpm.service
/var/lib/php/session/
디렉토리를 만들고 소유권을 nginx:
로 변경합니다.
sudo mkdir -p /var/lib/php/session/ && sudo chown -R nginx:nginx /var/lib/php/session/
웹 브라우저에서 http://example.com
을 열고 화면의 안내를 따릅니다. Grav 관리자에 액세스하려면 URL에 /admin
을 추가하세요.
5단계 - Grav 설정 완료
Grav 관리 사용자를 만듭니다.

생성 후 관리 대시보드로 리디렉션됩니다.

연결
- https://getgrav.org/
- https://github.com/getgrav/grav