Jika Anda berencana untuk meng-host WordPress di Cloud Server, panduan ini akan sangat membantu Anda. LAMP adalah singkatan dari Linux, Apache, MariaDB dan perangkat lunak PHP yang digabungkan bersama yang dikenal sebagai LAMP stack.
Pro & Kontra memilih server web Apache daripada NGINX
- Kelebihan: Ini mendukung file .htaccess yang biasa digunakan oleh banyak Page Caching & Optimization. Ini adalah pilihan yang bagus untuk non-koder.
- Kontra: Performanya sedikit lebih rendah daripada NGINX tetapi dapat dikelola menggunakan APO. Untuk situs dengan trafik tinggi, LEMP stack adalah pilihan terbaik.
Ikuti 3 langkah ini dan tonton videonya. Butuh bantuan? Hubungi saya. 😊
Sekarang sebelum Anda memulai, berikut tip singkatnya. Gunakan Search and Replace Extension untuk mengubah
Kiat hemat waktu bagi pengguna Google Chrome.example.com
secara massal ke domain Anda sendiri di halaman web ini.

Bagian A: Menjaga Nameserver Cloudflare tetap aktif
Kami akan menggunakan Cloudflare DNS untuk mendapatkan sertifikat Let’s Encrypt Wildcard SSL. Selesaikan langkah ini terlebih dahulu untuk menikmati migrasi zero-downtime.
Periksa Nameserver Saat Ini
- Temukan Nameserver aktif Anda di https://www.whatsmydns.net/#NS/example.com
- Jika Anda melihat menggunakan NS default Hosting atau Domain registrar Anda sebelumnya, maka Anda harus mengganti dengan Cloudflare.
- Belajar cara menggunakan DNS Cloudflare
Bagian B: Siapkan Server Ubuntu Server 22.04 LTS

1. Daftar Vultr untuk mendapatkan $100 Kredit gratis (Berlaku selama 14 hari)
Sebagai seseorang yang telah mencoba begitu banyak perusahaan server Cloud, pengalaman saya mengatakan bahwa Anda tidak bisa salah dengan Vultr. Orang-orang ini tulus dan peduli dalam hal dukungan dan layanan.

⚡ Kinerja
- AMD EPYC™ Generasi ke-3
- NVME / SSD
- CPU hingga 4 GHz
- Kecepatan Jaringan Hingga 5Gbps
- Pusat data di Amerika, Eropa, Asia, Austraillia
- IPV6 siap
💡 Fitur
- Dasbor Ramah Pemula
- Sekali klik ke Snapshot
- Pencadangan Otomatis (Berbayar)
- Firewall Awan Gratis
- Perlindungan DDoS (Berbayar)
- 100% Virtualisasi KVM
⚙ Dukungan
- PayPal/Kartu
- Dukungan Tiket 24/7
- Dokumentasi
2. Deloy Server Baru
Cukup klik pada tombol plus untuk memulai

3. Pilih jenis Server
Pilih Cloud Compute untuk CPU bersama dengan harga terjangkau.

Selanjutnya, Anda perlu memilih CPU & Storage Technology, Anda dapat memilih “AMD High Performance”.

4. Pilih Lokasi Server
Vultr menawarkan server di empat benua. Untuk latensi terendah dan kinerja terbaik, Anda harus selalu memilih wilayah yang paling dekat dengan audiens Anda.

Misalnya, jika 99% lalu lintas berasal dari Asia, pilih wilayah terdekat – Singapore.
Asia
- Mumbai, India
- Delhi NCR, India
- Bengaluru, India
- Singapore, Singapore
- Tokyo, Japan
- Seoul, South Korea
America
- Miami, United States
- Atlanta, United States
- Chicago, United States
- Dallas, United States
- Honolulu, United States
- Los Angeles, United States
- Mexico City, Mexico
- New York (NJ), United States
- Seattle, United States
- Silicon Valley, United States
- Toronto, Canada, São Paulo
Europe
- Stockholm, Sweden
- London, United Kingdom
- Amsterdam, Netherlands
- Frankfurt, Germany
- Madrid, Spain
- Paris, France
- Warsaw, Poland
Australlia
- Sydney, Australlia
- Melbourne, Australia
5. Pilih Gambar Server > Sistem Operasi > Ubuntu 22.04 LTS x64

Dukungan jangka panjang (LTS) adalah kebijakan manajemen siklus hidup produk di mana rilis perangkat lunak komputer yang stabil dipertahankan untuk jangka waktu yang lebih lama daripada edisi standar.

6. Pilih Ukuran Server

