Grav adalah platform CMS berbasis file yang cepat, sederhana, dan fleksibel. Grav hadir dengan Sistem Manajemen Paket yang kuat untuk memungkinkan penginstalan sederhana dan peningkatan versi plugin dan tema, serta pembaruan Grav itu sendiri dengan mudah.
Arsitektur dasar Grav dirancang untuk menggunakan teknologi yang sudah mapan dan terbaik di kelasnya untuk memastikan bahwa Grav mudah digunakan dan mudah diperluas. Beberapa teknologi utama ini meliputi:
- Twig Templateing:untuk kontrol antarmuka pengguna yang kuat
- Penurunan harga:untuk pembuatan konten yang mudah
- YAML:untuk konfigurasi sederhana
- Parsedown:untuk Markdown cepat dan dukungan Markdown Ekstra
- Cache Doktrin:lapisan untuk performa
- Wadah Injeksi Ketergantungan Jerawat:untuk diperpanjang dan dirawat
- Symfony Event Dispatcher:untuk penanganan event plugin
- Konsol Symfony:untuk antarmuka CLI
- Gregwar Image Library:untuk manipulasi gambar dinamis
Persyaratan
Grav sengaja dirancang dengan sedikit persyaratan. Grav dibuat dengan file teks biasa untuk konten Anda. Tidak ada basis data yang dibutuhkan.
Pastikan sistem Anda memenuhi persyaratan berikut:
- Server Web (Apache, Nginx, LiteSpeed, Lightly, IIS, dll.) Kami akan menggunakan NGINX.
- PHP versi 7.1.3 atau lebih tinggi
Prasyarat
- Sistem operasi yang menjalankan CentOS 7.
- Pengguna non-root dengan hak istimewa sudo.
Langkah awal
Periksa versi CentOS Anda:
cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)
Siapkan zona waktu:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Perbarui paket sistem operasi Anda (perangkat lunak). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan dan perbaikan keamanan terbaru untuk paket perangkat lunak default sistem operasi Anda:
sudo yum update -y
Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi CentOS:
sudo yum install -y curl wget vim git unzip socat bash-completion epel-release
Langkah 1 - Instal PHP dan ekstensi PHP yang diperlukan
Siapkan repo Webtatic YUM:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Instal PHP, serta ekstensi PHP yang diperlukan:
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
Untuk menampilkan PHP yang dikompilasi dalam modul, Anda dapat menjalankan:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Periksa versi 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
Mulai dan aktifkan layanan PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Langkah 2 - Instal klien acme.sh dan dapatkan sertifikat Let's Encrypt ( opsional )
Mengamankan forum Anda dengan HTTPS tidak diperlukan, tetapi merupakan praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat TLS dari Let's Encrypt, kami akan menggunakan klien acme.sh. Acme.sh adalah software shell UNIX murni untuk mendapatkan sertifikat TLS dari Let's Encrypt tanpa ketergantungan.
Unduh dan instal acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~
Periksa versi acme.sh :
acme.sh --version
# v2.8.0
Dapatkan RSA dan ECC/ECDSA sertifikat untuk domain/hostname Anda:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Jika Anda menginginkan sertifikat palsu untuk pengujian, Anda dapat menambahkan --staging
tandai perintah di atas.
Setelah menjalankan perintah di atas, sertifikat your Anda dan kunci akan di:
- Untuk RSA :
/home/username/example.com
direktori. - Untuk ECC/ECDSA :
/home/username/example.com_ecc
direktori.
Untuk membuat daftar sertifikat yang dikeluarkan, Anda dapat menjalankan:
acme.sh --list
Buat direktori untuk menyimpan sertifikat Anda. Kami akan menggunakan /etc/letsencrypt
direktori.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Instal/salin sertifikat ke direktori /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"
Semua sertifikat akan diperpanjang secara otomatis setiap 60 hari.
Setelah mendapatkan sertifikat keluar dari pengguna root dan kembali ke pengguna sudo normal:
exit
Langkah 3 - Instal dan konfigurasikan NGINX
Instal NGINX:
sudo yum install -y nginx
Periksa versi NGINX:
nginx -v
# nginx version: nginx/1.12.2
Mulai dan aktifkan layanan NGINX:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Konfigurasikan NGINX untuk Grav. Jalankan sudo vim /etc/nginx/conf.d/grav.conf
dan tambahkan konfigurasi berikut.
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;
}
}
Periksa konfigurasi NGINX untuk mengetahui kesalahan sintaks:
sudo nginx -t
Muat ulang layanan NGINX:
sudo systemctl reload nginx.service
Langkah 4 - Instal Grav CMS
Buat direktori root dokumen:
sudo mkdir -p /var/www/grav
Ubah kepemilikan /var/www/grav
direktori ke johndoe:
sudo chown -R johndoe:johndoe /var/www/grav
Arahkan ke folder root dokumen:
cd /var/www/grav
Unduh dan unzip 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
CATATAN: Versi 1.6.9 adalah versi saat ini dan mungkin berbeda saat Anda membaca ini. Silakan periksa situs web Grav untuk informasi terbaru.
Ubah kepemilikan /var/www/grav
direktori ke nginx:
sudo chown -R nginx:nginx /var/www/grav
Jalankan sudo vim /etc/php-fpm.d/www.conf
dan setel pengguna dan grup ke nginx
. Awalnya, ini akan disetel ke pengguna dan grup apache:
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Mulai ulang layanan PHP-FPM.
sudo systemctl restart php-fpm.service
Buat /var/lib/php/session/
direktori dan ubah kepemilikan menjadi nginx:
sudo mkdir -p /var/lib/php/session/ && sudo chown -R nginx:nginx /var/lib/php/session/
Buka http://example.com
di browser web Anda dan ikuti petunjuk di layar. Untuk mengakses admin Grav, tambahkan /admin
ke URL Anda.
Langkah 5 - Selesaikan penyiapan Grav
Buat pengguna admin Grav:
Setelah pembuatan, Anda akan diarahkan ke dasbor admin:
Tautan
- https://getgrav.org/
- https://github.com/getgrav/grav