lamp archlinux lamp archlinux

Cara instalasi LAMP di Arch Linux

Distribusi Linux yang akan kami gunakan pada artikel ini adalah Arch Linux, kami memilih OS ini karena karena ringan dan tidak membutuhkan spesifikasi tinggi.

Meskipun sebagian besar orang menganggap OS ini cukup sulit dipelajari, sama halnya dengan FreeBSD. Sebenarnya saat ini ada metode mudah untuk instalasi Arch Linux, yaitu menggunakan archinstall. Cara kerjanya ada pada halaman git proyek tersebut.

Kembali ke LAMP di Arch, pada artikel ini kami akan menggunakan Arch di AWS EC2, sebenarnya Arch tidak di dukung secara resmi oleh AWS. Namun kita masih dapat menggunakanya dengan trik berikut ini.

Langkah penyiapan Arch di EC2

Untuk menjalankan Arch di EC2, kita dapat menjalankannya melalui link http://arch-ami-list.drzee.net, pilih region ap-southeast-1 jika ingin menggunakan region Singapore.

screen shot 2024 09 07 at 18.20.12

Pilih opsi Arch EC2 optimized, karena OS ini sudah dioptimalkan untuk bekerja dengan baik pada AWS EC2. Setelah itu, Anda akan diarahkan ke AWS EC2, menerapkan beberapa pengaturan seperti spesifikasi server, key-SSH, storage dan lain-lain.

Info
Jika Anda bukan pengguna AWS, Anda dapat melewati bagian ini

Membuat instance EC2

Nama instance

Buat nama instance/server, tindakan ini diperlukan untuk memudahkan kita mengenali server yang akan digunakan. Jika kita memiliki server lebih dari satu, nama server ini akan sangat membantu.

a0677a81

Informasi image OS

Selanjutnya, kita akan diberikan informasi mengenai image OS yang akan digunakan, seperti ID image, arsitektur, jenis virtualisasi dan lain-lain. Informasi ini sangat penting untuk mengetahui jenis arsitektur yang digunakan, sehingga dapat dipertimbangkan untuk spesifikasi server yang akan digunakan.

screen shot 2024 09 07 at 18.24.24

Pilih jenis server

Langkah berikutnya, pilih jenis server berdasarkan jumlah vCPU dan RAM, karena image OS ini menggunakan arsitektur x86_64 (atau biasa disebut 64-bit), kita hanya dapat menggunakan server dengan spesifikasi tersebut, tidak dapat menggunakan arsitektur lain, misalnya t4g.micro yang menggunakan Arm64.

screen shot 2024 09 07 at 18.24.41

Buat key pair untuk SSH

Tentukan key pair atau key-SSH yang nantinya akan digunakan untuk masuk ke server menggunakan SSH. key pair ini merupakan pengganti kata sandi.

screen shot 2024 09 07 at 18.24.53

Setelah dibuat, Anda diminta untuk mengunduh key pair tersebut, simpan baik-baik key pair tersebut untuk digunakan pada saat masuk ke server menggunakan SSH.

Atur security group/firewall

Setelah membuat key pair, selanjutnya kita tentukan security group, Anda dapat membuat security baru atau menggunakan yang sudah ada. Untuk menjaga stabilitas, sebaiknya buat security group yang baru.

Centang bagian allow HTTPS dan HTTP untuk memberikan akses port 80 dan 443, untuk port 22 dapat dilakukan setelah instance dibuat.

screen shot 2024 09 07 at 18.25.12

Tentukan storage

Langkah terakhir, yaitu menentukan storage. Masukkan jumlah storage (dalam GB) dan pilih jenis storage. Gunakan saja gp3 atau gp2 untuk jenis penyimpanan.

screen shot 2024 09 07 at 18.25.26

Periksa ringkasan dan buat instance

Setelah selesai, periksa ringkasan mulai dari jenis server hingga jenis storage yang akan digunakan. Setelah selesai, klik Create instance untuk membuat server.

Port SSH (22)

Secara default, Arch tidak memberikan akses ke SSH (port 22), sehingga kita harus menambahkan sendiri port 22 melalui security group, caranya sangat mudah, buka tab Security di bagian bawah Instance Arch, klik nama yang tertera pada bagian tersebut (misalnya launch-wizard-1), selanjutnya Anda akan diarahkan ke bagian security group dari instance Arch.

