Nếu bạn đã quản lý một máy chủ Linux trước đây, bạn sẽ quen thuộc với LAMP (Linux, Apache, MySQL, PHP) thường được sử dụng. Tuy nhiên, Apache, MySQL và PHP đôi khi có thể là tài nguyên chuyên sâu và có thể không phải là tốt nhất cho máy chủ của bạn. Trong hướng dẫn này, chúng tôi sẽ thay thế từng phần của ngăn xếp, ngoại trừ Linux, với sự thay thế tốt hơn - Nginx, MariaDB và HHVM.

Giả định

1. Hướng dẫn này được thực hiện trên máy chủ Ubuntu 14.04, mặc dù các hướng dẫn cũng sẽ hoạt động đối với mọi bản phân phối dựa trên Debian.

2. Hướng dẫn này chỉ tập trung vào việc cài đặt và thiết lập ngăn xếp LEMH. Nó không chạm vào khía cạnh bảo mật của máy chủ.

3. Bạn phải có quyền truy cập SSH vào máy chủ của bạn (hoặc truy cập vật lý vào máy của bạn) để thực hiện hướng dẫn này.

Cài đặt Nginx

Nginx là một thay thế nhẹ, nhưng mạnh mẽ cho Apache. Nó là một máy chủ proxy ngược nguồn mở cũng như một máy chủ web với một tập trung mạnh vào đồng thời cao, hiệu suất cao và sử dụng bộ nhớ thấp. Lưu ý rằng Nginx không tương thích với Apache, vì vậy tất cả cấu hình Apache, đặc biệt là các tệp .htaccess mà bạn đã tạo, sẽ không hoạt động trong Nginx. Cũng có thể chạy cả Apache và Nginx trên cùng một máy chủ, nhưng điều đó sẽ liên quan đến một số cấu hình phức tạp mà chúng tôi sẽ không đề cập ở đây.

Nginx được tìm thấy trong kho lưu trữ Ubuntu, nhưng nó thường bị lỗi thời. Để có được phiên bản ổn định mới nhất, hãy thêm PPA sau vào hệ thống của bạn:

 sudo add-apt-repository ppa: nginx / ổn định sudo apt-get update 

Phiên bản mới nhất của Nginx là bài viết này là 1.6.2. Ngoài ra, nếu bạn muốn thử phiên bản phát triển mới nhất, bạn có thể sử dụng PPA này thay thế:

 sudo add-apt-repository ppa: nginx / phát triển sudo apt-get update 

Phiên bản phát triển mới nhất của bài này là 1.7.8.

Để cài đặt Nginx, hãy chạy lệnh:

 sudo apt-get cài đặt nginx 

Sau khi cài đặt, hãy chạy lệnh sau để đảm bảo rằng nó được bắt đầu:

 sudo dịch vụ nginx bắt đầu 

Tiếp theo, trong trình duyệt web của bạn, truy cập url “http://123.4.56.789” (thay thế 123.4.56.789 bằng địa chỉ IP của máy chủ) và bạn sẽ thấy như sau:

Cài đặt MariaDB

Trong nhiều năm, MySQL là dịch vụ quản lý cơ sở dữ liệu mặc định cho nhiều ứng dụng. Kể từ khi nó được Oracle mua lại, nhiều người bắt đầu đặt câu hỏi về “nguồn mở” -ness, và cộng đồng (bao gồm cả người sáng lập MySQL) đã quyết định tạo ra một nhánh của MySQL và đặt tên nó là MariaDB. MariaDB là một thay thế thả xuống cho MySQL, có nghĩa là nó hoàn toàn tương thích với các cơ sở dữ liệu MySQL và có thể được sử dụng như là một sự thay thế hoàn toàn cho MySQL.

Thú vị thực tế : MySQL được thành lập bởi Michael Widenius và được đặt theo tên con gái đầu tiên của mình, My. Nhà phát triển chính của MariaDB cũng là Michael Widenius và được đặt theo tên con gái thứ hai của mình, Maria.

Trong máy chủ của bạn, nếu trước đây bạn đã cài đặt MySQL, tốt nhất là bạn nên gỡ bỏ MySQL hoàn toàn trước khi cài đặt MariaDB:

 sudo apt-get loại bỏ - mygeql-mysql-server mysql-client mysql-phổ biến sudo apt-get autoremove sudo rm-rf / var / lib / mysql sudo apt-get autoclean 

Tiếp theo, thêm PPA cho MariaDB:

 sudo apt-get cài đặt phần mềm-thuộc tính-phổ biến sudo apt-key adv -recv-keys --keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http: //sfo1.mirrors .digitalocean.com / mariadb / repo / 10.0 / ubuntu chính đáng tin cậy 'sudo apt-get update 

Lưu ý rằng bạn cũng có thể tạo PPA của riêng bạn ở đây và tìm vị trí gần nhất với máy chủ của bạn.

Cài đặt MariaDB bằng lệnh này:

 sudo apt-get cài đặt mariadb-server 

