Craft adalah CMS open source yang ditulis dalam PHP. Craft memungkinkan Anda membuat dan mengelola konten yang tampak hebat dengan mudah, serta merancang dan membangun apa yang Anda butuhkan. Ini adalah CMS yang aman dan skalabel dengan ekosistem plugin yang besar dan kode sumber Craft dihosting di GitHub. Tutorial ini akan memandu Anda melalui prosedur penginstalan Craft CMS di server Debian 9 baru menggunakan Nginx sebagai server web dan kami akan mengamankan situs web dengan sertifikat SSL Let's encrypt.
Persyaratan
CMS Craft memerlukan hal berikut:
- PHP versi 7.0 atau lebih tinggi dengan ekstensi PHP berikut:(ctype, cURL, GD atau ImageMagick, iconv, JSON, Multibyte String, OpenSSL, PCRE, PDO MySQL Driver atau PDO Driver PostgreSQL, PDO, Reflection, SPL, Zip, Internasional, DOM)
- MySQL 5.5+ dengan InnoDB, MariaDB 5.5+, atau PostgreSQL 9.5+
- Setidaknya 256MB memori dialokasikan untuk PHP
- Setidaknya 200MB ruang disk kosong
Prasyarat
- Sistem operasi yang menjalankan Debian 9.
- Pengguna non-root dengan hak istimewa sudo.
Langkah awal
Periksa versi Debian Anda:
lsb_release -ds
# Debian GNU/Linux 9.8 (stretch)Siapkan zona waktu:
sudo dpkg-reconfigure tzdataPerbarui 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 apt update && sudo apt upgrade -yInstal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi Debian:
sudo apt install -y curl wget vim git unzip socat apt-transport-httpsLangkah 1 - Instal PHP dan ekstensi PHP yang diperlukan
Instal PHP, serta ekstensi PHP yang diperlukan:
sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-common php7.0-curl php7.0-gd php-imagick php7.0-json php7.0-mbstring php7.0-mysql php7.0-pgsql php7.0-zip php7.0-intl php7.0-xmlPeriksa versi PHP:
php --version
# PHP 7.0.33-0+deb9u3 (cli) (built: Mar  8 2019 10:01:24) ( NTS )
# Copyright (c) 1997-2017 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
#     with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies
 Jalankan sudo vim /etc/php/7.0/fpm/php.ini dan atur memory_limit setidaknya 256MB. 
 Setel juga max_execution_time  setidaknya 120 detik dan muat ulang layanan PHP-FPM.
memory_limit = 256M
max_execution_time = 120
Layanan PHP-FPM secara otomatis dimulai dan diaktifkan saat reboot pada sistem Debian 9, jadi tidak perlu memulai dan mengaktifkannya secara manual. Kita bisa melanjutkan ke langkah berikutnya, yaitu instalasi dan setup database.
Langkah 2- Instal MySQL/MariaDB dan buat database
Craft CMS mendukung database MySQL/MariaDB dan PostgreSQL. Dalam tutorial ini, kita akan menggunakan MariaDB sebagai server database.
Instal server database MariaDB:
sudo apt install -y mariadb-serverPeriksa versi MariaDB:
mysql --version
# mysql  Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using  EditLine wrapper
 Jalankan mysql_secure installation skrip untuk meningkatkan keamanan MariaDB dan menyetel sandi untuk MariaDB root pengguna:
sudo mysql_secure_installationJawab setiap pertanyaan:
Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
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] YHubungkan ke Shell MariaDB sebagai pengguna root:
sudo mysql -u root -p
# Enter password
Buat database dan pengguna MariaDB kosong untuk Craft CMS dan ingat kredensialnya:
mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;Keluar dari MariaDB:
mysql> exit
 Ganti dbname,  username dan password dengan nama Anda sendiri.
