GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal Drupal 9 dengan Nginx dan Mengenkripsi SSL di Debian 10

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.


Debian
  1. Cara Menginstal Nextcloud dengan Nginx dan Lets Encrypt SSL di Ubuntu 20.04 LTS

  2. Instal Lets Encrypt dan Secure Nginx dengan SSL/TLS di Debian 9

  3. Instal Automad CMS dengan Nginx dan Mari Enkripsi SSL di Debian 10

  1. Cara Instal OpenCart dengan Nginx dan Lets Encrypt di Debian 10

  2. Cara Menginstal Drupal dengan Nginx dan Mengenkripsi SSL di Ubuntu 20.04 LTS

  3. Cara Menginstal Joomla dengan Apache dan Mengenkripsi SSL di Debian 10

  1. Cara Menginstal Drupal dengan Apache dan Mengenkripsi SSL di Debian 11

  2. Cara Menginstal DokuWiki dengan Lets Encrypt SSL di Debian 11

  3. Cara Menginstal SuiteCRM dengan Apache dan Lets Encrypt SSL gratis di Debian 11