screen shot 2024 09 07 at 18.29.22

Sebelum dimodifikasi, tampilan pada security group hanya terdapat dua value, yaitu port HTTP dan HTTPS saja.

screen shot 2024 09 07 at 18.29.42

Untuk menambahkan port baru, klik Edit inbound rules dan tambahkan port SSH (22) kedalam security group, setelah selesai, klik Apply untuk menerapkan perubahan.

screen shot 2024 09 07 at 18.30.15

Setelah berhasil diterapkan, port SSH akan ditambahkan ke security group, dengan begitu, kita dapat masuk ke server melalui SSH menggunakan key dan alamat IP dari server tersebut.

screen shot 2024 09 07 at 18.30.37

Elastic IP

Elastic IP atau kita mengenalnya dengan IP statis sangat dianjurkan untuk mencegah alamat IP berubah ketika instance di reboot, dengan menggunakan IP statis, alamat IP tetap sama walaupun di reboot berulang kali.

Untuk membuat Elastic IP, cukup klik Allocate Elastic IP address, setelah itu ikuti petunjuk berikut.

screen shot 2024 09 07 at 18.28.00

Setelah berhasil, klik pada IP yang diinginkan dengan mencentang kotak pada bagian kiri IP, kemudian klik Action > Associate this Elastic IP address, pilih instance yang diinginkan (misalnya mclab.my.id)

screen shot 2024 09 07 at 18.27.10

Setelah selesai, IP berhasil diasosiakan dengan Instance yang diinginkan.

screen shot 2024 09 07 at 18.28.18

Inisialisasi repositori

Setelah melakukan booting pada AMI, disarankan/diperlukan untuk menjalankan langkah-langkah berikut untuk menginisialisasi pacman dan memilih repositori lokal yang cepat:

# pacman-key --init
# pacman-key --populate
# reflector --country "ISO 3166-1 Alpha-2 Country Code" --protocol https,http --score 20 --sort rate --save /etc/pacman.d/mirrorlist
# pacman -Syu

Reflector sudah terinstal, sehingga perintah diatas dapat langsung dieksekusi.

Instalasi LAMP

Penyiapan

Pertama-tama, masuk ke server menggunakan SSH (atau langsung masuk ke terminal jika Anda menggunakan local server).

  1. Masukkan alamat IP statis yang telah dibuat sebelumnya (di AWS kita mengenalnya sebagai elastic IP).
  2. Masukkan nama pengguna arch pada koneksi SSH.
  3. Masukkan port SSH yaitu port 22.
  4. Tekan Enter untuk menghubungkan.
screen shot 2024 09 09 at 19.10.39

Setelah terhubung, SSH akan menampilkan jendela server.

screen shot 2024 09 09 at 19.10.53

Pada artikel ini, kita akan menggunakan nano, dan unzip. Karena pada beberapa kasus, unzip dan zip dikemas dalam satu paket, ketika Anda akan menginstal paket unzip, paket unzip pun akan ikut terinstal. Aplikasi nano, zip dan unzip tidak terpasang secara default. Kita perlu menginstalnya terlebih dahulu, karena kita akan menggunakan ketiga paket aplikasi ini. Eksekusi perintah dibawah ini untuk menginstal nano, zip dan unzip secara bersamaan.

$ sudo pacman -S nano zip unzip

Instalasi Apache

Untuk menginstal Apache, kita dapat lakukan melalui perintah sudo pacman -S apache, setelah itu sistem akan menampilkan konfirmasi seperti dibawah ini:

sudo pacman -S apache
resolving dependencies...
looking for conflicting packages...

Packages (3) apr-1.7.4-1  apr-util-1.6.3-1  apache-2.4.62-1

Total Download Size:   2.10 MiB
Total Installed Size:  8.21 MiB

:: Proceed with installation? [Y/n]

Tekan huruf Y untuk melanjutkan. Setelah selesai, kita akan melakukan konfigurasi VirtualHost di Arch.

Info
Apache pada Arch Linux sudah menggunakan mpm_event yang proses kerjanya lebih modern dan efisien dibanding mpm_prefork yang masih di set secara default pada Ubuntu maupun Debian.

Buat VirtualHost

