Menambahkan Banyak Situs WordPress di VPS Ubuntu 14.04 – Mengotak-atik server memang harus memiliki kesabaran ekstra, terutama bagi saya sebagai orang yang tidak pernah mengenyam pendidikan formal tentang hal ini. Meskipun sebelumnya saya sudah berhasil membuat banyak situs (web) melalui apache virtual hosts dalam satu VPS, bukan berarti saya bisa lulus begitu saja saat ingin menambahkan banyak situs wordpress di VPS Ubuntu 14.04 yang saya miliki. Hal tersebut dikarenakan wordpress adalah salah satu jenis CMS yang pada saat pembuatan situsnya diperlukan proses instalalsi terlebih dahulu.
Pada intinya memang sama saja, namun pada prakteknya ada beberapa hal yang perlu untuk disesuikan seperti pada saat mengedit data di wp-config.php. Meskipun demikian, tutorial kali ini pasti tidak akan sulit untuk dipraktekan terutama bagi yang pernah mengotak-atik virtual hosts atau pernah melakukan instalasi wordpress di VPSnya.
Sebenarnya selain mengggunakan apache virtual hosts, anda juga bisa menggunakan nginx server blocks, tapi dalam artikel kali ini saya hanya akan fokus membahas virtual hosts apache with cms wordpress di server Ubuntu 14.04 LTS.
Persiapan :
- Pastikan anda sudah menginstall apache, mysql dan php (LAMP) di server ubuntu anda. (lihat cara install LAMP di Ubuntu 14.04 sebagai panduan instalasi LAMP).
- Pastikan anda memiliki lebih dari satu domain yang sudah diarahkan ke IP VPS (membuat A records) (lihat cara menghubungkan domain ke IP VPS atau lihat cara konfigurasi DNS dengan bind9 di Ubuntu server).
- Editor file dalam tutorial menggunakan nano editor. Silahkan install nano editor terlebih dahulu atau gunakan editor lain.
- Buatlah user linux baru dengan command :
adduser userlinux
Petunjuk Penggunaan :
- Karena melibatkan 2 domain yang berbeda, maka untuk mempermudah membedakan keduanya, saya beri warna merah dan biru.
- Ganti domain1.com dan domain2.com dengan nama domain yang anda miliki.
- Jika anda memiliki lebih dari dua domain, silahkan anda tambahkan dan sesuaikan saja.
Install WordPress Virtual Hosts di Ubuntu 14.04 :
- Download wordpress terlebih dahulu :
wget http://wordpress.org/latest.tar.gz
- Ekstrak file wordpress yang sudah anda download :
tar xzvf latest.tar.gz
- Sekarang saatnya beraksi dengan mysql database.
mysql -u root -p
- Buatlah databese baru untuk kedua situs tersebut :
CREATE DATABASE namadatabase1;
CREATE DATABASE namadatabase2;
- Buatlah user baru untuk kedua database diatas :
CREATE USER namauser1@localhost;
CREATE USER namauser2@localhost;
- Aturlah password untuk masing-masing user tersebut :
SET PASSWORD FOR namauser1@localhost= PASSWORD("passworduser1");
SET PASSWORD FOR namauser2@localhost= PASSWORD("passworduser2");
- Grant all privileges :
GRANT ALL PRIVILEGES ON namadatabase1.* TO namauser1@localhost IDENTIFIED BY 'passworduser1';
GRANT ALL PRIVILEGES ON namadatabase2.* TO namauser2@localhost IDENTIFIED BY 'passworduser2';
- Refresh MySQL’s privilege :
FLUSH PRIVILEGES;
- Keluar dari MySQL :
exit
- Buatlah databese baru untuk kedua situs tersebut :
- Buatlah direktori root baru untuk situs-situs yang anda miliki. Dalam artikel ini saya hanya membuat dua direktori root. Silahkan sesuaikan saja jika anda mempunyai lebih banyak domain.
sudo mkdir -p /var/www/domain1.com/
sudo mkdir -p /var/www/domain2.com/
- Rubah hak akses, hak pengguna dan hak group :
cd /var/www sudo chown www-data:www-data * -R sudo usermod -a -G www-data userlinux
Ganti userlinux dengan namauser yang anda buat di tahapan persiapan.
- Copy file wp-config-sample.php dan rename menjadi wp-config.php
cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php
- Copy semua file wordpress yang sudah anda download ke masing-masing direktori situs yang anda miliki :
sudo rsync -avP ~/wordpress/ /var/www/domain1.com/
sudo rsync -avP ~/wordpress/ /var/www/domain2.com/
- Edit wp-config.php pada masing-masing direktori situs supaya dapat terkoneksi dengan database yang sudah anda buat.
nano /var/www/domain1.com/wp-config.php
Edit pada bagian DB NAME, DB USER dan DB PASSWORD dan sesuaikan dengan 2 database yang tadi anda buat. Seperti berikut ini :
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'namadatabase1'); /** MySQL database username */ define('DB_USER', 'namauser1'); /** MySQL database password */ define('DB_PASSWORD', 'passworduser1');
nano /var/www/domain2.com/wp-config.php
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'namadatabase2'); /** MySQL database username */ define('DB_USER', 'namauser2'); /** MySQL database password */ define('DB_PASSWORD', 'passworduser2');
Simpan dengan CTRL+X, Y.
- Buatlah direktori baru untuk dijadikan sebagai tempat penyimpanan berbagai file pada masing-masing situs anda, seperti file gambar, musik, video dan lain sebagainya. Direktori baru ini akan menjadi sub dari direktori wp-content yang sudah tersedia secara default.
mkdir /var/www/domain1.com/wp-content/uploads
mkdir /var/www/domain2.com/wp-content/uploads
- Masukkan direktori baru tersebut ke dalam www-data :
sudo chown -R :www-data /var/www/domain1.com/wp-content/uploads
sudo chown -R :www-data /var/www/domain2.com/wp-content/uploads
Konfigurasi WordPress Virtual Hosts Ubuntu 14.04 :
- Buatlah file baru di dalam direktori apache2/sites-available untuk masing-masing situs anda. Pastikan nama file diakhiri .conf.
sudo nano /etc/apache2/sites-available/domain1.com.conf
Masukkan baris-baris berikut ini :
<VirtualHost *:80> ServerAdmin admin@domain1.com ServerName domain1.com ServerAlias www.domain1.com DocumentRoot /var/www/domain1.com/ <Directory /var/www/domain1.com/> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
sudo nano /etc/apache2/sites-available/domain2.com.conf
<VirtualHost *:80> ServerAdmin admin@domain2.com ServerName domain2.com ServerAlias www.domain2.com DocumentRoot /var/www/domain2.com/ <Directory /var/www/domain2.com/> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Jangan lupa save konfigurasi diatas seperti biasa dengan CTRL+X, Y.
- Install ekstra php module :
sudo apt-get install php5-gd
- Buat link simbolik :
sudo a2ensite domain1.com
sudo a2ensite domain2.com
- Restart apache2 :
service apache2 restart
- Saatnya melakukan instalasi wordpress melalui browser. Silahkan buka domain1.com dan domain2.com di browser anda. Anda akan menjumpai halaman wordpress installation seperti berikut ini :
Masukkan saja data-data yang diminta kemudian klik install wordpress untuk memulai proses instalasi.
Catatan :
Jika anda tidak menemukan halaman wordpress installation, kemungkinannya adalah anda tidak menyertakan .conf pada file /etc/apache2/sites-available/domain2.com.conf atau mungkin karena cache browser anda. Silahkan anda bersihkan terlebih dahulu.
Mengatur dan Merubah Permalinks WordPress Default
Jika anda adalah pengguna setia wordpress, anda pasti sudah tahu apa fungsi file .htaccess. Salah satunya adalah untuk merubah pengaturan permalinks yang secara default adalah nomor, sekarang bisa anda rubah ke post name. Dengan pengaturan permalinks ke post name ini diharapkan akan lebih memperkuat nilai SEO situs anda, sehingga nantinya akan banyak pengunjung berdatangan ke situs yang anda miliki.
Sebelum membuat file .htaccess, anda harus enable rewrite module terlebih dahulu melalui command :
sudo a2enmod rewrite
Kemudian restart apache2 :
sudo service apache2 restart
Sekarang saatnya membuat file .htaccess untuk masing-masing situs :
touch /var/www/domain1.com/.htaccess
touch /var/www/domain2.com/.htaccess
Atur kepemilikan kedalam grup www-data :
sudo chown :www-data /var/www/domain1.com/.htaccess
sudo chown :www-data /var/www/domain2.com/.htaccess
Langkah terakhir, silahkan anda atur hak aksesnya :
chmod 664 /var/www/domain1.com/.htaccess
chmod 664 /var/www/domain2.com/.htaccess
Untuk merubah permalinks situs wordpress, silahkan anda atur di bagian setting -> permalinks, lalu pilih post name.