HHVM (HipHop Virtual Machine) adalah mesin virtual open source yang dikembangkan oleh Facebook, ini adalah kompiler JIT (just-in-time) untuk mengeksekusi program yang ditulis dalam PHP 5 (dan beberapa fitur PHP 7) dan bahasa Hack. Jika Anda ingin menjalankan HHVM di server Anda, Anda dapat menggunakan server web berbasis FastCGI di atas server web Nginx atau apache, atau Anda dapat menggunakan server web bawaan yang disebut "Proxygen".
Dalam tutorial ini, saya akan menunjukkan cara menginstal WordPress (CMS terkenal berbasis PHP) dengan HHVM dan Nginx sebagai server web kami. Saya akan menggunakan OpenSUSE Leap 42.1 sebagai sistem operasi, jadi pengetahuan dasar tentang OpenSUSE diperlukan.
Prasyarat
- OpenSUSE Leap 42.1 - 64bit.
- Hak istimewa root.
- Pengetahuan Dasar OpenSUSE seperti Zypper, SuSE-firewall.
Langkah 1 - Instal Nginx
Nginx atau engine-x adalah server web ringan dengan kinerja tinggi dan konsumsi memori rendah. Di server OpenSUSE kami, kami dapat menggunakan perintah zypper untuk menginstal paket.
Gunakan "sudo su" untuk menjadi pengguna root dan instal Nginx dengan perintah zypper di openSUSE Leap 42.1:
sudo su
zypper in nginx
Lalu, buka direktori web "/srv/www/htdocs" dan buat file index.html baru.
cd /srv/www/htdocs/
echo "<h1>Nginx OpenSUSE Leap 42.1</h1>" > index.html
Tambahkan Nginx untuk memulai saat boot dan mulai Nginx dengan perintah systemctl:
systemctl enable nginx
systemctl start nginx
Untuk memastikan Nginx berjalan di server kita, kita bisa mengunjungi alamat IP server dengan browser, atau gunakan perintah curl di bawah ini untuk melihat hasilnya:
curl 192.168.43.29
Langkah 2 - Instal dan Konfigurasi MariaDB
MariaDB adalah database open source yang dikembangkan oleh pengembang MySQL asli Monty Widenius, MariaDB kompatibel dengan MySQL. Pada langkah ini, kita akan menginstal MariaDB dan mengkonfigurasi kata sandi root untuk database MariaDB. Kemudian kita akan membuat database dan user baru yang kita butuhkan untuk instalasi WordPress kita.
Instal MariaDB dengan zypper:
zypper in mariadb mariadb-client
Tambahkan MariaDB ke urutan boot dan kemudian mulai:
systemctl enable mysql
systemctl start mysql
MariaDB telah dimulai, sekarang kita harus mengkonfigurasi kata sandi root untuk database MariaDB/mysql. Jalankan perintah di bawah ini untuk menyiapkan kata sandi root MariaDB.
/usr/bin/mysqladmin -u root password 'toor123'
Catatan:
Kata sandi MariaDB adalah "toor123" , harap gunakan sandi yang berbeda dan lebih aman di server Anda.
Kata sandi root MariaDB telah dikonfigurasi. Sekarang login ke shell MariaDB/MySQL dan buat database baru "wpdb" dan pengguna baru "wpuser" dengan sandi "[dilindungi email]" untuk instalasi WordPress kami. Pilih kata sandi yang aman di sini juga di sistem Anda.
Masuk ke shell MariaDB/MySQL:
mysql -u root -p
TYPE PASSWORD toor123
Buat database baru dan pengguna baru:
create database wpdb;
create user [email protected] identified by '[email protected]';
grant all privileges on wpdb.* to [email protected] identified by '[email protected]';
flush privileges;
MariaDB telah terinstal, dan database baru untuk instalasi WordPress kami telah dibuat.
Langkah 3 - Instal HHVM
Untuk instalasi HHVM, kita perlu menambahkan repositori hhvm baru. Kita dapat menggunakan perintah zypper untuk menambahkan repositori hhvm baru ke server. Kemudian kita harus me-refresh repositori openSUSE:
zypper addrepo http://download.opensuse.org/repositories/home:munix9/openSUSE_Leap_42.1/home:munix9.repo
zypper refresh
Ketik 'a' untuk selalu mempercayai kuncinya.
Sekarang instal paket hhvm:
zypper in hhvm hhvm-nginx hhvm-fastcgi
hhvm-nginx memberikan contoh konfigurasi Nginx.
hhvm-fastcgi menyediakan file meta FastCGI.
Langkah 4 - Konfigurasikan HHVM dan Nginx
Pada langkah ini, kami akan mengonfigurasi HHVM untuk dijalankan dengan server web Nginx. Kami akan mengkonfigurasi HHVM untuk menggunakan Unix-socket dan menjalankan HHVM sebagai pengguna Nginx. Buka direktori konfigurasi HHVM dan edit file konfigurasi 'server.ini' dengan editor vim:
cd /etc/hhvm/
vim server.ini
Batalkan komentar pada baris 3 untuk mengaktifkan Unix-Sockets untuk HHVM.
hhvm.server.file_socket = /var/run/hhvm/server.sock
Simpan dan keluar.
Selanjutnya kita harus mengedit script service HHVM agar HHVM dapat menjalankan userNginxginx. Penting untuk mengonfigurasi HHVM agar berjalan sebagai pengguna yang sama dengan server web. Buka direktori systemd dan edit file 'hhvm.service' dengan vim:
cd /usr/lib/systemd/system
vim hhvm.service
Ubah opsi --user hhvm pada baris 11 menjadi pengguna nginx.
ExecStart=/usr/bin/hhvm --config /etc/hhvm/php.ini --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/server.sock - vPidFile=/var/run/hhvm/server.pid
Simpan dan keluar.
Sekarang ubah pemilik direktori "/var/run/hhvm" menjadi pengguna nginx.
chown -R nginx:nginx /var/run/hhvm/
Catatan:
Setelah server di-boot ulang, terkadang pemilik default direktori kembali ke pengguna default. Untuk mengatasi masalah ini, kita dapat menentukan perintah linux yang akan dieksekusi setelah semua skrip runlevel saat ini dieksekusi.
Edit file after.local di direktori "/etc/rc.d/" dan tambahkan perintah linux baru di akhir file:
vim /etc/rc.d/after.local
Tempelkan perintah di bawah ini:
chown -R nginx:nginx /var/run/hhvm/
Simpan dan keluar.
Selanjutnya, kita harus mengkonfigurasi HHVM untuk bekerja dengan Nginx. Kami telah menginstal paket baru "hhvm-nginx", berisi contoh konfigurasi HHVM untuk server web Nginx.
Buka direktori konfigurasi Nginx dan salin konfigurasi HHVM:
cd /etc/nginx/
cp hhvm.conf.example hhvm.conf
Edit hhvm.conf dengan vim:
vim hhvm.conf
Pada baris kedua, tambahkan konfigurasi baru untuk menentukan direktori root web:
root /srv/www/htdocs;
Simpan dan keluar.
Kemudian kita harus mengedit konfigurasi Nginx untuk memasukkan konfigurasi HHVM.
vim nginx.conf
Pada baris 59 - tambahkan baris konfigurasi baru di bawah ini:
include /etc/nginx/hhvm.conf;
Simpan dan keluar.
Aktifkan dan mulai HHVM dengan perintah systemctl di bawah ini:
systemctl enable hhvm
systemctl start hhvm
Kemudian mulai ulang Nginx:
systemctl restart nginx
Nginx dan HHVM telah diinstal dan dikonfigurasi. Untuk menguji apakah konfigurasi berhasil, kita akan membuat file php baru yang berisi kode phpinfo dan menyimpannya ke direktori root web "/srv/www/htdocs", kemudian kita mengaksesnya melalui web browser.
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
Buka browser Anda dan ketik alamat IP server:
192.168.43.29/info.php
Nginx dan HHVM bekerja tanpa kesalahan.
Langkah 5 - Buat Virtual Host dengan HHVM dan Nginx
Pada langkah ini, kita akan membuat konfigurasi virtual host baru dengan Nginx dan HHVM. Saya akan menggunakan nama domain "hakasenano.co" untuk contoh ini dan gunakan sebagai domain untuk instalasi WordPress kami juga. Silakan ganti nama domain dengan nama domain Anda sendiri di semua file konfigurasi dan perintah.
Buka direktori Nginx dan buat direktori baru untuk menyimpan file virtual host:
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
Buat file konfigurasi baru "nano.conf" dengan vim:
vim nano.conf
Dan rekatkan konfigurasi host virtual baru di bawah ini:
server {
# This line for redirect non-www to www
server_name hakasenano.co; rewrite ^(.*) http://www.hakasenano.co$1 permanent; } server { listen 80; server_name www.hakasenano.co; root /srv/www/nano; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/www/htdocs; } # HHVM running throught Unix-Socket location ~ \.(hh|php)$ { root /srv/www/nano; fastcgi_keep_conn on; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/hhvm/server.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Simpan dan keluar.
Dalam konfigurasi host virtual, kami telah menetapkan direktori root web untuk nama domain menjadi direktori "/srv/www/nano". Direktori ini tidak ada untuk saat ini, jadi kita harus membuat direktori itu sekarang.
mkdir -p /srv/www/nano/
Terakhir, uji konfigurasi Nginx dan mulai ulang:
nginx -t
systemctl restart nginx
Pastikan perintah nginx -t tidak menampilkan pesan kesalahan.
Langkah 6 - Instal WordPress
Pada langkah 5, kami telah membuat konfigurasi virtual host untuk instalasi WordPress kami. Jadi kita hanya perlu mendownload WordPress sekarang dan kemudian mengedit konfigurasi database yang telah kita buat pada langkah 2.
Buka direktori root web "/srv/www/nano" dan unduh arsip zip WordPress dengan perintah wget:
cd /srv/www/nano
wget wordpress.org/latest.zip
Ekstrak "latest.zip" dan pindahkan semua file dan direktori WordPress ke direktori nano:
unzip latest.zip
mv wordpress/* .
Selanjutnya, salin file "wp-config-sample.php" ke "wp-config.php" dan edit dengan vim:
cp wp-config-sample.php wp-config.php
vim wp-config.php
Ubah DB_NAME ke database kami "wpdb" , DB_USER ke "wpuser" dan DB_PASSWORD ke "[email protected]" .
define('DB_NAME', 'wpdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', '[email protected]'); define('DB_HOST', 'localhost');
Simpan dan keluar.
Sekarang buka browser web dan ketik nama domain ke bilah alamat.
Anda akan dialihkan ke www.hakasenano.co dan Anda akan melihat halaman instalasi.
Dan Anda dapat mengisi judul dan deskripsi situs dengan info Anda dan klik "Instal Wordpress".
Tunggu hingga instalasi selesai dan Anda akan melihat halaman login di bawah ini. Klik "Masuk" untuk masuk ke dasbor admin WordPress:
Ketikkan pengguna dan kata sandi admin Anda, lalu klik "Masuk" lagi.
Sekarang Anda berada di dasbor admin WordPress.
Wordpress dengan Nginx dan HHVM di OpenSUSE Leap 42.1 telah terinstal sekarang.