WordPress adalah sebuah aplikasi opensource yang sangat populer digunakan sebagai mesin blog. Selain sebagai blog, WordPress juga digunakan sebagai sebuah CMS karena kemampuannya untuk dimodifikasi dan disesuaikan dengan kebutuhan penggunanya.

Pada artikel kali ini, penulis akan coba memberikan panduan langkah demi langkah untuk menginstall WordPress di Ubuntu 20.04 LTS.

Sebelum memulai, perlu diperhatikan syarat yang dibutuhkan untuk instalasi WordPress :

  • MYSQL 5.7 atau lebih tinggi
  • PHP Versi 7.4 atau lebih tinggi
  • HTTPS server

Penulis mengasumsikan pembaca sudah mememuhi syarat di atas.

Langkah 1 : Membuat Database dan User MYSQL untuk WordPress

Buat sebuah database pada MYSQL, yang akan menjadi tempat WordPress mengelola dan menyimpan informasi situs dan pengguna.

$~ sudo mysql 


CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Kemudian buat user MYSQL baru serta berikan akses penuh ke database wordpress.

CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'wordpresspassword';
GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';
FLUSH PRIVILEGES;
EXIT

Langkah 2 : Menginstall Ekstensi Tambahan untuk PHP

WordPress membutuhkan beberapa tambahan ekstensi PHP agar bisa bekerja secara optimal. Untuk menginstall ekstensi yang dibutuhkan silahkan ikuti perintah berikut ini.

sudo apt update
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

Langkah 3 : Konfigurasi Apache

Konfigurasi file virtual host untuk WordPress. Penulis menggunakan directive Alias alih-alih membuat file virtual host baru. Pembaca bisa menyesuaikan jika ingin membuat file virtual host baru. Bagian terpentingnya adalah pada bagian <Directory> and </Directory>, yang mana pada blok tersebut terdapat directive AllowOverride  yang akan memberi izin file .htaccess yang akan dibutuhkan oleh wordpress.

sudo vim /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html


        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined


        Alias "/wordpress" "/var/www/wordpress"
        <Directory /var/www/wordpress/>
                AllowOverride All
        </Directory>



</VirtualHost>

Selanjutnya mengaktifkan module rewrite apache untuk memanfatkan fitur permalink wordpress. Jika semua sudah dilakukan, lanjut untuk merestart apache agar semua perubahannya bisa diterapkan.

sudo a2enmod rewrite
systemctl restart apache2

Langkah 4 : Download Wordpress

Download compressed file wordpress dan kemudian extract file tersebut. Nantinya folder wordpress ini akan dipindahkan ke document root, agar server apache bisa membaca file wordpress dan kemudian menampilkan/menyajikannya kepada user.

cd /tmp/
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz

Selanjutnya membuat file .htaccess dan menduplikasi file wp-config-sample.php menjadi wp-config-sample.php. File wp-config-sample.php yang menjadi konfigurasi dasar untuk WordPress.

touch /tmp/wordpress/.htaccess
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Langkahnya berikut copy semua file yang ada di file wordpress ke dokumen root.

sudo cp -a /tmp/wordpress/. /var/www/wordpress

Langkah 5 : Konfigurasi Direktori WordPress

Sesuaikan permission untuk direktori WordPress agar apache bisa membaca file-file yang ada di folder dokumen root wordpress.

sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Langkah 6 : Menyiapkan File Konfigurasi WordPress

Di bagian ini akan langkah yang lebih dulu dilakukan adalah menyiapkan secrete keys untuk tujuan security saat akan memulai instalasi. Untuk mendapatkan keys tersebut, user dapat memanfaatkan secure generator yang disediakan oleh wordpress. Silahkan ikuti perintah berikut ini.

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Outputnya kurang lebih seperti ini.