Trong khi cài đặt, nó sẽ nhắc bạn đặt mật khẩu cho người dùng root.

Sau khi cài đặt, bạn có thể khởi động MariaDB bằng lệnh:

 sudo service mysql bắt đầu 

Cài đặt PHP và HHVM

HHVM không phải là sự thay thế cho PHP. Nó là một máy ảo mã nguồn mở được thiết kế để thực hiện các chương trình được viết bằng Hack và PHP. HHVM sử dụng phương pháp biên dịch (JIT) ngay trong thời gian để đạt được hiệu suất cao trong khi vẫn duy trì tính linh hoạt phát triển mà PHP cung cấp.

Trước khi cài đặt HHVM, bạn cần cài đặt PHP đầu tiên trong máy chủ. Thay vì cài đặt gói PHP5 đầy đủ, bao gồm một loạt các tệp Apache, chúng tôi sẽ chỉ cài đặt php5-fpm, sau đó sẽ cài đặt các phụ thuộc PHP cần thiết. Ngoài ra, chúng tôi sẽ cần php5-fpm như một dự phòng cho HHVM.

 sudo apt-get cài đặt php5-fpm php5-mysql php5-curl 

Sau khi hoàn thành, cài đặt HHVM bằng các lệnh:

 wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - echo deb http://dl.hhvm.com/ubuntu chính đáng tin cậy | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get cập nhật sudo apt-get install hhvm 

Sau khi HHVM được cài đặt, tiến hành cấu hình nó cho Nginx bằng lệnh:

 sudo /usr/share/hhvm/install_fastcgi.sh 

Cuối cùng, khởi động lại HHVM

 dịch vụ sudo hhvm khởi động lại 

Để kiểm tra xem HHVM có hoạt động hay không, hãy tạo một tệp “phpinfo.php” trong thư mục gốc Nginx.

 sudo nano /var/www/html/phpinfo.php 

và dán dòng sau:

Nhấn “Ctrl + o” để lưu và “Ctrl + x” để thoát.

Trong trình duyệt của bạn, tải url: http://123.4.56.789/phpinfo.php (thay thế 123.4.56.789 bằng địa chỉ IP của máy chủ của bạn). Bạn sẽ chỉ thấy từ “HipHop” để cho thấy HHVM đang hoạt động.

Cấu hình các trang để chạy trong Nginx và HHVM (với dự phòng php5-fpm)

Bây giờ bạn đã thiết lập mọi thứ, đã đến lúc tạo một máy chủ ảo để chạy trang web của bạn.

Tạo tệp cấu hình mới chứa chi tiết trang web của bạn:

 sudo nano / etc / nginx / sites-available / my-site 

và dán vào đoạn mã sau:

 server {listen 80; nghe [::]: 80; root / var / www / html; # Thêm index.php vào danh sách nếu bạn đang sử dụng chỉ mục PHP index.html index.htm; server_name mywebsite.com; bao gồm hhvm-with-fallback.conf; location / {# Đầu tiên cố gắng phân phối yêu cầu dưới dạng tệp, sau đó # làm thư mục, sau đó quay lại hiển thị 404. try_files $ uri $ uri / = 404; } # truyền các tập lệnh PHP vào máy chủ FastCGI nghe trên 127.0.0.1:9000 # location @fallback {# include các đoạn mã / fastcgi-php.conf; # # # Với php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; bao gồm fastcgi_params; } # từ chối truy cập vào các tệp .htaccess, nếu gốc tài liệu của Apache # đồng ý với một vị trí # nginx ~ /\.ht {deny all; }} 

Bạn có thể thay đổi tên máy chủ để trỏ đến miền của riêng bạn và vị trí thư mục root nơi bạn muốn các tệp được phân phát.

HHVM thỉnh thoảng gặp lỗi này mà không cần khởi động lại; điều này sẽ khiến trang web thất bại với lỗi 500. Trong trường hợp này, chúng ta sẽ tạo ra một hệ thống dự phòng trong đó PHP5-FPM sẽ tiếp quản khi HHVM thất bại. Lưu ý location @fallback chặn location @fallback trong đoạn mã cấu hình ở trên? Đó là gọi lại khi HHVM không thành công. Để hoàn thành phương trình, chúng ta vẫn cần phải tạo tệp “hhvm-with-fallback.conf” là phiên bản sửa đổi của tệp “hhvm.conf”.

 sudo nano /etc/nginx/hhvm-with-fallback.conf 

Dán đoạn mã sau:

 vị trí ~ \. (hh | php) $ {proxy_intercept_errors; error_page 500 501 502 503 = @fallback; fastcgi_keep_conn trên; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; bao gồm fastcgi_params; } 

Lưu và thoát tệp.

Cuối cùng, kiểm tra cài đặt Nginx với

 sudo nginx -t 

và nếu mọi thứ đều ổn, hãy khởi động lại Nginx.

 dịch vụ sudo nginx khởi động lại 

Đó là nó. Bạn đã hoàn tất thiết lập LEMH stack trên máy chủ Linux của mình.