Drupal adalah sistem manajemen konten sumber terbuka dan gratis berdasarkan tumpukan LAMP. Drupal memiliki fitur standar hebat yang memungkinkan Anda membuat situs web dan blog yang kuat. Muncul dengan banyak tema, plugin, dan widget yang membantu Anda membuat situs web tanpa pengetahuan pemrograman. Ini menyediakan banyak fitur seperti dukungan multi-situs, dukungan multi-bahasa, sistem komentar, umpan RSS, pendaftaran pengguna, dan banyak lagi.
Dalam posting ini, kami akan menunjukkan cara menginstal Drupal CMS dengan Apache dan Let's Encrypt SSL di Debian 11.
Prasyarat
- Server yang menjalankan Debian 11.
- Nama domain valid yang ditunjukkan dengan IP server Anda.
- Kata sandi root dikonfigurasi di server.
Instal LAMP Stack
Drupal didasarkan pada tumpukan LAMP. Jadi LAMP stack harus diinstal di server Anda. Jika belum terinstal, Anda dapat menginstalnya dengan menjalankan perintah berikut:
apt-get install apache2 mariadb-server mariadb-client php libapache2-mod-php php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc -y
Setelah LAMP stack terinstal, edit file php.ini dan ubah beberapa pengaturan default:
nano /etc/php/7.4/apache2/php.ini
Ubah baris berikut:
memory_limit = 256M upload_max_filesize = 32M max_execution_time = 300 date.timezone = Asia/Kolkata
Simpan dan tutup file setelah Anda selesai.
Buat Database Drupal
Drupal menggunakan MariaDB sebagai backend database. Jadi, Anda perlu membuat database dan pengguna untuk Drupal.
Pertama, login ke MariaDB dengan perintah berikut:
mysql
Setelah Anda masuk, buat database dan pengguna menggunakan perintah berikut:
MariaDB [(none)]> CREATE DATABASE drupaldb;
MariaDB [(none)]> CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";
Selanjutnya, berikan semua hak istimewa ke database Drupal menggunakan perintah berikut:
MariaDB [(none)]> GRANT ALL ON drupaldb.* TO 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";
Selanjutnya, flush hak istimewa dan keluar dari MariaDB dengan perintah berikut:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Unduh Drupal
Pertama, buka situs web Drupal, pilih versi terbaru Drupal dan unduh dengan perintah berikut:
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz
Setelah Drupal diunduh, ekstrak file yang diunduh dengan perintah berikut:
tar -xvf drupal.tar.gz
Selanjutnya, pindahkan direktori yang diekstrak ke direktori root default Apache:
mv drupal-* /var/www/html/drupal
Selanjutnya, ubah kepemilikan dan izin direktori Drupal menggunakan perintah berikut:
chown -R www-data:www-data /var/www/html/drupal/
chmod -R 755 /var/www/html/drupal/
Buat Host Virtual Apache untuk Drupal
Selanjutnya, Anda perlu membuat file konfigurasi virtual host Apache untuk meng-host Drupal. Anda dapat membuatnya menggunakan perintah berikut:
nano /etc/apache2/sites-available/drupal.conf
Tambahkan baris berikut:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/drupal/ ServerName drupal.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html/drupal/> Options FollowSymlinks AllowOverride All Require all granted </Directory> <Directory /var/www/html/> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] </Directory> </VirtualHost>
Simpan dan tutup file kemudian aktifkan virtual host Drupal dan modul Apache rewrite dengan perintah berikut:
a2ensite drupal.conf
a2enmod rewrite
Selanjutnya, restart layanan Apache untuk menerapkan perubahan:
systemctl restart apache2
Untuk memeriksa status Apache, jalankan perintah berikut:
systemctl status apache2
Anda akan mendapatkan output berikut:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-09-18 14:59:40 UTC; 5s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 19698 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 19703 (apache2) Tasks: 6 (limit: 2341) Memory: 15.3M CPU: 78ms CGroup: /system.slice/apache2.service ??19703 /usr/sbin/apache2 -k start ??19704 /usr/sbin/apache2 -k start ??19705 /usr/sbin/apache2 -k start ??19706 /usr/sbin/apache2 -k start ??19707 /usr/sbin/apache2 -k start ??19708 /usr/sbin/apache2 -k start
Pada titik ini, server web Apache dikonfigurasi untuk melayani Drupal. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Akses Situs Web Drupal
Sekarang, buka browser web Anda dan akses Drupal menggunakan URL http://drupal.example.com . Anda akan diarahkan ke halaman berikut:
Pilih bahasa Inggris dan klik Simpan dan Lanjutkan tombol, Anda akan melihat gambar berikut:
Pilih Profil Instalasi dan klik Simpan dan Lanjutkan tombol. Anda akan melihat halaman berikut:
Di halaman Konfigurasi Basis Data, berikan semua detail basis data yang diperlukan seperti nama basis data, nama pengguna basis data, dan kata sandi, host basis data, lalu klik Simpan dan Lanjutkan tombol, Anda akan melihat gambar berikut:
Di halaman Konfigurasi Situs Drupal, berikan nama situs, nama pengguna dan kata sandi admin Anda lalu klik tombol Simpan dan Lanjutkan tombol untuk mulai menginstal Drupal. Setelah Drupal diinstal, Anda akan melihat dasbor Drupal pada gambar berikut:
Aktifkan Dukungan Let's Encrypt SSL di Situs Drupal
Itu selalu merupakan ide yang baik untuk mengamankan situs web Anda dengan Let's Encrypt SSL. Pertama, Anda perlu menginstal klien Certbot untuk menginstal dan mengelola SSL. Secara default, paket Certbot disertakan dalam repositori default Debian 11 sehingga Anda dapat menginstalnya dengan perintah berikut:
apt-get install python3-certbot-apache -y
Setelah Certbot terinstal, jalankan perintah berikut untuk mengamankan situs web Anda dengan Let's Encrypt SSL:
certbot --apache -d drupal.example.com
Anda akan diminta untuk memberikan email Anda dan menerima persyaratan layanan seperti yang ditunjukkan di bawah ini:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for drupal.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/drupal-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/drupal-le-ssl.conf Enabling available site: /etc/apache2/sites-available/drupal-le-ssl.conf
Selanjutnya, pilih apakah akan mengarahkan lalu lintas HTTP ke HTTPS seperti yang ditunjukkan di bawah ini:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Ketik 2 dan tekan Enter untuk menginstal Let's Encrypt SSL untuk situs web Anda:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/drupal.conf to ssl vhost in /etc/apache2/sites-available/drupal-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://drupal.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=drupal.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/drupal.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/drupal.example.com/privkey.pem Your cert will expire on 2021-04-20. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Kesimpulan
Itu saja untuk saat ini. Anda telah berhasil menginstal Drupal dengan Let's Encrypt SSL di Debian 11. Sekarang Anda dapat mulai membuat blog atau situs web Anda sendiri tanpa pengetahuan pemrograman. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.