Ketik perintah sudo nano /etc/httpd/conf/extra/vhosts.conf dan masukkan config dibawah ini.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/var/www/maucariapa.com/html/www"
    ServerName localhost
    ErrorLog "/var/log/httpd/default-error_log"
    CustomLog "/var/log/httpd/default-access_log" common
</VirtualHost>

Selanjutnya kita buat direktori www pada direktori /var/www/maucariapa.com/html/ menggunakan perintah:

sudo mkdir -p /var/www/maucariapa.com/html/www

Ubah kepemilikan direktori www dari root:root menjadi http:http menggunakan perintah sudo chown -R /var/www/maucariapa.com/html/www, perintah -R yaitu untuk mengubah kepemilikan direktori secara menyeluruh, jadi semua file yang ada pada direktori akan berubah kepemelikannya secara otomatis.

Aktifkan VirtualHost

Untuk mengaktifkan VirtualHost, buka httpd.conf menggunakan perintah sudo nano /etc/httpd/conf/httpd.conf dan cari bagian # Virtual hosts, tambahkan baris Include conf/extra/vhosts.conf seperti pada kode dibawah ini.

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
Include conf/extra/vhosts.conf

Setelah itu, kita aktifkan service httpd menggunakan perintah berikut:

sudo systemctl enable httpd
sudo systemctl start httpd

Ujicoba VirtualHost