Langkah 3 - Instal klien acme.sh dan dapatkan sertifikat Let's Encrypt (opsional)
Mengamankan situs web 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, 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 mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~Periksa versi Acme.sh :
/etc/letsencrypt/acme.sh --version
# v2.8.0
 Dapatkan RSA dan ECC/ECDSA sertifikat untuk domain/hostname Anda:
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256Setelah menjalankan perintah di atas, sertifikat Anda dan kunci akan di:
- Untuk RSA :/etc/letsencrypt/example.comdirektori.
- Untuk ECC/ECDSA :/etc/letsencrypt/example.com_eccdirektori.
Langkah 4 - Instal dan Konfigurasi Nginx
Craft CMS dapat bekerja dengan baik dengan banyak software server web populer. Dalam tutorial ini, kami memilih Nginx.
Unduh dan instal rilis arus utama Nginx terbaru dari repositori resmi Nginx.
Mulailah dengan mengunduh kunci PGP repositori Nginx:
wget https://nginx.org/keys/nginx_signing.key
 Tambahkan kunci ke apt kunci program:
sudo apt-key add nginx_signing.key
Tambahkan dan siapkan repositori APT jalur utama Nginx:
sudo -s
printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exitPerbarui daftar repositori:
sudo apt update
Instal paket Nginx arus utama terbaru:
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xsltMulai dan aktifkan layanan Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.servicePeriksa versi Nginx:
sudo nginx -v
# nginx version: nginx/1.15.10Konfigurasikan Nginx untuk CMS Kerajinan dengan menjalankan:
sudo vim /etc/nginx/conf.d/craft.confDan isi file dengan konfigurasi berikut:
server {
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name example.com;
  root /var/www/craft/web;
  index index.php;
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
  location / {
    try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }
  location ~ [^/]\.php(/|$) {
    try_files $uri $uri/ /index.php?$query_string;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTP_PROXY "";
  }
}CATATAN :Untuk konfigurasi Nginx yang lengkap dan siap produksi untuk Craft, kunjungi https://github.com/nystudio107/nginx-craft. Konfigurasi sengaja disederhanakan agar konfigurasi tetap padat dan sederhana.
 Buka file nginx.conf dan atur user ke www-data .
sudo vim /etc/nginx/nginx.conf
user www-data www-data;Uji konfigurasi Nginx:
sudo nginx -tMuat ulang Nginx:
sudo systemctl reload nginx.serviceLangkah 5 - Instal Komposer
Instal Composer, pengelola ketergantungan PHP secara global:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { 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/composerPeriksa versi Komposer:
composer --version
# Composer version 1.8.4 2019-02-11 10:52:10CATATAN: Perintah penginstalan komposer akan berubah di masa mendatang, jadi periksa https://getcomposer.org/download/ untuk perintah terbaru jika perintah di atas tidak berfungsi.
Langkah 6 - Instal CMS Craft
 Craft CMS dapat diunduh dengan Composer atau dengan mengunduh .zip . secara manual atau tar.gz arsip. Dalam tutorial ini, kita akan menggunakan Composer untuk mendownload Craft CMS.
Buat direktori root dokumen tempat CMS Kerajinan harus berada:
sudo mkdir -p /var/www/craft
Arahkan ke direktori root dokumen:
cd /var/www/craft
 Ubah kepemilikan /var/www/craft direktori ke [jour_username] :
sudo chown -R [your_username]:[your_username] /var/www/craftUntuk membuat proyek Kerajinan baru, jalankan perintah ini:
composer create-project craftcms/craft .
 Ubah kepemilikan /var/www/craft direktori ke www-data: 
sudo chown -R www-data:www-data /var/www/craft
 Di browser web Anda, buka http://<Hostname>/index.php?p=admin/install (menggantikan <Hostname> dengan nama host server web Anda). Jika Anda telah melakukan semuanya dengan benar sejauh ini, Anda akan disambut oleh Wizard Penyiapan Craft.
Langkah 7 - Selesaikan penyiapan CMS Craft
Setelah membuka URL instalasi Anda, halaman seperti di bawah ini akan muncul. Klik "Instal Kerajinan" tombol:
 
Terima lisensi dengan mengklik "Mengerti" tombol:
 
Isi detail database dan klik "Berikutnya" tombol:
 
Buat akun Craft dan klik "Berikutnya" tombol:
 
Siapkan situs Anda dan klik "Selesaikan" tombol:
 
Setelah ini Anda akan diarahkan ke halaman admin Craft:
 
Tautan
- https://craftcms.com/
- https://github.com/craftcms/cms
- https://github.com/nystudio107/nginx-craft