Paket $6/bulan akan menjadi titik awal yang bagus untuk blog baru. Anda dapat meningkatkan kapan saja sesuai kebutuhan.
Tip: Jika Anda bermigrasi, periksa Total ukuran instalasi di Info kesehatan situs.

7. Aktifkan IPV6, Cadangan

8. Tambahkan kunci SSH
Ini adalah langkah opsional yang direkomendasikan untuk meningkatkan keamanan.

- Klik tombol Add New untuk menambahkan kunci SSH baru untuk mengirimkan 🔒Kunci Publik Anda.
- Hasilkan Kunci menggunakan metode di bawah ini sesuai OS Anda.

- Unduh aplikasi PuTTy.
- Cari PuTTygen di menu Start
- Klik pada tombol Generate dan arahkan pointer mouse
- Salin kunci publik dan berikan ke Vultr
- Masukkan kata sandi kunci
- Simpan 🔑Kunci Pribadi di lokasi teraman.
- Ini bisa digunakan untuk login ke SSH atau SFTP.

- Jalankan:
ssh-keygen -t rsa
. Untuk kunci 4096-bit yang lebih aman, jalankan:ssh-keygen -t rsa -b 4096
- Tekan enter ketika ditanya di mana Anda ingin menyimpan kunci (ini akan menggunakan lokasi default).
- Masukkan frasa sandi untuk kunci Anda.
- Jalankan
cat ~/.ssh/id_rsa.pub
– ini akan memberi Anda kunci dalam format yang tepat untuk ditempelkan ke panel kontrol. - Pastikan Anda membuat cadangan file
~/.ssh/id_rsa
. Ini tidak dapat dipulihkan jika hilang.
Pilih kunci SSH Anda
Mengikuti langkah-langkah ini akan melampirkan kunci publik Anda ke Instance baru Anda. Kemudian, Anda akan dapat masuk ke SSH menggunakan kata sandi Plain Text dan kunci SSH.

9. Tautkan aturan Firewall Web ke Instansi Server

- Klik Manage dan buat Grup Firewall baru.
- Izinkan port TCP 22 untuk SSH. 80 untuk HTTP dan 443 HTTPS untuk aturan IPV4 dan IPV6 keduanya.
- Setelah selesai, tautkan grup Firewall ke Instance Anda.


10. Masukkan Nama Host dan label klik Deploy Now

Now, you will see installing in the progress

11. Buka halaman Instance Baru
Salin alamat IP, nama pengguna dan kata sandi. Port default Anda adalah 22.

12. Nonaktifkan Login Kata Sandi
Untuk alasan keamanan, direkomendasikan untuk menonaktifkan autentikasi kata sandi dan hanya mengizinkan autentikasi berbasis kunci.
- Edit berkas konfigurasi nano
/etc/ssh/sshd_config
- Temukan (CTRL + W) dan cari PasswordAuthentication
- Ubah nilai dari ya ke tidak
- Untuk menyimpan tipe, CTRL + O
- Mulai ulang layanan SSH menggunakan perintah
sudo service ssh restart

