Fork adalah CMS open-source yang mudah digunakan menggunakan Komponen Symfony. Fork memiliki antarmuka yang intuitif dan ramah pengguna, aplikasi hebat yang dapat Anda download untuk memperluas situs Anda, dan koleksi template yang indah.
Dalam tutorial ini, kita akan melalui instalasi dan pengaturan Fork CMS pada sistem CentOS 8 system dengan menggunakan Nginx sebagai web server, MariaDB sebagai database, dan secara opsional Anda dapat mengamankan transport layer dengan menggunakan Acme.sh client dan sertifikat Let’s Encrypt untuk menambahkan dukungan SSL.
Persyaratan
Persyaratan untuk Install dan Menjalankan Fork CMS adalah :
- PHP versi 7.1 atau lebih tinggi.
- Modul PHP extensions terinstall dan diaktifkan : cURL, libxml, DOM, SimpleXML, SPL, PDO (with MySQL driver), mb_string, iconv, GD2 graphics library, JSON, PCRE, intl.
- MySQL 5.0 atau lebih tinggi.
- NGINX atau Apache dengan
.htaccess
,mod_rewrite
,mod_expires
(optional tapi direkomendasikan),mod_deflate
(optional).
Prasyarat
- Server dengan sistem operasi CentOS 8.
- Masuk sebagai root atau user dengan hak sudo
Sebelum Mulai
Siapkan zona waktu, Pada contoh ini saya memilih zona waktu Jakarta:
timedatectl list-timezones sudo timedatectl set-timezone 'Asia/Jakarta'
Perbarui paket sistem operasi(software). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan terbaru dan perbaikan keamanan untuk paket perangkat lunak default sistem operasi. Anda dapat melakukan ini dengan menjalankan perintah berikut dengan user root atau user biasa dengan hak sudo
::
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 – Install PHP dan PHP extensions
Install PHP dan semua PHP extensions yang dibutuhkan Fork CMS:
sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache php-intl
Untuk menampilkan modul PHP yang dikompilasi, Anda dapat menjalankan:
php -m ctype curl exif fileinfo . . . . . .
periksa versi PHP :
php --version # PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )
Start dan aktifkan PHP-FPM service:
sudo systemctl start php-fpm.service sudo systemctl enable php-fpm.service
Kita bisa beralih ke langkah selanjutnya, yaitu instalasi dan pengaturan MariaDB.
Langkah 2 – Install MariaDB dan Buat Database
Install MariaDB database server:
sudo yum install -y mariadb-server
Periksa versi MariaDB :
mysql --version # mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1
Start dan aktifkan layanan MariaDB :
sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
Secara default, MariaDB tidak diamankan. Jadi, Anda perlu mengamankannya dengan
sudo mysql_secure_installation
Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:
Enter current password for root (enter for none): Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Setelah MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:
sudo mysql -u root -p # Enter password
Masukkan kata sandi root Anda saat diminta. Kemudian, buat database dan user database untuk Fork CMS. Dalam contoh berikut, kita akan membuat database dengan nama forkdb
dan dengan nama user root
mysql> CREATE DATABASE forkdb; mysql> GRANT ALL ON forkdb.* TO 'root' IDENTIFIED BY 'g4nt!_d3n9an_Pa$$w0rd'; mysql> FLUSH PRIVILEGES;
Exit dari shell MariaDB:
mysql> exit
Langkah 3 – Install Acme.sh client dan Let’s Encrypt certificate (optional)
Mengamankan blog/website Anda dengan HTTPS memang langkah opsional, tetapi HTTPS 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 perangkat lunak shell UNIX yang digunakan untuk mendapatkan sertifikat TLS dari Let’s Encrypt dengan tanpa dependensi.
Download 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 sertifikat RSA dan ECC/ECDSA 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 ingin membuat sertifikat palsu untuk pengujian, Anda dapat menambahkan flag--staging
ke perintah di atas.
Setelah menjalankan perintah di atas, certificates dan keys akan berada di:
- untuk RSA:
/home/username/example.com directory.
- untuk ECC/ECDSA:
/home/username/example.com_ecc directory.
Untuk list semua sertifikat, jalankan perintah :
acme.sh --list
Buat direktori untuk menyimpan sertifikat Anda. Kita akan menggunakan direktori /etc/letsencrypt
mkdir -p /etc/letsecnrypt/example.com sudo mkdir -p /etc/letsencrypt/example.com_ecc
Install/copy 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 user root dan kembali ke user biasa dengan hak sudo
:
exit
Langkah 4 – Install and Konfigurasi Nginx
Download dan install NGINX dari repository CentOS:
sudo yum install -y nginx
Periksa versi NGINX :
nginx -v # nginx version: nginx/1.14.1
Selanjutnya, konfigurasikan NGINX untuk Fork CMS. Kita akan membuat server block untuk Fork CMS dan tambahkan konfigurasi berikut.
sudo nano /etc/nginx/conf.d/fork.conf
copy dan paste kontent berikut, jangan lupa mengganti example.com dengan nama domain Anda.
server {
listen 80;
listen 443 ssl;
root /var/www/fork;
index index.php index.html;
server_name example.com;
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;
location / {
# Checks whether the requested url exists as a file $uri or directory $uri/ in the root, else redirect to /index.php.
try_files $uri $uri/ @redirects;
}
location @redirects {
rewrite ^ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_read_timeout 60;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# Don't pollute the logs with common requests
location = /robots.txt { access_log off; log_not_found off; }
location =https://cdn.linuxid.net/favicon.ico?x99223 { access_log off; log_not_found off; }
# As Fork CMS has the app_root as doc_root, we need to restrict access to a few things for security purposes!
location ~* ^/(composer\..*|vendor\/.*|Procfile$|\.git\/.*|src\/Console.*|.*\.gitignore|\.editorconfig|\.travis.yml|autoload\.php|bower\.json|phpunit\.xml\.dist|.*\.md|app\/logs\/.*|app\/config\/.*|src\/Frontend\/Cache\/CompiledTemplates.*|src\/Frontend\/Cache\/Locale\/.*\.php|src\/Frontend\/Cache\/Navigation\/.*\.php|src\/Frontend\/Cache\/Search\/.*|src\/Backend\/Cache\/CompiledTemplates\/.*|src\/Backend\/Cache\/Locale\/.*\.php)$ {
deny all;
access_log off;
log_not_found off;
}
# Deny access to dot-files.
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
Periksa konfigurasi NGINX untuk melihat tidak ada syntax errors:
sudo nginx -t
Reload NGINX service:
sudo systemctl reload nginx.service
Langkah 5 – Install Composer
Install Composer, PHP dependency manager :
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
Periksa versi Composer :
composer --version # Composer version 1.9.0 2019-08-02 17:46:47
NOTE: Perintah instalasi Composer kemungkinan akan berubah di masa mendatang, jadi periksa https://getcomposer.org/download/ untuk perintah yang paling mutakhir jika perintah di atas tidak berfungsi.
Langkah 6 – Install Fork CMS
Buat root direktori untuk Fork CMS, direktori ini merupakan tempat di mana Fork CMS menyimpan semua data dan file dari CMS.
sudo mkdir -p /var/www/fork
Ubah kepemilikan dari direktori /var/www/fork
menjadi username anda, misal username saya budi
, maka:
sudo chown -R budi:budi /var/www/fork
Ganti budi
dengan username login Anda. pada langkah berikutnya masuk ke direktori document root Fork cms dan download stable release dari Fork CMS :
cd /var/www/fork composer create-project forkcms/forkcms .
Ubah kepemilikan direktori /var/www/fork
menjadi www-data
.
sudo chown -R www-data:www-data /var/www/fork
Edit file app/config/parameters.yml.dist
dan atur informasi database .
sudo nano /var/www/fork/app/config/parameters_install.yml
Buka file www.conf
dan atur user dan group ke nginx
:
sudo nano /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Buat direktori /var/lib/php/session
dan ubah kepemilikannya menjadi user nginx
:
sudo mkdir -p /var/lib/php/session sudo chown -R nginx:nginx /var/lib/php/session
Restart php-fpm.service:
sudo systemctl restart php-fpm.service
Dengan menggunakan browser web pilihan Anda, buka situs Anda dan ikuti installer Fork CMS. Untuk mengakses admin area Fork cukup tambahkan /private
ke URL situs Anda.
Langkah 7 – Selesaikan Setup Fork CMS
Pastikan server Anda memenuhi semua persyaratan dan lanjutkan:
Pilih bahasa dan klik next:
Pilih pengaturan sesuai keinginan dan klik next:
Masukkan pengaturan database Anda dan klik next. Pastikan Anda sudah membuat database.
Buat user dan selesaikan instalasi:
Anda akan melihat halaman berikut setelah Anda menyelesaikan semua langkah di atas:
Pada poin ini Anda telah berhasil menginstal Fork CMS.