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.
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.
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.
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.
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.
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.
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.
Tentukan storage
Langkah terakhir, yaitu menentukan storage. Masukkan jumlah storage (dalam GB) dan pilih jenis storage. Gunakan saja gp3 atau gp2 untuk jenis penyimpanan.
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.
Sebelum dimodifikasi, tampilan pada security group hanya terdapat dua value, yaitu port HTTP dan HTTPS saja.
Untuk menambahkan port baru, klik Edit inbound rules dan tambahkan port SSH (22) kedalam security group, setelah selesai, klik Apply untuk menerapkan perubahan.
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.
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.
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)
Setelah selesai, IP berhasil diasosiakan dengan Instance yang diinginkan.
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).
- Masukkan alamat IP statis yang telah dibuat sebelumnya (di AWS kita mengenalnya sebagai elastic IP).
- Masukkan nama pengguna
arch
pada koneksi SSH. - Masukkan port SSH yaitu port
22
. - Tekan Enter untuk menghubungkan.
Setelah terhubung, SSH akan menampilkan jendela server.
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.
Buat VirtualHost
Ketik perintah sudo nano /etc/httpd/conf/extra/vhosts.conf
dan masukkan config dibawah ini.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/usr/local/www/maucariapa.com/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 /usr/local/www/maucariapa.com/
menggunakan perintah:
sudo mkdir -p /usr/local/www/maucariapa.com/www
Ubah kepemilikan direktori www
dari root:root
menjadi http:http
menggunakan perintah sudo chown -R /usr/local/www/maucariapa.com/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 /usr/local/www/maucariapa.com/www
dengan perintah `sudo nano /usr/local/www/maucariapa.com/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.
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 /usr/local/www/maucariapa.com/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.
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.
Klik tombol Create records untuk menyimpan pengaturan. Record yang dibuat akan ditambahkan ke domain kita.
Tambahkan juga record www jika ingin menggunakan www.
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.
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 "/usr/local/www/maucariapa.com/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.
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 adalahmclab.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, subdomainwww.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).
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 "/usr/local/www/maucariapa.com/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 /usr/local/www/maucariapa.com/www/index.html
sudo rm /usr/local/www/maucariapa.com/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/. /usr/local/www/maucariapa.com/www
.
Ubah kepemilikan direktori www dari root ke http menggunakan perintah sudo chown -R http:http /usr/local/www/maucariapa.com/www
.
Ikuti langkah-langkah instalasi WordPress.
Buka domain kita di browser, pilih bahasa.
Masukkan nama database, nama pengguna dan kata sandi yang telah dibuat pada langkah sebelumnya.
Selanjutnya, isi judul situs, nama pengguna, dan email.
Klik install WordPress, setelah selesai. lakukan login dengan mengunjungi https://namadomain/wp-login.
Setelah login berhasil, dasbor WordPress akan tampil di layar.
Beberapa modul tidak terpasang
Beberapa modul mungkin tidak terpasang, seperti pada gambar dibawah ini.
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.
Artikel Terkait
Cara menghapus nomor ponsel dari aplikasi GetContact
April 17, 2023
Cara Mudah Unduh Video Dari Instagram Reels
January 5, 2022
Rekomendasi Layanan