HHVM (HipHop Virtual Machine) adalah mesin virtual open source untuk mengeksekusi program yang ditulis dalam bahasa PHP dan Hack. HHVM telah dikembangkan oleh Facebook, menyediakan sebagian besar fitur dari versi PHP 7 saat ini. Untuk menjalankan HHVM di server Anda, Anda dapat menggunakan FastCGI untuk menghubungkan HHVM dengan server web Nginx atau Apache, atau Anda dapat menggunakan server web yang dibangun ke dalam HHVM yang disebut "Proxygen".
Dalam tutorial ini, saya akan menunjukkan cara menginstal WordPress dengan HHVM dan Nginx sebagai server web. Saya akan menggunakan CentOS 7 sebagai sistem operasi, jadi pengetahuan dasar tentang CentOS diperlukan.
Prasyarat
- CentOS 7 - 64bit
- Hak istimewa root
Langkah 1 - Konfigurasi SELinux dan tambahkan Repositori Epel
Dalam tutorial ini, kita akan menggunakan SELinux dalam mode enforcing, jadi kita memerlukan alat manajemen SELinux yang diinstal pada sistem. Kami akan menggunakan setools dan setrobleshoot untuk mengelola kebijakan SELinux.
Secara default, SELinux diaktifkan pada CentOS 7, Kita dapat memeriksanya dengan perintah di bawah ini:
sestatus
getenforce
Anda dapat melihat SELinux diaktifkan dengan mode penegakan.
Selanjutnya, Instal setools dan setroubleshoot dengan perintah yum.
yum -y install setroubleshoot setools net-tools
Ketika instalasi telah selesai, Anda dapat menginstal repositori EPEL.
yum -y install epel-release
Langkah 2 - Instal Nginx
Nginx atau engine-x adalah server web ringan dengan kinerja tinggi dan konsumsi memori rendah. Di CentOS, kita dapat menggunakan yum untuk menginstal paket Nginx. Pastikan Anda login sebagai pengguna root!
Instal nginx dengan perintah yum ini dari repositori CentOS:
yum -y install nginx
Sekarang mulai Nginx dan aktifkan untuk dimulai saat boot dengan perintah systemctl:
systemctl start nginx
systemctl enable nginx
Untuk memastikan Nginx berjalan di server kami, kunjungi alamat IP server dengan browser Anda, atau gunakan perintah curl seperti yang ditunjukkan di bawah ini untuk mendapatkan hasilnya:
curl 192.168.1.110
Saya akan memeriksanya dengan browser web saya di sini:
Langkah 3 - Instal dan Konfigurasi MariaDB
MariaDB adalah database open source yang dikembangkan oleh pengembang MySQL asli Monty Widenius, telah bercabang dari database MySQL tetapi tetap kompatibel dengannya dalam fungsi utamanya. Pada langkah ini, kita akan menginstal MariaDB dan mengkonfigurasi kata sandi root untuk database MariaDB. Kemudian kita akan membuat database baru dan user baru yang dibutuhkan untuk instalasi WordPress kita.
Instal mariadb dan mariadb-server:
yum -y install mariadb mariadb-server
Mulai MariaDB dan tambahkan layanan untuk dimulai secara otomatis saat boot:
systemctl start mariadb
systemctl enable mariadb
MariaDB telah dimulai, dan sekarang kita harus mengkonfigurasi kata sandi root untuk database mariadb/mysql. Ketik perintah di bawah ini untuk menyiapkan kata sandi root MariaDB.
mysql_secure_installation
Ketikkan kata sandi baru Anda untuk pengguna root MariaDB saat diminta.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
... Success!
Disallow root login remotely? [Y/n] Y
... Success!
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
... Success!
Kata sandi root MariaDB telah dikonfigurasi. Sekarang login ke shell MariaDB/MySQL dan buat database baru "wordpressdb" dan pengguna baru "wpuser" dengan sandi "[dilindungi email]" untuk instalasi WordPress kami. Pilih kata sandi yang aman untuk instalasi Anda!
Masuk ke shell MariaDB/MySQL:
mysql -u root -p
TYPE YOUR PASSWORD
Buat database baru dan pengguna baru:
create database wordpressdb;
create user [email protected] identified by '[email protected]';
grant all privileges on wordpressdb.* to [email protected] identified by '[email protected]';
flush privileges;
\q
MariaDB telah diinstal dan database baru untuk instalasi WordPress kami telah dibuat.
Langkah 4 - Instal HHVM
Untuk instalasi HHVM, kita perlu menginstal banyak dependensi. Kita dapat menginstal HHVM dari sumber dengan mengunduh sumber dari github, atau menginstal paket prebuilt yang tersedia di internet. Dalam tutorial ini, saya akan menginstal HHVM dari paket bawaan.
Instal dependensi untuk instalasi HHVM
yum -y install cpp gcc-c++ cmake git psmisc {binutils,boost,jemalloc,numactl}-devel \
{ImageMagick,sqlite,tbb,bzip2,openldap,readline,elfutils-libelf,gmp,lz4,pcre}-devel \
lib{xslt,event,yaml,vpx,png,zip,icu,mcrypt,memcached,cap,dwarf}-devel \
{unixODBC,expat,mariadb}-devel lib{edit,curl,xml2,xslt}-devel \
glog-devel oniguruma-devel ocaml gperf enca libjpeg-turbo-devel openssl-devel \
mariadb mariadb-server libc-client make
Kemudian instal paket bawaan HHVM dari situs ini dengan perintah rpm.
rpm -Uvh http://mirrors.linuxeye.com/hhvm-repo/7/x86_64/hhvm-3.15.2-1.el7.centos.x86_64.rpm
ln -s /usr/local/bin/hhvm /bin/hhvm
HHVM sudah terinstall, cek dengan perintah dibawah ini:
hhvm --version
Untuk menggunakan perintah php, kita dapat mengatur perintah hhvm sebagai php. Jadi ketika Anda mengetik 'php' di shell, Anda akan melihat hasil yang sama seperti dari perintah hhvm.
sudo update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
php --version
Langkah 5 - Konfigurasi HHVM
Pada langkah ini, kita akan mengkonfigurasi HHVM. Kami akan menjalankan hhvm sebagai layanan systemd. Alih-alih menjalankannya di port sistem, kami akan menjalankan hhvm pada file soket unix yang lebih cepat.
Buka direktori systemd dan buat file hhvm.service.
cd /etc/systemd/system/
vim hhvm.service
Tempelkan konfigurasi layanan di bawah ini ke dalam file itu.
[Unit]
Description=HHVM HipHop Virtual Machine (FCGI)
After=network.target nginx.service mariadb.service
[Service]
ExecStart=/usr/local/bin/hhvm --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/hhvm.sock
[Install]
WantedBy=multi-user.target
Simpan file dan keluar dari vim.
Selanjutnya, masuk ke direktori hhvm dan edit file server.ini.
cd /etc/hhvm/
vim server.ini
Ganti hhvm.server.port pada baris 7 dengan konfigurasi soket unix di bawah ini:
hhvm.server.file_socket = /var/run/hhvm/hhvm.sock
Simpan file dan keluar dari editor.
Dalam file layanan hhvm, kami telah mendefinisikan bahwa hhvm berjalan di bawah pengguna 'nginx', jadi kami harus mengubah pemilik direktori file soket menjadi pengguna 'nginx'. Kemudian kita harus mengubah konteks SELinux dari direktori hhvmuntuk mengizinkan akses ke file soket.
chown -R nginx:nginx /var/run/hhvm/
semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?"
restorecon -Rv /var/run/hhvm
Setelah server me-reboot, hhvm tidak akan berjalan karena tidak ada direktori untuk file socket, jadi kita harus membuatnya secara otomatis pada saat boot.
Edit file rc.local dengan vim.
vim /etc/rc.local
Tempel konfigurasi di bawah ini ke akhir baris.
mkdir -p /var/run/hhvm/
chown -R nginx:nginx /var/run/hhvm/
semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?"
restorecon -Rv /var/run/hhvm
Simpan file dan keluar dari vim. Jadikan file tersebut dapat dieksekusi.
chmod +x /etc/rc.local
Muat ulang layanan systemd, mulai hhvm dan tambahkan untuk memulai saat boot.
systemctl daemon-reload
systemctl start hhvm
systemctl enable hhvm
Pastikan tidak ada kesalahan. Periksa apakah hhvm berjalan di bawah file soket dengan perintah netstat.
netstat -pl | grep hhvm
Langkah 6 - Konfigurasikan HHVM dan Nginx
Pada langkah ini, kita akan mengkonfigurasi HHVM untuk dijalankan dengan server web Nginx. Kita perlu membuat file konfigurasi hhvm baru di direktori Nginx.
Buka direktori /etc/nginx dan buat file hhvm.conf.
cd /etc/nginx/
vim hhvm.conf
Rekatkan konfigurasi di bawah ini:
location ~ \.(hh|php)$ {
root /usr/share/nginx/html;
fastcgi_keep_conn on;
fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Simpan dan keluar.
Selanjutnya, edit file nginx.conf dan tambahkan baris include konfigurasi hhvm.
vim nginx.conf
Tambahkan konfigurasi ke baris direktif server 57.
include /etc/nginx/hhvm.conf;
Simpan dan keluar.
Kemudian ubah konteks SELinux dari file konfigurasi hhvm.
semanage fcontext -a -t httpd_config_t /etc/nginx/hhvm.conf
restorecon -v /etc/nginx/hhvm.conf
Uji konfigurasi Nginx dan mulai ulang layanan.
nginx -t
systemctl restart nginx
Pastikan tidak ada kesalahan.
Langkah 7 - 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 "natsume.co" untuk contoh ini. Silakan gunakan nama domain Anda sendiri dan ganti di file konfigurasi dan instalasi WordPress di mana pun itu muncul.
Masuk ke direktori nginx conf.d tempat kita akan menyimpan file virtual host:
cd /etc/nginx/conf.d/
Buat konfigurasi baru "natsume.conf" dengan vim:
vim natsume.conf
Tempel konfigurasi host virtual di bawah ini:
server { listen 80; server_name natsume.co; # note that these lines are originally from the "location /" block root /var/www/hakase; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; location = /50x.html { root /var/www/hakase; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/hhvm/hhvm.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 "/var/www/hakase". Direktori itu belum ada, jadi kita harus membuatnya dan mengubah kepemilikannya menjadi pengguna dan grup nginx.
mkdir -p /var/www/hakase
chown -R nginx:nginx /var/www/hakase
Selanjutnya, konfigurasikan konteks SELinux untuk file dan direktori.
semanage fcontext -a -t httpd_config_t "/etc/nginx/conf.d(/.*)?"
restorecon -Rv /etc/nginx/conf.d
Terakhir, uji konfigurasi nginx untuk memastikan tidak ada kesalahan, lalu mulai ulang nginx:
nginx -t
systemctl restart nginx
Langkah 8 - Instal WordPress
Pada langkah 5 kita telah membuat konfigurasi virtual host untuk instalasi WordPress kita. Sekarang kita tinggal mendownload WordPress dan mengedit konfigurasi database dengan menggunakan database dan user yang telah kita buat pada langkah 3.
Buka direktori root web "/var/www/hakase" dan unduh WordPress dengan perintah wget:
cd /var/www/hakase
wget wordpress.org/latest.tar.gz
Ekstrak "latest.tar.gz" dan pindahkan semua file dan direktori WordPress ke direktori saat ini:
tar -xzvf latest.tar.gz
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
Setel DB_NAME ke "wordpressdb" , DB_USER ke "wpuser" dan DB_PASSWORD ke "[email protected]" .
define('DB_NAME', 'wordpressdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', '[email protected]'); define('DB_HOST', 'localhost');
Simpan dan keluar.
Ubah konteks SELinux untuk direktori WordPress.
semanage fcontext -a -t httpd_sys_content_t "/var/www/hakase(/.*)?"
restorecon -Rv /var/www/hakase
Sekarang buka browser web dan ketik nama domain domain wordpress Anda ke dalam bilah alamat, milik saya adalah "natsume.co".
Pilih bahasa Inggris dan klik 'Lanjutkan '.
Isi judul dan deskripsi situs dengan info Anda dan klik "Install Wordpress".
Tunggu hingga penginstalan selesai. Anda akan melihat halaman di bawah, klik "Log In" untuk login ke dashboard admin WordPress:
Ketikkan pengguna dan kata sandi admin Anda, lalu klik "Masuk" lagi.
Sekarang Anda berada di dasbor admin WordPress.
Halaman Beranda Wordpress.
Wordpress dengan Nginx dan HHVM di CentOS 7 telah berhasil diinstal.