Mulai waktu berikutnya, Anda dapat menggunakan SSH melalui key saja seperti yang ditunjukkan dalam video.
Untuk Linux atau Mac, gunakan Terminal dengan perintah seperti ini
ssh root@192.168.1.1 -p 22 -i id_rsa
Langkah 13. Nonaktifkan UFW
Ketika Anda menerapkan instance baru di VULTR, instance tersebut dilengkapi dengan UFW (Uncomplicated Firewall) yang diaktifkan yang membuat semua port diblokir kecuali port SSH 22. Ini dapat mengembalikan ERR_CONNECTION_REFUSED
Error di browser. Untuk memperbaikinya, saya sarankan agar UFW dinonaktifkan.
ufw disable
Sekarang, saya akan mempercepat proses awal untuk menerapkan WordPress pada tumpukan LAMP.
Bagian C. Menyebarkan WordPress pada LAMP Stack
1. Memperbarui repositori
Ketik perintah di bawah ini dan tekan tombol enter
sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot
atau
wget -qO update https://dl.gulshankumar.net/update && chmod +x update
Lain kali, selalu gunakan perintah pintasan di bawah ini untuk memperbarui.
./update
2. Instal MariaDB dengan keamanan
Login lagi dan masukkan perintah berikut
sudo apt install mariadb-server -y && sudo mysql_secure_installation
Jawab pertanyaan di bawah ini
- Enter current password for root (enter for none): Нажмите клавишу Enter
- Switch to unix_socket authentication [Y/n]: Введите n и нажмите клавишу Enter.
- Set root password? [Y/n]: Нажмите клавишу Enter.
- New password: Скопируйте надежный пароль из генератора паролей Dashlane. Чтобы вставить пароль в консоль SSH, щелкните правой кнопкой мыши и нажмите клавишу Enter. Пароль не будет виден на экране.
- Re-enter new password: Щелкните правой кнопкой мыши и снова нажмите клавишу Enter.
Setelah kata sandi berhasil ditetapkan, Anda akan melihat
Password updated successfully! Reloading privilege tables.. ... Success!
Juga, Anda perlu menjawab pertanyaan-pertanyaan berikut.
- Remove anonymous users? [Y/n]: Снова нажмите клавишу Enter.
- Disallow root login remotely? [Y/n]: Снова нажмите клавишу Enter.
- Remove test database and access to it? [Y/n]: Снова нажмите клавишу Enter.
- Reload privilege tables now? [Y/n]: Снова нажмите клавишу Enter.
3. Buat Database baru untuk WordPress
Login ke MySQL, tekan tombol enter ketika meminta kata sandi.
mysql -u root -p
Buat Database baru, dan berikan hak istimewa untuk menggunakan pengguna dengan kata sandi. Di sinilah WordPress menyimpan semua informasi posting, halaman, tema, plugin, dll.
create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;
Di mana Anda …
basis data adalah wordpress
nama pengguna adalah gulshan
kata sandi adalah 5pY8CKJxDRJEGQNkX7
Tip: Pertimbangkan untuk menggunakan kredensial login yang unik
4. Instal PHP 8.2, Apache2 dan atur Izin
sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/
Mengubah Konfigurasi PHP
Sebagian besar tema dan plugin mewah membutuhkan konfigurasi PHP kelas atas untuk dapat berjalan. Oleh karena itu, kita harus melakukan perubahan ini.
sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart
5. Instal Sertifikat SSL Wildcard Let’s Encrypt
Buat file cloudflare.ini
di dalam direktori /root/.secrets/
.
mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini
Tambahkan kode di bawah ini dan simpan menggunakan CTRL + O dan keluar menggunakan CTRL + X
dns_cloudflare_email = "your-cloudflare-email@example.com"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"
Temukan email Cloudflare dan Global API key Anda di “Profil Saya” > Token API > Global API Key
chmod 0400 /root/.secrets/cloudflare.ini
Instal Certbot dan DNS Authenticator sesuai dengan OS dan server web HTTP
apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare
Dapatkan Sertifikat SSL Wildcard
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01
Atur Pembaruan Otomatis menggunakan Cron Job
- Jenis
crontab -e
- Ketik 1 untuk nano editor
- Masukkan perintah di bawah ini dan simpan
0 0 * * * /etc/init.d/apache2 reload >/dev/null 2>&1
Uji pembaruan
certbot renew --dry-run
Aktifkan modul-modul yang berguna ini
a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2
6. Buat Direktori Aplikasi untuk setiap situs WordPress yang ingin Anda instal
mkdir -p /var/www/example.com/public
Ini akan menjadi jalur Akar Dokumen Anda dalam berkas Konfigurasi Apache Anda. Alasan membuat example.com di dalam www adalah untuk menjaga agar setiap situs tetap teratur. Kedua, saya juga membuat direktori publik dengan tujuan untuk menyimpan semua file inti WordPress di sana tetapi wp-config.php
satu tingkat ke atas (/var/www/example.com/
).
7. Membuat Konfigurasi Apache2
Ini penting di mana Anda perlu mengkonfigurasi domain Anda, bagaimana Apache2 harus menangani permintaan HTTP Anda.
Hapus file konfigurasi blok server default Apache2
rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars
Sekarang, Buat file konfigurasi blok server baru. Anda perlu melakukan langkah ini setiap kali Anda ingin menambahkan WordPress baru di server yang sama.
Harap ganti example.com
dengan domain sendiri dan jangan lupa untuk mengakhiri nama file konfigurasi dengan ekstensi .conf. Jika tidak, maka tidak akan berfungsi.
cd /etc/apache2/sites-available/
nano example.com.conf
- Ganti
example.com
dengan domain sendiri - Masukkan kode di bawah ini dan tekan ctrl+o untuk menyimpan dan ctrl+x untuk keluar.
##############################################################
#
# CATATAN: Mohon lakukan pencarian dan ganti example.com menjadi domain sendiri.
#
##############################################################
# Kami akan memaksa HTTPS non-www
# Jika Anda menginginkan HTTPS www, harap pertahankan https://www.example.com/ di baris terakhir.
# Atau Anda mungkin akan menghadapi masalah pengalihan ulang.
<VirtualHost *:80>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Protocols h2 h2c http/1.1
DirectoryIndex index.php index.html
# Recommended for Cloudflare users
# RemoteIPHeader X-Forwarded-For
# Jalur Akar Dokumen (Perhatikan jalur ini untuk menghindari 404)
DocumentRoot /var/www/example.com/public
# Jalur Log adalah /var/log/apache2/example.com-access.log
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
# Let's Encrypt SSL
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# Izinkan penggunaan file .htaccess untuk mengganti konfigurasi
<Directory /var/www/example.com/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Blokir eksekusi PHP di dalam Direktori Unggahan
<Directory /var/www/example.com/public/wp-content/uploads>
<Files *.php>
deny from all
</Files>
</Directory>
# Lindungi wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# HTTP Auth untuk keamanan tambahan
# Jika Anda menginginkan HTTP Auth untuk halaman Login WordPress, maka pertimbangkan untuk menghapus blok kode ini.
# Jika Anda melakukannya, Anda juga harus membuat file .htpasswd.
# <Files wp-login.php>
# AuthName "Admins Only"
# AuthUserFile /var/www/.htpasswd
# AuthType basic
# require user gulshan
# <RequireAny>
# Require ip 127.0.0.1
# Require valid-user
# </RequireAny>
# </Files>
# Blokir XML-RPC untuk mencegah Serangan DDoS.
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# Menangani eksekusi PHP
<FilesMatch ".php$">
SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
To save, press CTRL+O and Enter key. Then, exit nano editor using command CTRL+X.
Untuk mengaktifkan blokir server, masukkan perintah
Sebelum menjalankan perintah di bawah ini, harap ganti example.com
ke domain sendiri.
a2ensite example.com.conf
Konfigurasi pengujian (opsional)
apache2 -t
Mulai ulang dan perbarui
service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y
8. Instal file WordPress
Unduh file WordPress di direktori /var/www/example.com/public/
dan atur izin.
cd /var/www/example.com/public/ && wget https://id.wordpress.org/latest-id_ID.tar.gz && tar -xvzf latest-id_ID.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf latest-id_ID.tar.gz wordpress && chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
Untuk memperbarui izin di masa mendatang, gunakan perintah di bawah ini. Ini akan mengatur www-data untuk semua yang ada di dalam direktori /var/www/
chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
9. Memperbarui DNS
Jika Anda meng-hosting WordPress secara lokal, ingin mem-bypass proxy atau ingin melakukan migrasi zero downtime, langkah ini berguna. Saya biasanya lebih suka dalam kasus area Dev WordPress Statis. 😉
- Ada dua cara untuk mengarahkan DNS. Jika Anda memigrasikan situs ke Vultr dan ingin mengujinya terlebih dahulu secara lokal, maka edit file host Anda dan arahkan ke sana.
Untuk Windows
- Pergi ke properti
C:\Windows\System32\drivers\etc\hosts
- Ubah izin “Keamanan” menjadi kontrol penuh untuk Nama Pengguna Anda saat ini
- Sekarang Anda dapat dengan bebas mengedit file host di bawah pengguna Sistem Anda dan menyimpannya.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com
Sebagai contoh, beginilah seharusnya tampilannya
Untuk Mac atau Linux
Anda dapat mengedit file host menggunakan perintah ini di bawah pengguna sudo.
sudo nano /etc/hosts
Memperbarui DNS dengan Cloudflare
- Jika semuanya terlihat sempurna dan Anda ingin membuat situs Anda hidup, Login ke Cloudflare DNS dan perbarui IP baru.
A | @ | IPV4 |
AAAA | @ | IPV6 |
CNAME | www | example.com |
di mana @ menunjukkan domain root example.com
9. Kunjungi nama domain Anda untuk menyiapkan WordPress
Jika Anda ingin menyimpan domain versi non-www untuk WordPress Anda maka kunjungi versi non-www selain www.
https://example.com
- Berikan kredensial login Basis Data untuk memulai Penyiapan WordPress
- Jalankan Instalasi
- Isi detail dasar Situs baru Anda dan Instal WordPress.
- Masuk ke WordPress
Hal-hal lain yang diperlukan
- Tingkatkan Memori Swap untuk menangani beban mendadak
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- Pastikan untuk menggunakan plugin Page Caching untuk menjaga beban server tetap terkendali. Karena ini adalah tumpukan LAMP, saya akan merekomendasikan Anda WP Fastest Cache.
- Selalu simpan cadangan.
- Gunakan Layanan plugin SMTP untuk mengirim email keluar WordPress jika tidak, Anda tidak akan dapat menerima tautan reset kata sandi, formulir kontak 7 pesan.
Akhirnya, instalasi WordPress telah selesai.
Saya sangat menghargai waktu berharga Anda dalam membaca artikel ini. Sampai jumpa di tutorial berikutnya!