Grav adalah aplikasi web modern yang tidak memerlukan database. Ini adalah platform web berbasis file yang sederhana, cepat, dan tidak memerlukan penginstalan. Grav menggunakan teknologi modern termasuk Twig Templating untuk templating, Markdown untuk pembuatan konten, YAML untuk konfigurasi sederhana, Parsedown, dan Doctrine cache untuk lapisan kinerja dll. Alat ini ditulis dalam PHP dan dilengkapi dengan Sistem Manajemen Paket yang kuat yang memungkinkan Anda untuk mengelola Sistem Grav, termasuk menginstal dan meningkatkan Grav itu sendiri, serta tema dan plugin.
Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan mengkonfigurasi Grav CMS di Ubuntu 16.04. Karena Grav adalah aplikasi web PHP berbasis, kita perlu menginstal PHP pada sistem, dan untuk mendapatkan kinerja lebih, kita akan menggunakan PHP-FPM dengan web browser Nginx.
Prasyarat
- Ubuntu 16.04
- Hak istimewa root
Apa yang akan kami lakukan:
- Instal Nginx
- Instal dan Konfigurasi PHP-FPM
- Instal Komposer PHP
- Unduh dan Instal Grav CMS
- Konfigurasi Nginx Virtual Host untuk Grav
- Pengujian
Langkah 1 - Instal Server Web Nginx
Pada langkah pertama ini, kita akan menginstal server web Nginx dari repositori Ubuntu. Sebelum kita melakukannya, kita perlu memperbarui semua paket dan repositori menggunakan perintah apt berikut.
sudo apt update
sudo apt upgrade
Sekarang instal server web Nginx.
sudo apt install nginx -y
Setelah penginstalan selesai, mulai layanan dan aktifkan untuk diluncurkan saat boot sistem, sesuatu yang dapat Anda lakukan menggunakan perintah systemctl berikut.
systemctl start nginx
systemctl enable nginx
Server web Nginx telah diinstal di Ubuntu 16.04, dan dijalankan pada port HTTP default 80. Periksa menggunakan perintah netstat dengan cara berikut.
netstat -plntu
Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.
Langkah 2 - Instal dan Konfigurasi PHP-FPM
Sekarang kita akan menginstal dan mengkonfigurasi PHP-FPM untuk instalasi Grav kita. Instal paket PHP dan PHP-FPM (termasuk semua ekstensi yang diperlukan) menggunakan perintah berikut.
sudo apt install -y php7.0 php7.0-fpm php7.0-cli php7.0-gd php7.0-mbstring php-pear php7.0-curl php7.0-dev php7.0-opcache php7.0-xml php7.0-zip
Sekarang kita perlu mengkonfigurasi PHP-FPM.
- Pasang ekstensi tambahan
Ini opsional, tetapi yang terbaik untuk kinerja Grav. Kami akan menginstal beberapa ekstensi tambahan secara manual dari repositori ekstensi PHP menggunakan perintah PECL.
Instal ekstensi 'apcu' (untuk meningkatkan kinerja cache) menggunakan perintah 'pecl' di bawah ini.
sudo pecl install apcu
Sekarang buat konfigurasi ekstensi baru 'apcu.ini' di direktori '/etc/php/7.0/mods-available/'.
sudo vim /etc/php/7.0/mods-available/apcu.ini
Tempelkan konfigurasi berikut di sana.
extension=apcu.so
Simpan dan keluar.
Selanjutnya, aktifkan ekstensi menggunakan perintah di bawah ini.
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/fpm/conf.d/20-apcu.ini
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/cli/conf.d/20-apcu.ini
Sekarang, kita akan menginstal ekstensi 'YAML' untuk lebih meningkatkan kinerja Grav. Tetapi sebelum menginstal ekstensi, kita perlu menginstal beberapa paket menggunakan perintah apt berikut.
sudo apt install libyaml-dev unzip -y
Selanjutnya, instal ekstensi yaml menggunakan perintah pecl.
sudo pecl install yaml-2.0.0
Setelah instalasi selesai, buat file konfigurasi 'yaml.ini' baru.
sudo vim /etc/php/7.0/mods-available/yaml.ini
Tempelkan konfigurasi berikut di sana.
extension=yaml.so
Simpan dan keluar.
Sekarang aktifkan ekstensi YAML.
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/fpm/conf.d/20-yaml.ini
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/cli/conf.d/20-yaml.ini
Ekstensi PHP tambahan baru untuk Grav telah ditambahkan.
- Konfigurasikan PHP-FPM Pool untuk Grav
Sebelum membuat konfigurasi kumpulan PHP-FPM baru, kita perlu menambahkan pengguna baru bernama 'grav' ke sistem, sesuatu yang dapat Anda lakukan menggunakan perintah useradd.
useradd -m -s /bin/bash grav
passwd grav
Sekarang masuk ke direktori '/etc/php/7.0/fpm/pool.d' dan buat cadangan konfigurasi default 'www.conf'.
cd /etc/php/7.0/fpm/pool.d/
mv www.conf www.conf.bak
Selanjutnya, buat konfigurasi kumpulan PHP-FPM baru - 'grav.conf' - untuk Grav.
vim grav.conf
Tempelkan konfigurasi berikut di sana.
[grav]
user = grav
group = grav
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
Simpan dan keluar.
Mulai ulang layanan PHP-FPM dan aktifkan untuk diluncurkan saat boot sistem.
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM sekarang berjalan di bawah file 'php7.0-fpm.sock' - periksa menggunakan perintah netstat dengan cara berikut.
netstat -pl | grep php
Dan Anda harus mendapatkan hasil seperti yang ditunjukkan di bawah ini.
Catatan:
Jika Anda ingin memeriksa ekstensi apcu dan yaml, Anda dapat menggunakan perintah php berikut.
sudo php -m | grep apcu
sudo php -m | grep yaml
Instalasi dan konfigurasi untuk PHP-FPM telah selesai.
Langkah 3 - Instal PHP Composer
Komposer adalah manajer paket tingkat aplikasi untuk PHP. Ini digunakan untuk mengelola dependensi PHP.
Instal Komposer PHP menggunakan perintah berikut.
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Setelah instalasi selesai, coba jalankan perintah composer dengan cara berikut.
composer --version
Komposer PHP telah diinstal.
Langkah 4 - Unduh dan Instal Grav
Kami akan menginstal dan menjalankan alat sebagai pengguna 'grav'. Pengguna dibuat di salah satu langkah sebelumnya.
Pertama, login sebagai pengguna 'grav'.
su - grav
Sekarang, buat direktori 'www' baru.
mkdir -p ~/www
cd ~/www
Unduh versi grav terbaru menggunakan wget dan tambahkan ekstensi '.zip' ke nama file.
wget https://getgrav.org/download/core/grav/latest
mv latest latest.zip
Ekstrak file 'latest.zip' dan ganti nama direktori 'grav' menjadi 'html'.
unzip latest.zip
mv grav/ html/
Sekarang kembali ke root priveliges dan ubah pemilik grup menjadi 'www-data'.
exit
cd /home/grav/www
sudo chown -R grav:www-data html/
Grav sekarang diunduh dan diinstal oleh pengguna 'grav' di direktori '/home/grav/www/html'.
Langkah 5 - Konfigurasikan host virtual Grav
Pada langkah ini, kita akan mengkonfigurasi virtual host Nginx untuk Grav. Kami akan membuat file host virtual baru bernama 'grav' di dalam direktori 'sites-available', lalu mengaktifkan host virtual Grav.
Buka direktori konfigurasi '/etc/nginx' dan buat file baru 'grav' menggunakan editor vim.
cd /etc/nginx
vim sites-available/grav
Rekatkan konfigurasi host virtual Grav Nginx berikut di sana.
server {
## Define Index
#listen 80;
index index.html index.php;
## Web root and Domain Name
root /home/grav/www/html;
server_name grav.hakase-labs.co;
## Begin - Index
# for subfolders, simply adjust the rewrite:
# to use `/subfolder/index.php`
location / {
try_files $uri $uri/ /index.php?$query_string;
}
## End - Index
## Begin - PHP-FPM Configuration
location ~ \.php$ {
# Choose either a socket or TCP/IP address
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
# 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;
}
## End - PHP
## Begin - Security
# deny all direct access for these folders
location ~* /(.git|cache|bin|logs|backups)/.*$ { return 403; }
# deny running scripts inside core system folders
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny running scripts inside user folder
location ~* /user/.*\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny access to specific files in the root folder
location ~ /(LICENSE|composer.lock|composer.json|nginx.conf|web.config|htaccess.txt|\.htaccess) { return 403; }
## End - Security
}
Simpan dan keluar.
Selanjutnya, aktifkan virtual host dan uji konfigurasi nginx.
ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/
nginx -t
Catatan: Pastikan Anda tidak mendapatkan kesalahan Nginx setelah menguji konfigurasi.
Sekarang restart layanan Nginx dan PHP-FPM.
systemctl restart nginx
systemctl restart php7.0-fpm
Konfigurasi untuk virtual host Nginx Grav telah selesai.
Langkah 6 - Pengujian
Buka browser web Anda dan ketik nama domain situs Grav Anda, milik saya adalah http://grav.hakase-labs.co/
Dan Anda akan mendapatkan beranda Grav default, seperti yang ditunjukkan di bawah ini.
Instalasi Grav Flat CMS menggunakan PHP-FPM dan web server Nginx di Ubuntu 16.04 telah berhasil diselesaikan.