Grav adalah platform CMS berbasis file yang cepat, sederhana, dan fleksibel. Grav hadir dengan Sistem Manajemen Paket yang kuat untuk memungkinkan instalasi sederhana dan peningkatan plugin dan tema, serta pembaruan sederhana dari Grav itu sendiri.
Arsitektur dasar Grav dirancang untuk menggunakan teknologi 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
- Kontainer Injeksi Ketergantungan Sederhana:untuk diperpanjang dan dirawat
- Symfony Event Dispatcher:untuk penanganan event plugin
- Konsol Symfony:untuk antarmuka CLI
- Gregwar Image Library:untuk manipulasi gambar dinamis
Dalam tutorial ini, kita akan melakukan penginstalan dan penyiapan Grav CMS pada sistem Fedora 30 dengan menggunakan NGINX sebagai server web, dan secara opsional Anda dapat mengamankan lapisan transport dengan menggunakan klien Acme.sh dan Let's Encrypt certificate authority untuk menambahkan dukungan SSL .
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 Fedora 30.
- Pengguna non-root dengan hak istimewa sudo.
Langkah awal
Periksa versi Fedora Anda:
cat /etc/fedora-release
#
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 dnf update -y
Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi Fedora:
sudo dnf install -y curl wget vim git unzip socat bash-completion epel-release
Langkah 1 - Instal PHP dan ekstensi PHP yang diperlukan
Instal PHP, serta ekstensi PHP yang diperlukan:
sudo dnf install -y php-cli php-fpm php-common php-curl php-gd php-json php-mbstring php-xml php-zip php-opcache php-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.3.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 ini adalah praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat TLS dari Let's Encrypt kita akan menggunakan klien Acme.sh. Acme.sh adalah software shell UNIX sederhana 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.2
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 ingin 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 diperbarui secara otomatis setiap 60 hari.
Setelah mendapatkan sertifikat keluar dari pengguna root dan kembali ke pengguna Sudo biasa:
exit
Langkah 3 - Instal dan konfigurasikan NGINX
Instal NGINX:
sudo dnf install -y nginx
Periksa versi NGINX:
nginx -v
# nginx version: nginx/1.14.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 unix:/run/php-fpm/www.sock;
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 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 pengguna yang Anda masuki saat ini, dalam kasus saya, pengguna adalah 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 atur pengguna dan grup ke nginx
. Awalnya, ini 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 Grav admin 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