웹사이트 검색

Nginx로 Pico CMS를 설치하고 CentOS 7에서 암호화하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 전제 조건
  3. 초기 단계
  4. 1단계 - PHP 설치
  5. 2단계 - acme.sh 클라이언트 설치 및 Let\>)
  6. 3단계 - NGINX 설치 및 구성
  7. 4단계 - Composer 설치
  8. 5단계 - Pico CMS 설치
  9. 링크

Pico는 PHP로 작성된 오픈 소스 간단하고 빠른 플랫 파일 CMS입니다. 이는 처리할 관리 백엔드 및 데이터베이스가 없음을 의미합니다. 콘텐츠 폴더에 .md 파일을 만들기만 하면 페이지가 됩니다. Pico는 강력하고 유연한 테마를 위해 Twig 템플릿 엔진을 사용합니다. Pico 소스 코드는 Github에서 사용할 수 있습니다. 이 튜토리얼에서는 CentOS 7 시스템에 Nginx와 함께 Pico CMS를 설치합니다.

요구 사항

Pico를 실행하기 위한 요구사항은 다음과 같습니다.

  • 엔진엑스
  • PHP 버전 5.3.6 이상
  • 작곡가

전제 조건

  • CentOS 7 운영체제.
  • 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 설치

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-zip php72w-xml php72w-mbstring

모듈로 컴파일된 PHP를 표시하려면 다음을 실행할 수 있습니다.

php -m

ctype
curl
exif
fileinfo
. . .
. . .

PHP 버전 확인:

php --version
# PHP 7.2.19 (cli) (built: Jan 12 2019 12:47:33) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.2.14, 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.2

도메인/호스트 이름에 대한 RSA 및 ECC/ECDSA 인증서 받기:<br>

# 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 설치 및 구성

CentOS 저장소에서 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

다음을 실행하여 Pico CMS용 NGINX를 구성합니다.

sudo vim /etc/nginx/conf.d/pico.conf

그리고 다음 구성으로 파일을 채웁니다.

server {
  
  listen 80;
  listen 443 ssl;
  server_name example.com;
  root /var/www/pico;
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.php; location ~ ^/((config|content|vendor|composer\.(json|lock|phar))(/|$)|(.+/)?\.(?!well-known(/|$))) { deny all; } location / { index index.php; try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PICO_URL_REWRITING 1; } }

구문 오류에 대한 NGINX 구성 확인:

sudo nginx -t

NGINX 서비스 다시 로드:

sudo systemctl reload nginx.service

4단계 - Composer 설치

PHP 종속성 관리자인 Composer를 전역적으로 설치합니다.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

Composer 버전 확인:

composer --version
# Composer version 1.9.0 2019-08-02 20:55:32

참고: Composer 설치 명령은 향후 변경될 예정이므로 위의 명령이 작동하지 않는 경우 https://getcomposer.org/download/에서 최신 명령을 확인하십시오.

5단계 - Pico CMS 설치

Pico CMS용 문서 루트 디렉터리를 만듭니다.

sudo mkdir -p /var/www/pico

/var/www/pico 디렉토리의 소유권을 이전에 만들었어야 하는 our_username으로 변경하고 이 사용자로 로그인해야 합니다.

sudo chown -R your_username:your_username /var/www/pico

참고: your_username을 선택한 이름으로 바꾸는 것을 잊지 마십시오.

문서 루트 디렉토리로 이동합니다.

cd /var/www/pico

작곡가와 함께 Pico 다운로드:

composer create-project picocms/pico-composer .

적절한 소유권을 제공합니다.

sudo chown -R nginx:nginx /var/www/pico

sudo vim /etc/php-fpm.d/www.conf를 실행하고 사용자 및 그룹을 nginx로 설정합니다. 처음에는 apache로 설정됩니다. 실행:

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

그리고 아래와 같이 사용자와 그룹을 nginx로 설정합니다.

user = nginx
group = nginx

마지막으로 이러한 변경 사항을 적용하려면 PHP-FPM 서비스를 다시 시작하십시오.

sudo systemctl restart php-fpm.service

CentOS 7 서버에 Pico CMS를 성공적으로 설치했습니다. 이제 Picos 루트 디렉터리에 자신만의 콘텐츠 폴더를 만들고 콘텐츠 디렉터리에 .md 파일을 만들면 해당 파일이 페이지가 됩니다.

연결

  • http://picocms.org/
  • https://github.com/picocms/Pico