HHVM (HipHop Virtual Machine) là một máy ảo mã nguồn mở do Facebook phát triển, nó là trình biên dịch JIT (just-in-time) để thực thi các chương trình được viết bằng PHP 5 (và một số tính năng của PHP 7) và ngôn ngữ Hack. Nếu bạn muốn chạy HHVM trên máy chủ của mình, bạn có thể sử dụng máy chủ web dựa trên FastCGI trên máy chủ web Nginx hoặc Apache, hoặc bạn có thể sử dụng máy chủ web tích hợp có tên là "Proxygen".
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt WordPress (một CMS nổi tiếng dựa trên PHP) với HHVM và Nginx làm máy chủ web của chúng tôi. Tôi sẽ sử dụng OpenSUSE Leap 42.1 làm hệ điều hành, vì vậy cần có kiến thức cơ bản về OpenSUSE.
Điều kiện tiên quyết
Sử dụng "sudo su" để trở thành người dùng gốc và cài đặt Nginx bằng lệnh zypper trên openSUSE Leap 42.1:
Sau đó, hãy đến thư mục web"/srv/www/htdocs" và tạo một tệp index.html mới.
Thêm Nginx để bắt đầu khi khởi động và khởi động Nginx bằng lệnh systemctl:
Để đảm bảo Nginx đang chạy trên máy chủ của chúng tôi, chúng tôi có thể truy cập địa chỉ IP của máy chủ bằng trình duyệt hoặc sử dụng lệnh curl bên dưới để xem kết quả:
Cài đặt MariaDB với zypper:
Thêm MariaDB vào trình tự khởi động và sau đó khởi động nó:
MariaDB đã được khởi động, bây giờ chúng ta phải cấu hình mật khẩu gốc cho cơ sở dữ liệu MariaDB/mysql. Chạy lệnh bên dưới để thiết lập mật khẩu gốc MariaDB.
Lưu ý:
Mật khẩu MariaDB là "toor123", vui lòng sử dụng mật khẩu khác và an toàn hơn trên máy chủ của bạn.
Mật khẩu gốc MariaDB đã được cấu hình. Bây giờ hãy đăng nhập vào shell MariaDB/MySQL và tạo một cơ sở dữ liệu mới "wpdb" và người dùng mới "wpuser" với mật khẩu "wpuser@" cho cài đặt WordPress của chúng ta. Chọn một mật khẩu an toàn ở đây cũng như trên hệ thống của bạn.
Đăng nhập vào shell MariaDB/MySQL:
Tạo cơ sở dữ liệu mới và người dùng mới:
MariaDB đã được cài đặt và cơ sở dữ liệu mới cho cài đặt WordPress của chúng tôi đã được tạo.
Nhập 'a' để luôn tin cậy khóa.
Bây giờ hãy cài đặt các gói hhvm:
hhvm-nginx cung cấp một mẫu cấu hình Nginx.
hhvm-fastcgi cung cấp các tệp meta FastCGI.
Bỏ chú thích dòng 3 để bật Unix-Sockets cho HHVM.
Lưu và thoát.
Tiếp theo, chúng ta phải chỉnh sửa tập lệnh dịch vụ HHVM để HHVM có thể chạy người dùng Nginxginx. Điều quan trọng là phải cấu hình HHVM để chạy với cùng một người dùng với máy chủ web. Vào thư mục systemd và chỉnh sửa tệp 'hhvm.service' bằng vim:
Thay đổi tùy chọn --user hhvm ở dòng 11 thành người dùng nginx.
Lưu và thoát.
Bây giờ hãy thay đổi chủ sở hữu của thư mục "/var/run/hhvm" thành nginx user.
Lưu ý:
Sau khi máy chủ khởi động lại, đôi khi chủ sở hữu mặc định của thư mục sẽ trở lại thành người dùng mặc định. Để giải quyết vấn đề này, chúng ta có thể định nghĩa lệnh linux sẽ được thực thi sau khi tất cả các tập lệnh của mức chạy hiện tại đã được thực thi.
Chỉnh sửa tệp after.local trong thư mục "/etc/rc.d/" và thêm lệnh linux mới vào cuối tệp:
Dán lệnh bên dưới:
Lưu và thoát.
Tiếp theo, chúng ta phải cấu hình HHVM để hoạt động với Nginx. Chúng tôi đã cài đặt gói mới "hhvm-nginx", gói này chứa ví dụ về cấu hình HHVM cho máy chủ web Nginx.
Đi đến thư mục cấu hình Nginx và sao chép cấu hình HHVM:
Chỉnh sửa hhvm.conf bằng vim:
Ở dòng thứ hai, thêm cấu hình mới để xác định thư mục gốc web:
Lưu và thoát.
Sau đó, chúng ta phải chỉnh sửa cấu hình Nginx để bao gồm cấu hình HHVM.
Ở dòng 59 - thêm dòng cấu hình mới bên dưới:
Lưu và thoát.
Kích hoạt và khởi động HHVM bằng lệnh systemctl bên dưới:
Sau đó khởi động lại Nginx:
Nginx và HHVM đã được cài đặt và cấu hình. Để kiểm tra xem cấu hình có hoạt động không, chúng tôi sẽ tạo một tệp php mới chứa mã phpinfo và lưu vào thư mục gốc của web "/srv/www/htdocs", sau đó chúng tôi truy cập tệp đó thông qua trình duyệt web.
Mở trình duyệt và nhập địa chỉ IP của máy chủ:
192.168.43.29/info.php
Nginx và HHVM đang hoạt động mà không có lỗi.
Đi đến thư mục Nginx và tạo thư mục mới để lưu trữ tệp máy chủ ảo:
Tạo tệp cấu hình mới"nano.conf" bằng vim:
Và dán cấu hình máy chủ ảo mới bên dưới:
Lưu và thoát.
Trong cấu hình máy chủ ảo của chúng tôi, chúng tôi đã định nghĩa thư mục gốc web cho tên miền là thư mục "/srv/www/nano". Thư mục này hiện không tồn tại, vì vậy chúng tôi phải tạo thư mục đó ngay bây giờ.
Cuối cùng, hãy kiểm tra cấu hình Nginx và khởi động lại:
Đảm bảo lệnh nginx -t không hiển thị thông báo lỗi.
Đi đến thư mục gốc của web "/srv/www/nano" và tải xuống kho lưu trữ zip WordPress bằng lệnh wget:
Giải nén "latest.zip" và di chuyển tất cả các tệp và thư mục WordPress vào thư mục nano:
Tiếp theo, sao chép tệp "wp-config-sample.php" vào "wp-config.php" và chỉnh sửa bằng vim:
Đổi DB_NAME thành cơ sở dữ liệu của chúng tôi "wpdb", DB_USER thành"wpuser" và DB_PASSWORD thành"wpuser@".
Lưu và thoát.
Bây giờ hãy mở trình duyệt web và nhập tên miền vào thanh địa chỉ.
Bạn sẽ được chuyển hướng đến www.hakasenano.co và bạn sẽ thấy trang cài đặt.
Và bạn có thể điền tiêu đề và mô tả trang web bằng thông tin của mình và nhấp vào "Cài đặt Wordpress".
Chờ cho đến khi quá trình cài đặt hoàn tất và bạn sẽ thấy trang đăng nhập bên dưới. Nhấp vào "Đăng nhập" để đăng nhập vào bảng điều khiển quản trị WordPress:
Nhập tên người dùng và mật khẩu quản trị của bạn, sau đó nhấp vào "Đăng nhập" một lần nữa.
Bây giờ bạn đã ở trong bảng điều khiển quản trị WordPress.
Wordpress với Nginx và HHVM trên OpenSUSE Leap 42.1 đã được cài đặt.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt WordPress (một CMS nổi tiếng dựa trên PHP) với HHVM và Nginx làm máy chủ web của chúng tôi. Tôi sẽ sử dụng OpenSUSE Leap 42.1 làm hệ điều hành, vì vậy cần có kiến thức cơ bản về OpenSUSE.
Điều kiện tiên quyết
- OpenSUSE Leap 42.1 - 64bit.
- Quyền root.
- Kiến thức cơ bản về OpenSUSE như Zypper, SuSE-firewall.
Bước 1 - Cài đặt Nginx
Nginx hay engine-x là một máy chủ web nhẹ với hiệu suất cao và mức tiêu thụ bộ nhớ thấp. Trên máy chủ OpenSUSE của chúng tôi, chúng tôi có thể sử dụng lệnh zypper để cài đặt gói.Sử dụng "sudo su" để trở thành người dùng gốc và cài đặt Nginx bằng lệnh zypper trên openSUSE Leap 42.1:
Mã:
sudo su
zypper trong nginx
Mã:
cd /srv/www/htdocs/
echo "[HEADING=1]Nginx OpenSUSE Leap 42.1[/HEADING]" > index.html
Mã:
systemctl enable nginx
systemctl start nginx
Mã:
curl 192.168.43.29
Bước 2 - Cài đặt và cấu hình MariaDB
MariaDB là cơ sở dữ liệu nguồn mở được phát triển bởi nhà phát triển MySQL gốc Monty Widenius, MariaDB tương thích với MySQL. Trong bước này, chúng ta sẽ cài đặt MariaDB và cấu hình mật khẩu gốc cho cơ sở dữ liệu MariaDB. Sau đó, chúng ta sẽ tạo một cơ sở dữ liệu và người dùng mới mà chúng ta cần cho cài đặt WordPress của mình.Cài đặt MariaDB với zypper:
Mã:
zypper trong mariadb mariadb-client
Mã:
systemctl enable mysql
systemctl start mysql
Mã:
/usr/bin/mysqladmin -u root password 'toor123'
Mật khẩu MariaDB là "toor123", vui lòng sử dụng mật khẩu khác và an toàn hơn trên máy chủ của bạn.
Mật khẩu gốc MariaDB đã được cấu hình. Bây giờ hãy đăng nhập vào shell MariaDB/MySQL và tạo một cơ sở dữ liệu mới "wpdb" và người dùng mới "wpuser" với mật khẩu "wpuser@" cho cài đặt WordPress của chúng ta. Chọn một mật khẩu an toàn ở đây cũng như trên hệ thống của bạn.
Đăng nhập vào shell MariaDB/MySQL:
Mã:
mysql -u root -p
TYPE PASSWORD toor123
Mã:
create database wpdb;
create user wpuser@localhost defined by 'wpuser@';
grant all privileges on wpdb.* to wpuser@localhost defined by 'wpuser@';
flush privileges;
MariaDB đã được cài đặt và cơ sở dữ liệu mới cho cài đặt WordPress của chúng tôi đã được tạo.
Bước 3 - Cài đặt HHVM
Để cài đặt HHVM, chúng ta cần thêm kho lưu trữ hhvm mới. Chúng ta có thể sử dụng lệnh zypper để thêm kho lưu trữ hhvm mới vào máy chủ. Sau đó, chúng ta phải làm mới kho lưu trữ openSUSE:
Mã:
zypper addrepo http://download.opensuse.org/repositories/home:munix9/openSUSE_Leap_42.1/home:munix9.repo
zypper refresh
Bây giờ hãy cài đặt các gói hhvm:
Mã:
zypper trong hhvm hhvm-nginx hhvm-fastcgi
hhvm-fastcgi cung cấp các tệp meta FastCGI.
Bước 4 - Cấu hình HHVM và Nginx
Trong bước này, chúng ta sẽ cấu hình HHVM để chạy với máy chủ web Nginx. Chúng ta sẽ cấu hình HHVM để sử dụng Unix-socket và chạy HHVM với tư cách là người dùng Nginx. Đi đến thư mục cấu hình HHVM và chỉnh sửa tệp cấu hình 'server.ini' bằng trình soạn thảo vim:
Mã:
cd /etc/hhvm/
vim server.ini
Mã:
hhvm.server.file_socket = /var/run/hhvm/server.sock
Tiếp theo, chúng ta phải chỉnh sửa tập lệnh dịch vụ HHVM để HHVM có thể chạy người dùng Nginxginx. Điều quan trọng là phải cấu hình HHVM để chạy với cùng một người dùng với máy chủ web. Vào thư mục systemd và chỉnh sửa tệp 'hhvm.service' bằng vim:
Mã:
cd /usr/lib/systemd/system
vim hhvm.service
Mã:
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
Bây giờ hãy thay đổi chủ sở hữu của thư mục "/var/run/hhvm" thành nginx user.
Mã:
chown -R nginx:nginx /var/run/hhvm/
Sau khi máy chủ khởi động lại, đôi khi chủ sở hữu mặc định của thư mục sẽ trở lại thành người dùng mặc định. Để giải quyết vấn đề này, chúng ta có thể định nghĩa lệnh linux sẽ được thực thi sau khi tất cả các tập lệnh của mức chạy hiện tại đã được thực thi.
Chỉnh sửa tệp after.local trong thư mục "/etc/rc.d/" và thêm lệnh linux mới vào cuối tệp:
Mã:
vim /etc/rc.d/after.local
Mã:
chown -R nginx:nginx /var/run/hhvm/
Tiếp theo, chúng ta phải cấu hình HHVM để hoạt động với Nginx. Chúng tôi đã cài đặt gói mới "hhvm-nginx", gói này chứa ví dụ về cấu hình HHVM cho máy chủ web Nginx.
Đi đến thư mục cấu hình Nginx và sao chép cấu hình HHVM:
Mã:
cd /etc/nginx/
cp hhvm.conf.example hhvm.conf
Mã:
vim hhvm.conf
Mã:
root /srv/www/htdocs;
Sau đó, chúng ta phải chỉnh sửa cấu hình Nginx để bao gồm cấu hình HHVM.
Mã:
vim nginx.conf
Mã:
include /etc/nginx/hhvm.conf;
Kích hoạt và khởi động HHVM bằng lệnh systemctl bên dưới:
Mã:
systemctl enable hhvm
systemctl start hhvm
Mã:
systemctl restart nginx
Mã:
cd /srv/www/htdocs/
echo "" > info.php
192.168.43.29/info.php
Nginx và HHVM đang hoạt động mà không có lỗi.
Bước 5 - Tạo Máy chủ ảo với HHVM và Nginx
Trong bước này, chúng ta sẽ tạo cấu hình máy chủ ảo mới với Nginx và HHVM. Tôi sẽ sử dụng tên miền "hakasenano.co" cho ví dụ này và sử dụng nó làm tên miền cho cài đặt WordPress của chúng ta. Vui lòng thay thế tên miền bằng tên miền của riêng bạn trong tất cả các tệp cấu hình và lệnh.Đi đến thư mục Nginx và tạo thư mục mới để lưu trữ tệp máy chủ ảo:
Mã:
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
Mã:
vim nano.conf
Mã:
server {
# Dòng này để chuyển hướng không phải www sang www
server_name hakasenano.co; viết lại ^(.*) 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; vị trí / { try_files $uri $uri/ =404; } trang_lỗi 500 502 503 504 /50x.html; vị trí = /50x.html { root /srv/www/htdocs; } # HHVM chạy qua Unix-Socket vị trí ~ \.(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; }}
Trong cấu hình máy chủ ảo của chúng tôi, chúng tôi đã định nghĩa thư mục gốc web cho tên miền là thư mục "/srv/www/nano". Thư mục này hiện không tồn tại, vì vậy chúng tôi phải tạo thư mục đó ngay bây giờ.
Mã:
mkdir -p /srv/www/nano/
Mã:
nginx -t
systemctl restart nginx
Bước 6 - Cài đặt WordPress
Ở bước 5, chúng ta đã tạo cấu hình máy chủ ảo cho quá trình cài đặt WordPress của mình. Vì vậy, chúng ta chỉ cần tải xuống WordPress ngay bây giờ và sau đó chỉnh sửa cấu hình cơ sở dữ liệu mà chúng ta đã tạo ở bước 2.Đi đến thư mục gốc của web "/srv/www/nano" và tải xuống kho lưu trữ zip WordPress bằng lệnh wget:
Mã:
cd /srv/www/nano
wget wordpress.org/latest.zip
Mã:
giải nén latest.zip
mv wordpress/* .
Mã:
cp wp-config-sample.php wp-config.php
vim wp-config.php
Mã:
define('DB_NAME', 'wpdb');define('DB_USER', 'wpuser');define('DB_PASSWORD', 'wpuser@');define('DB_HOST', 'localhost');
Bây giờ hãy mở trình duyệt web và nhập tên miền vào thanh địa chỉ.
Bạn sẽ được chuyển hướng đến www.hakasenano.co và bạn sẽ thấy trang cài đặt.
Và bạn có thể điền tiêu đề và mô tả trang web bằng thông tin của mình và nhấp vào "Cài đặt Wordpress".
Chờ cho đến khi quá trình cài đặt hoàn tất và bạn sẽ thấy trang đăng nhập bên dưới. Nhấp vào "Đăng nhập" để đăng nhập vào bảng điều khiển quản trị WordPress:
Nhập tên người dùng và mật khẩu quản trị của bạn, sau đó nhấp vào "Đăng nhập" một lần nữa.
Bây giờ bạn đã ở trong bảng điều khiển quản trị WordPress.
Wordpress với Nginx và HHVM trên OpenSUSE Leap 42.1 đã được cài đặt.