Setelah VirtualHost dibuat dan service httpd diaktifkan, selanjutnya kita buat file index.html pada direktori /var/www/maucariapa.com/html/www dengan perintah `sudo nano /var/www/maucariapa.com/html/www/index.html, gunakan kode berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Welcome to Apache on Arch Linux</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f0f0;
            color: #333;
            text-align: center;
            margin: 0;
            padding: 0;
        }
        .container {
            padding: 50px;
        }
        h1 {
            color: #007acc;
        }
        p {
            font-size: 18px;
        }
        footer {
            margin-top: 50px;
            color: #777;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>It works!</h1>
        <p>Welcome to Apache on Arch Linux. This is the default web page.</p>
        <p>If you see this page, the Apache web server is successfully installed and working.</p>
    </div>
    <footer>
        <p>Apache Server on Arch Linux</p>
    </footer>
</body>
</html>

Buka alamat 52.77.90.107 di browser, maka akan tampil halaman index.html yang telah dibuat sebelumnya sebagai halaman utamanya.

screen shot 2024 09 09 at 19.55.48

Tampilan diatas menunjukkan semua konfigurasi Apache beserta VirtualHost berjalan dengan baik tanpa kendala apapun.

Instalasi PHP

Setelah instalasi Apache berhasil, selanjutnya kita akan lakukan instalasi PHP di Arch Linux. Gunakan perintah berikut:

sudo pacman -S php php-fpm

Setelah terinstal, buka httpd.conf menggunakan perintah sudo nano /etc/httpd/conf/httpd.conf dan tambahkan baris kode berikut ini.

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost"
</FilesMatch>

Setelah ditambahkan, mulai ulang service Apache dan mulai service PHP-FPM, gunakan perintah berikut.

sudo systemctl restart httpd
sudo systemctl enable php-fpm
sudo systemctl start php-fpm

Buat info.php

Setelah berhasil, buat file info.php menggunakan perintah nano, sudo nano /var/www/maucariapa.com/html/www/info.php, gunakan kode berikut.

<?php
phpinfo();
?>

Buka alamat 52.77.90.107/info.php di browser, maka akan tampil halaman informasi PHP beserta modul-modul yang telah terinstal.

screen shot 2024 09 09 at 20.15.55

Versi PHP yang terinstal secara default pada Arch Linux yaitu PHP 8.3.11 -1, atau dikenal dengan PHP 8.3. Versi PHP ini nantinya akan dijadikan acuan jika berencana menggunakan WordPress. Tentunya versi PHP dan modul-modul yang diperlukan oleh WordPress harus sesuai.

Instalasi MariaDB

Untuk menginstal MariaDB (alternatif MySQL), gunakan perintah sudo pacman -S mariadb, ketik Y untuk melanjutkan.

Setelah terinstal, Inisialisasi MariaDB menggunakan perintah berikut.

sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Aktifkan service MariaDB menggunakan perintah:

sudo systemctl enable mariadb
sudo systemctl start mariadb

Langkah selanjutnya, melakukan konfigurasi pada MariaDB.

sudo mysql_secure_installation

Ikuti petunjuk seperti yang tampil pada layar.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): <tekan enter>
Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] Y
New password: <isi password>
Re-enter new password: <pastikan isi password sama dengan yang atas>
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

Proses instalasi dan inisialisasi MariaDB telah berhasil dilakukan.

Instalasi SSL pada LAMP

SSL diperlukan jika situs Anda akan digunakan untuk jangka panjang, misalnya digunakan sebagai website untuk membuat artikel menggunakan WordPress, tentunya Anda akan sangat memerlukan SSL untuk keamanan dan kenyamanan pembaca, hal ini juga menjadi syarat tidak tertulis agar situs kita muncul di pencarian Google. SSL dikategorikan sebagai faktor peringkat (ranking signal) dalam algoritme pencarian Google.

Siapkan domain

Jika kita ingin menautkan domain ke IP server kita, maka kita memerlukan sebuah domain, Anda dapat memesan domain di penyedia lokal seperti IDwebhost, IDCloudHost, ataupun penyedia internasional seperti GoDaddy atau penyedia layanan lainnya.

Kami sendiri membeli domain mclab.my.id dari IDwebhost, dengan harga domain yang terjangkau.

Tambahkan IP ke domain

Untuk menautkan domain dan alamat IP dari server Arch, kita dapat menambahkan A record pada pengaturan DNS, isi alamat IP dengan IP server kita, nama host dapat dikosongkan. Anda dapat membuatnya pada DNS domain Anda, misalnya Anda menggunakan CloudFlare atau Route 53. Atau disediakan oleh penyedia layanan domain.

screen shot 2024 09 09 at 21.29.19

Klik tombol Create records untuk menyimpan pengaturan. Record yang dibuat akan ditambahkan ke domain kita.

screen shot 2024 09 09 at 21.31.22

Tambahkan juga record www jika ingin menggunakan www.

screen shot 2024 09 09 at 23.02.57

Selanjutnya periksa di https://www.whatsmydns.net untuk memeriksa apakah propagasi atau perubahan sudah dilakukan atau belum. Propagasi ini biasanya berkisar antara hitungan menit hingga 24 jam tergantung penyedia domain dan hosting.

screen shot 2024 09 09 at 23.15.45

Tanda menandakan propagasi telah berhasil, sedangkan tanda menunjukkan bahwa propagasi masih dalam proses.

Tambahkan domain ke VirtualHost

Sambil menunggu, ubah ServerAlias pada vhosts.conf menggunakan perintah sudo nano /etc/httpd/conf/extra/vhosts.conf.

Ubah ServerName dari localhost menjadi mclab.my.id, Anda juga dapat menambahkan ServerAlias jika ingin menggunakan www. Tambahkan ServerAlias www.mclab.my.id seperti pada baris kode berikut.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/var/www/maucariapa.com/html/www"

    ServerName mclab.my.id
    ServerAlias www.mclab.my.id                                

    ErrorLog "/var/log/httpd/default-error_log"
    CustomLog "/var/log/httpd/default-access_log" common
</VirtualHost>

Setelah propagasi selesai, kita dapat membuka domain kita di browser, misalnya saya membuka http://mclab.my.id.

screen shot 2024 09 09 at 22.40.57

Aktifkan modul mod_ssl & rewrite

Sebelum menginstal SSL, kita perlu mengaktifkan modul mod_ssl di httpd.conf, gunakan perintah sudo nano /etc/httpd/conf/httpd.conf.

Ubah dari:

#LoadModule ssl_module modules/mod_ssl.so
#LoadModule rewrite_module modules/mod_rewrite.so

Menjadi:

LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so

Mulai ulang service Apache menggunakan perintah berikut:

sudo systemctl restart httpd

Pasang Let’s Encrypt SSL

Let’s Encrypt merupakan SSL gratis yang dapat digunakan siapa saja, berlaku selama 90 hari dan dapat diperpanjang secara otomatis.

Untuk mengaktifkan SSL Let’s Encrypt di Arch Linux, kita harus menginstal certbot terlebih dahulu, menggunakan perintah sudo pacman -S certbot certbot-apache.

Gunakan perintah berikut untuk menginstal SSL pada domain kita.

sudo certbot --apache -d mclab.my.id -d www.mclab.my.id

Ikuti petunjuk yang ada di layar.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): (masukkan alamat email Anda)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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: N

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mclab.my.id/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mclab.my.id/privkey.pem
This certificate expires on 2024-12-08.
These files will be updated when the certificate renews.

Deploying certificate
Successfully deployed certificate for mclab.my.id to /etc/httpd/conf/extra/vhosts-le-ssl.conf
Successfully deployed certificate for www.mclab.my.id to /etc/httpd/conf/extra/vhosts-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://mclab.my.id and https://www.mclab.my.id

NEXT STEPS:
- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Perintah yang diatas adalah untuk mendapatkan sertifikat SSL/TLS dari Let’s Encrypt menggunakan Certbot. Berikut penjelasannya:

  • sudo: Menjalankan perintah dengan hak akses superuser (root). Ini diperlukan karena Certbot perlu mengakses file konfigurasi server dan mungkin melakukan perubahan pada sistem.
  • certbot: Nama alat yang digunakan untuk mendapatkan dan memperbarui sertifikat SSL/TLS dari Let’s Encrypt.
  • --apache: Opsi ini memberi tahu Certbot bahwa Anda ingin menggunakan plugin Apache. Plugin ini akan mengonfigurasi server web Apache secara otomatis untuk menggunakan sertifikat yang baru saja didapatkan.
  • -d mclab.my.id: Opsi ini menentukan nama domain pertama yang akan diamankan dengan sertifikat SSL/TLS. Dalam hal ini, domain utama adalah mclab.my.id.
  • -d www.mclab.my.id: Opsi ini menentukan nama domain tambahan (subdomain) yang juga akan diamankan dengan sertifikat yang sama. Dalam hal ini, subdomain www.mclab.my.id akan termasuk dalam sertifikat yang sama dengan domain utama.

Secara keseluruhan, perintah ini akan meminta Certbot untuk mendapatkan sertifikat SSL/TLS dari Let’s Encrypt dan mengonfigurasi server Apache untuk menggunakannya untuk domain mclab.my.id dan www.mclab.my.id.

Jika SSL berhasil terpasang, browser akan menampilkan alamat yang memiliki tanda gembok. Tanda ini menandakan bahwa domain kita sudah menggunakan HTTPS (port 443).

screen shot 2024 09 09 at 23.04.43

Buat service untuk memperpanjang SSL secara otomatis

Kita dapat membuat scheduler untuk membuat SSL dapat diperpanjang secara otomatis, buat service systemd menggunakan perintah sudo nano /etc/systemd/system/certbot-renew.service. Tambahkan kode berikut:

[Unit]
Description=Certbot Renewal

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --quiet

Selanjutnya, buat timernya menggunakan perintah sudo nano /etc/systemd/system/certbot-renew.timer, yang berisi kode:

[Unit]
Description=Run certbot every 12 hours

[Timer]
OnBootSec=10min
OnUnitActiveSec=12h

[Install]
WantedBy=timers.target

Reload systemd agar mengenali service yang telah kita buat, gunakan perintah:

sudo systemctl daemon-reload

Aktifkan service yang telah kita buat sebelumnya, gunakan perintah:

sudo systemctl enable --now certbot-renew.timer

Periksa apakah service sudah berjalan dengan baik atau belum. gunakan perintah:

sudo systemctl status certbot-renew.timer

Aktifkan HTTP/2

Secara default Apache hanya menggunakan protokol HTTP/1.1, bukan HTTP/2 yang lebih modern dan aman. Gunakan perintah curl -I https://mclab.my.id untuk memeriksa jenis protokol yang aktif.

HTTP/1.1 200 OK
Date: Mon, 09 Sep 2024 16:18:27 GMT
Server: Apache/2.4.62 (Unix) OpenSSL/3.3.2
Last-Modified: Mon, 09 Sep 2024 12:53:47 GMT
ETag: "431-621af3f71f843"
Accept-Ranges: bytes
Content-Length: 1073
Content-Type: text/html

Untuk mengaktifkan HTTP/2, gunakan perintah sudo nano /etc/httpd/conf/httpd.conf dan cari baris berikut:

#LoadModule http2_module modules/mod_http2.so

Ubah menjadi:

LoadModule http2_module modules/mod_http2.so

Selanjutnya, buka vhosts-le.conf menggunakan perintah sudo nano /etc/httpd/conf/extra/vhosts-le-ssl.conf, tambahkan baris kode yang ditandai warna merah:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    DocumentRoot "/var/www/maucariapa.com/html/www"

    ServerName mclab.my.id
    ServerAlias www.mclab.my.id

    <IfModule http2_module>
         Protocols h2 http/1.1
    </IfModule>

    ErrorLog "/var/log/httpd/default-error_log"
    CustomLog "/var/log/httpd/default-access_log" common

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mclab.my.id/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mclab.my.id/privkey.pem
</VirtualHost>
</IfModule>

Mulai ulang service Apache dengan perintah sudo systemctl restart httpd. cek dengan perintah curl -I https://mclab.my.id untuk mengecek apakah HTTP/2 sudah aktif atau belum.

HTTP/2 200 
last-modified: Mon, 09 Sep 2024 12:53:47 GMT
etag: "431-621af3f71f843"
accept-ranges: bytes
content-length: 1073
content-type: text/html
date: Mon, 09 Sep 2024 16:24:47 GMT
server: Apache/2.4.62 (Unix) OpenSSL/3.3.2

Instalasi WordPress

Untuk menginstal WordPress, pertama-tama, hapus dulu dua file yang telah kita buat sebelumnya yaitu index.html dan info.php dengan perintah berikut:

sudo rm /var/www/maucariapa.com/html/www/index.html
sudo rm /var/www/maucariapa.com/html/www/info.php

Instal modul PHP yang diperlukan

Instal modul php-gd dan php-intl menggunakan perintah sudo pacman -S php-gd php-intl. Untuk modul lainnya dapat diaktifkan secara manual dari php.ini menggunakan perintah sudo nano /etc/php/php.ini, hapus tanda ; pada kode yang diberi warna merah pada baris kode berikut:

extension=bcmath
;extension=bz2
extension=calendar
extension=curl
;extension=dba
;extension=enchant
extension=exif
;extension=ffi
;extension=ftp
;extension=gd
;extension=gettext
;extension=gmp
extension=iconv
;extension=intl
;extension=ldap
extension=mysqli
;extension=odbc
;zend_extension=opcache
;extension=pdo_dblib
;extension=pdo_mysql
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=pspell
;extension=shmop
;extension=snmp
extension=soap
;extension=sockets
;extension=sodium
;extension=sqlite3
;extension=sysvmsg
;extension=sysvsem
;extension=sysvshm
extension=tidy
;extension=xsl
extension=zip

Mulai ulang service Apache dan PHP-FPM menggunakan perintah:

sudo systemctl restart httpd
sudo systemctl restart php-fpm

Buat database

Sebelum mengunduh WordPress, ada baiknya kita membuat database terlebih dahulu, sehingga nantinya tidak menemukan kendala ketika menginstal WordPress. Masuk ke MariaDB menggunakan perintah sudo mariadb -p, masukkan kata sandi yang sudah di set pada saat instalasi MariaDB.

MariaDB [(none)]> create database wordpressdb;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> grant all privileges on wordpressdb.* to 'root'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> quit

Unduh WordPress

Selanjutnya unduh file wordpress.zip pada direktori /tmp menggunakan perintah curl -O https://wordpress.org/latest.zip. Progresnya akan tampil seperti dibawah ini.

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24.9M  100 24.9M    0     0  6638k      0  0:00:03  0:00:03 --:--:-- 6636k

Setelah diunduh, ekstrak menggunakan perintah unzip latest.zip. Kemudian salin semua file dan direktori dari /wordpress menggunakan perintah sudo cp -R wordpress/. /var/www/maucariapa.com/html/www.

Ubah kepemilikan direktori www dari root ke http menggunakan perintah sudo chown -R http:http /var/www/maucariapa.com/html/www.

Ikuti langkah-langkah instalasi WordPress.

Buka domain kita di browser, pilih bahasa.

screen shot 2024 09 09 at 23.59.22

Masukkan nama database, nama pengguna dan kata sandi yang telah dibuat pada langkah sebelumnya.

screen shot 2024 09 09 at 23.59.31
screen shot 2024 09 09 at 23.59.58

Selanjutnya, isi judul situs, nama pengguna, dan email.

screen shot 2024 09 10 at 00.05.40

Klik install WordPress, setelah selesai. lakukan login dengan mengunjungi https://namadomain/wp-login.

screen shot 2024 09 10 at 00.06.06

Setelah login berhasil, dasbor WordPress akan tampil di layar.

screen shot 2024 09 10 at 00.06.29

Beberapa modul tidak terpasang

Beberapa modul mungkin tidak terpasang, seperti pada gambar dibawah ini.

screen shot 2024 09 10 at 00.07.12

Aktifkan dengan mengedit php.ini menggunakan perintah sudo nano /etc/php/php.ini, aktifkan modul berikut:

extension=gd
extension=intl

Khusus untuk modul php-imagick, kita harus menginstalnya terlebih dahulu kemudian menyisipkannya ke file php.ini.

sudo pacman -S php-imagick
resolving dependencies...
:: There are 2 providers available for libltdl:
:: Repository ec2
   1) libtool
:: Repository core
   2) libtool

Enter a number (default=1): 1

:: There are 10 providers available for ttf-font:
:: Repository extra
   1) gnu-free-fonts  2) noto-fonts  3) ttf-bitstream-vera  4) ttf-croscore  5) ttf-dejavu
   6) ttf-droid  7) ttf-ibm-plex  8) ttf-input  9) ttf-liberation  10) ttf-mona-sans

Enter a number (default=1): 1
looking for conflicting packages...
warning: dependency cycle detected:
warning: harfbuzz will be installed before its freetype2 dependency

Packages (28) cairo-1.18.2-1  fftw-3.3.10-7  fontconfig-2:2.15.0-2  freetype2-2.13.3-1
              fribidi-1.0.15-1  gnu-free-fonts-20120503-8  graphite-1:1.3.14-4  harfbuzz-9.0.0-1
              imagemagick-7.1.1.38-2  jbigkit-2.1-8  lcms2-2.16-1  libjpeg-turbo-3.0.3-1
              liblqr-0.4.3-1  libpng-1.6.43-1  libraqm-0.10.1-2  libtiff-4.6.0-6
              libtool-2.4.6+42+gb88cebd5-15  libx11-1.8.10-1  libxau-1.0.11-3  libxcb-1.17.0-1
              libxdmcp-1.1.5-1  libxext-1.3.6-1  libxrender-0.9.11-2  lzo-2.10-5
              pixman-0.43.4-1  xcb-proto-1.17.0-2  xorgproto-2024.1-2  php-imagick-3.7.0-8

Total Download Size:   16.45 MiB
Total Installed Size:  72.89 MiB

:: Proceed with installation? [Y/n] Y

Setelah terpasang, sisipkan kode berikut kedalam file php.ini menggunakan perintah yang sama dengan sebelumnya.

extension=imagick

Setelah selesai, mulai ulang service Apache dan PHP-FPM.

sudo systemctl restart httpd
sudo systemctl restart php-fpm

Permalink error

Jika permalink menampilkan kode error 404, periksa modul rewrite dan headers apakah sudah diaktifkan atau belum, gunakan perintah sudo nano /etc/httpd/conf/httpd.conf, cari dan hapus tanda # pada mod_headers dan mod_rewrite.

LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so

Jika telah selesai, mulai ulang service Apache dan PHP-FPM.

Penutup

Dengan mengikuti langkah-langkah di atas, Anda telah berhasil menginstal dan mengonfigurasi LAMP di sistem Arch Linux Anda. LAMP adalah fondasi yang kuat untuk hosting aplikasi web seperti WordPress, Joomla, atau proyek kustom lainnya. Mengelola server berbasis Linux memberi Anda kontrol penuh atas lingkungan hosting, memastikan keamanan, kecepatan, dan fleksibilitas sesuai kebutuhan Anda.


Kami dapat menghasilkan komisi dari produk atau layanan yang Anda beli menggunakan tautan dari situs web kami, selengkapnya.

Anda dapat mendukung situs ini agar tetap aktif dan terus memberikan dampak positif bagi pembaca.

Kritik, saran? Klik tombol



Artikel Terkait

Saran artikel ini dibuat oleh Kudatuli Project


Modem Orbit

Telkomsel Orbit adalah layanan internet rumah yang menggunakan modem WiFi dan paket data tanpa perlu berlangganan.

Leave a Reply

Your email address will not be published. Required fields are marked *