define('AUTH_KEY',         '}B[d)u%$lL*{i!uB4zKApWhPre=ITL3KlNLH[EOOJn?9zgsbZq[[EI)zw.M>cpH!');
define('SECURE_AUTH_KEY',  '+>yPo/X{w}4W}x=|fU7gh8%bhe,zbX@od(pV)uDXaqpz/B6DE&3s{Wd5LD0[X[WB');
define('LOGGED_IN_KEY',    'SJPjq>j8|L:?2*C|pYr/@C)y/K[H@hG#:e=TSC-`Qf&yk/PRMtZf}m32h_m{Uw/G');
define('NONCE_KEY',        'MK=9j9Ob||l{-tG9Gw?`=Z6@$WKtB87hzRdC BW#X}>dH?h!f6qm7msf@jLlLac=');
define('AUTH_SALT',        '^#?hog.HM{)_1HJYd3Z|~U-^nsth~oKcB_6H}swL/EF.+2m+m4E]0I*V(T(vAn|4');
define('SECURE_AUTH_SALT', 'N:jM]n(rZ%41oU+tHvA6vGN=]++f_n:xz$>37esA~3Va,T!l:460Mp2@ IR;DDA-');
define('LOGGED_IN_SALT',   '-V}UmeuKN+hN=U+Ey#jqh,x&jIbac~B:j]$fTdWWjKN%m2Vc}1ZBDnTh):6eVGiL');
define('NONCE_SALT',       'r+pj}kw*UWqH8+^+^w^^M<F+8@S>]wgUAYM;Gm0d?Ks:}{;--@/O{mmDk*N?5IkD');

Kemudian edit file wp-config.php untuk menerapkan keys yang sudah didapatkan.

sudo vim /var/www/wordpress/wp-config.php

Perhatikan baris berikut.

...
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );
...

Silahkan dihapus dan kemudian gantikan dengan keys yang sudah didapatkan. Sehingga hasilnya menjadi seperti ini

...
define('AUTH_KEY',         '}B[d)u%$lL*{i!uB4zKApWhPre=ITL3KlNLH[EOOJn?9zgsbZq[[EI)zw.M>cpH!');
define('SECURE_AUTH_KEY',  '+>yPo/X{w}4W}x=|fU7gh8%bhe,zbX@od(pV)uDXaqpz/B6DE&3s{Wd5LD0[X[WB');
define('LOGGED_IN_KEY',    'SJPjq>j8|L:?2*C|pYr/@C)y/K[H@hG#:e=TSC-`Qf&yk/PRMtZf}m32h_m{Uw/G');
define('NONCE_KEY',        'MK=9j9Ob||l{-tG9Gw?`=Z6@$WKtB87hzRdC BW#X}>dH?h!f6qm7msf@jLlLac=');
define('AUTH_SALT',        '^#?hog.HM{)_1HJYd3Z|~U-^nsth~oKcB_6H}swL/EF.+2m+m4E]0I*V(T(vAn|4');
define('SECURE_AUTH_SALT', 'N:jM]n(rZ%41oU+tHvA6vGN=]++f_n:xz$>37esA~3Va,T!l:460Mp2@ IR;DDA-');
define('LOGGED_IN_SALT',   '-V}UmeuKN+hN=U+Ey#jqh,x&jIbac~B:j]$fTdWWjKN%m2Vc}1ZBDnTh):6eVGiL');
define('NONCE_SALT',       'r+pj}kw*UWqH8+^+^w^^M<F+8@S>]wgUAYM;Gm0d?Ks:}{;--@/O{mmDk*N?5IkD');
...

Langkah terpenting lainnya menyesuikan pengaturan untuk koneksi ke database. Pada file yang sama silahkan cari bagian berikut.

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Silahkan sesuaikan nama database, username untuk mengakses database, password database yang digunakan untuk autentikasi user, dan juga host database.

Langkah 7 : Menginstall Wordpress Melalui Web Browser

Langkah terakhir yaitu menyelesaikan instalasi wordpress melalui web browser. Silahkan akses Server melalui ip public ataupun domain yang sudah dipointing ke arah server Ubuntu untuk WordPress.

Image Description

Image Description

Jika sudah mengisi kolom yang disediakan, selanjutnya tap pada tombol Install WordPress. Jika sudah selesai, akan diminta untuk login ke halaman Admin/Dashboard WordPress.