Drupal adalah sistem manajemen konten sumber terbuka yang terkenal berdasarkan PHP. Ini tersedia secara gratis dan dirilis di bawah Lisensi Publik Umum GNU. Drupal dapat digunakan untuk semua ukuran situs web, dari situs web internasional besar hingga blog pribadi dan situs perusahaan atau pemerintah.
Bagian inti drupal bernama "Drupal Core", berisi sistem manajemen konten dasar, manajemen pengguna, manajemen menu, penyesuaian tata letak, dan administrasi sistem. Drupal Core dapat diperluas dengan plugin, hingga saat ini komunitas drupal telah menyediakan lebih dari 31.000 modul untuk Drupal.
Dalam tutorial ini, kami akan menunjukkan cara menginstal Drupal 9 pada Debian Buster 10. Kami akan menjalankan Drupal di bawah LEMP Stack (Linux, Nginx, MySQL/MariaDB, dan PHP-FPM), dan mengamankan instalasi menggunakan SSL Letsencrypt .
Prasyarat
Untuk panduan ini, kami akan menguji instalasi Drupal kami pada Debian Buster 10 versi terbaru dengan RAM 2GB, ruang disk kosong 50GB, dan 2 CPU. Selain itu, kita memerlukan hak akses sudo root untuk menginstal paket baru dan mengedit beberapa konfigurasi perangkat lunak sistem.
Apa yang akan kita lakukan?
- Instal Server Web Nginx
- Instal dan Konfigurasi PHP-FPM
- Instal dan Konfigurasi MariaDB
- Buat SSL Letsencrypt
- Siapkan Nginx Virtualhost untuk Drupal 9
- Unduh Kode Sumber Drupal 9
- Penginstalan Postingan Drupal 9
Langkah 1 - Instal Nginx Webserver
Pertama, kita akan menginstal server web Nginx di server Debian kita.
Perbarui repositori yang tersedia di sistem Anda dan tingkatkan semua paket ke versi terbaru menggunakan perintah apt di bawah ini.
sudo apt update
sudo apt upgrade
Selanjutnya, instal paket server web Nginx menggunakan perintah berikut.
sudo apt install nginx -y
Setelah semua instalasi selesai, mulai layanan Nginx dan tambahkan ke boot sistem.
systemctl start nginx
systemctl enable nginx
Layanan Nginx aktif dan berjalan, periksa menggunakan perintah berikut.
systemctl status nginx
Di bawah ini adalah hasil yang akan Anda dapatkan.
Akibatnya, layanan Nginx aktif dan berjalan di Debian Buster 10.
Langkah 2 - Instal dan Konfigurasi PHP-FPM
Pada langkah ini, kita akan menginstal dan mengkonfigurasi PHP-FPM 7.3 pada Debian 10 untuk instalasi Drupal kita.
Instal paket PHP dan PHP-FPM 7.3 menggunakan perintah apt di bawah ini.
sudo apt install php php-fpm php-gd php-common php-mysql php-apcu php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip -y
Setelah semua instalasi selesai, buka direktori '/etc/php/7.3' dan edit konfigurasi 'php.ini' menggunakan editor vim.
cd /etc/php/7.3/fpm/
vim php.ini
Batalkan komentar dan ubah konfigurasi detail seperti di bawah ini.
date.timezone = Asia/Singapore
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0
Simpan dan tutup.
Selanjutnya, restart layanan PHP-FPM dan tambahkan ke boot sistem.
systemctl restart php7.3-fpm
systemctl enable php7.3-fpm
Layanan PHP-FPM aktif dan berjalan, dan secara default, ini berjalan di bawah file kaus kaki
Periksa layanan PHP-FPM menggunakan perintah berikut.
ss -plnt | grep php
systemctl status php7.3-fpm
Di bawah ini adalah hasil yang akan Anda dapatkan.
Hasilnya, instalasi dan konfigurasi PHP-FPM untuk Drupal 9 pada Debian Buster 10 telah selesai.
Langkah 3 - Instal dan Konfigurasi Server MariaDB
Setelah menginstal paket PHP dan PHP-FPM, kita akan menginstal database MariaDB dan membuat database baru untuk Drupal 9.
Instal paket MariaDB menggunakan perintah apt di bawah ini.
sudo apt install mariadb-server mariadb-client
Setelah itu, mulai layanan MariaDB dan tambahkan ke boot sistem.
systemctl start mysql
systemctl enable mysql
Hasilnya, database MariaDB telah terinstal di server Debian.
Selanjutnya kita akan mengatur password untuk user root MariaDB default menggunakan perintah 'mysql_secure_installation' seperti di bawah ini.
mysql_secure_installation
Ketik kata sandi untuk root default dan ketik 'Y ' untuk semua opsi.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Set a 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
Dan kata sandi root MariaDB telah dikonfigurasi.
Selanjutnya, kita memerlukan akses ke shell MySQL dan membuat database dan pengguna baru untuk instalasi Drupal kita.
Masuk ke shell MySQL dengan pengguna root default dan kata sandi Anda seperti di bawah ini.
mysql -u root -p
Buat database baru bernama 'drupaldb' dan pengguna 'drupaluser' dengan sandi '[email protected]' menggunakan kueri MySQL di bawah ini.
create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;
Ketik 'keluar ' atau tekan 'Ctrl+d ' untuk keluar dari shell MySQL.
Hasilnya, database dan pengguna baru untuk instalasi Drupal telah dibuat.
Langkah 4 - Buat SSL Letsencrypt
Untuk tutorial ini, kita akan mengamankan instalasi Drupal 9 menggunakan SSL Letsencrypt. Jadi pastikan bahwa Anda memiliki nama domain yang diresolve ke alamat IP server Anda.
Untuk menggunakan SSL Letsencrypt, kita perlu membuat sertifikat SSL dengan alat certbot.
Instal alat certbot menggunakan perintah apt di bawah ini.
sudo apt install certbot -y
Setelah itu, hentikan layanan Nginx dan buat SSL Letsencrypt untuk nama domain Drupal Anda menggunakan perintah berikut.
systemctl stop nginx
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d drupal.hakase-labs.io
Pastikan untuk mengubah alamat email dengan milik Anda sendiri. Setelah semua selesai, sertifikat SSL Anda akan tersedia di direktori '/etc/letsencrypt/live/yourdomain.com'.
Langkah 6 - Siapkan Nginx Virtualhost untuk Drupal 9
Pada langkah ini, kita akan membuat konfigurasi virtual host Nginx baru untuk Drupal.
Buka direktori etc/nginx/sites-available dan buat konfigurasi virtual host baru 'drupal9' menggunakan editor vim.
cd /etc/nginx/sites-available/
vim drupal9
Ubah nama domain dan jalur sertifikat SSL Letsencrypt dengan milik Anda, rekatkan ke dalamnya.
server {
server_name drupal.hakase-labs.io;
root /var/www/drupal9; ## <-- Your only path reference.
listen 80;
listen [::]:80;
listen 443 default ssl;
ssl_certificate /etc/letsencrypt/live/drupal.hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/drupal.hakase-labs.io/privkey.pem;
# Redirect HTTP to HTTPS
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Very rarely should these ever be accessed outside of your lan
location ~* \.(txt|log)$ {
allow 192.168.0.0/16;
deny all;
}
location ~ \..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
# Block access to "hidden" files and directories whose names begin with a
# period. This includes directories used by version control systems such
# as Subversion or Git to store control files.
location ~ (^|/)\. {
return 403;
}
location / {
# try_files $uri @rewrite; # For Drupal <= 6
try_files $uri /index.php?$query_string; # For Drupal >= 7
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
# In Drupal 8, we must also match new paths where the '.php' appears in the middle,
# such as update.php/selection. The rule we use is strict, and only allows this pattern
# with the update.php front controller. This allows legacy path aliases in the form of
# blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
# any paths like that, then you might prefer to use a laxer rule, such as:
# location ~ \.php(/|$) {
# The laxer rule will continue to work if Drupal uses this new URL pattern with front
# controllers other than update.php in a future release.
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
# Fighting with Styles? This little gem is amazing.
# location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
try_files $uri @rewrite;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
Simpan dan tutup.
Selanjutnya, aktifkan konfigurasi virtual host Nginx untuk Drupal.
ln -s /etc/nginx/sites-available/drupal9 /etc/nginx/sites-enabled/
Sekarang uji konfigurasi Nginx dan pastikan tidak ada kesalahan, lalu restart layanan Nginx.
nginx -t
systemctl restart nginx
Hasilnya, konfigurasi virtual host Nginx untuk Drupal telah selesai.
Langkah 6 - Unduh Drupal
Pada langkah ini, kita akan mendownload dan menginstal Drupal versi 9 terbaru ke direktori '/var/www'.
Sekarang masuk ke direktori '/var/www' dan unduh kode sumber Drupal menggunakan perintah wget seperti di bawah ini.
cd /var/www/
wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz
Ekstrak kode sumber drupal dan ganti nama direktori menjadi 'drupal9'.
tar -xf drupal-latest.tar.gz
mv drupal-9*/ drupal9/
Setelah itu, ubah kepemilikan direktori instalasi Drupal menjadi pengguna 'www-data'.
chown -R www-data:www-data /var/www/drupal9
Akibatnya, direktori instalasi Drupal terletak di direktori '/var/www/drupal9'.
Langkah 7 - Instalasi Posting Drupal
Buka browser web Anda dan ketik instalasi URL Drupal Anda di bilah alamat.
https://drupal.hakase-labs.io/
Dan Anda akan diarahkan ke koneksi HTTPS yang aman.
Sekarang pilih bahasa default untuk instalasi Drupal Anda. Bahasa defaultnya adalah 'Bahasa Inggris '.
Pilih sebagai bahasa pilihan Anda dan klik 'Simpan dan lanjutkan '.
Pilih profil instalasi Drupal Anda dan klik 'Simpan dan lanjutkan '. Jika Anda baru pertama kali menginstal Drupal, pilih 'Standar ' profil instalasi.
Untuk konfigurasi database MySQL, ketik detail database yang dibuat di atas dan klik 'Simpan dan lanjutkan '.
Dan Anda akan mendapatkan proses instalasi Drupal seperti di bawah ini.
Setelah semua instalasi selesai, konfigurasikan nama situs Anda, pengguna admin, kata sandi, email, dll.
Klik 'Simpan dan lanjutkan '.
Sekarang Anda akan diarahkan ke halaman indeks default Drupal seperti di bawah ini.
Klik 'Konfigurasi ' di atas, dan Anda akan mendapatkan Dasbor konfigurasi Admin Drupal.
Hasilnya, instalasi Drupal 9 dengan LEMP Stack pada Debian Buster 10 telah berhasil diselesaikan.