Một ngăn xếp FEMP, tương tự như ngăn xếp LEMP trên Linux, là một tập hợp các phần mềm nguồn mở thường được cài đặt cùng nhau để cho phép máy chủ FreeBSD lưu trữ các trang web và ứng dụng web động. FEMP là từ viết tắt của FreereeBSD (hệ điều hành), Nginx (máy chủ HTTP phát âm là Engine-x), MySQL (máy chủ cơ sở dữ liệu) và PHP (ngôn ngữ lập trình để xử lý nội dung PHP động).
Trong hướng dẫn này, chúng tôi sẽ thiết lập các thành phần của ngăn xếp FEMP trên máy chủ FreeBSD 12.1 bằng cách sử dụng
Đảm bảo hệ thống FreeBSD của bạn được cập nhật.
Cài đặt các gói cần thiết.
Tạo một tài khoản người dùng mới với tên người dùng bạn muốn. Chúng tôi sử dụng
Chạy lệnh
Bây giờ, hãy chuyển sang người dùng mới tạo của bạn bằng
LƯU Ý: Thay thế
Thiết lập múi giờ:
Bạn có thể cài đặt Nginx bằng trình quản lý gói của FreeBSD,
Để cài đặt Nginx chính thức mới nhất, hãy đưa ra lệnh sau:
Kiểm tra phiên bản:
Lệnh này sẽ cài đặt phiên bản chính thức mới nhất, có thể sử dụng đáng tin cậy trên máy chủ sản xuất. Nếu bạn muốn cài đặt bản phát hành ổn định mới nhất, chỉ cần sử dụng gói
Bây giờ, hãy bật và khởi động Nginx:
Để kiểm tra xem Nginx đã khởi động chưa, bạn có thể chạy lệnh sau:
Kết quả là, bạn sẽ thấy nội dung tương tự như sau:
Bạn có thể xác minh rằng Nginx đã được cài đặt và hoạt động mà không có lỗi bằng cách truy cập địa chỉ IP công khai của máy chủ trong trình duyệt web của bạn. Điều hướng đến
Một lần nữa, bạn có thể sử dụng
Để cài đặt MySQL
Lệnh này sẽ cài đặt phiên bản mới nhất của máy khách và máy chủ MySQL, hiện tại là
Kiểm tra phiên bản:
Bây giờ, hãy bật và khởi động MySQL:
Để kiểm tra xem MySQL đã khởi động chưa, bạn có thể chạy lệnh sau:
Bạn sẽ thấy nội dung tương tự như sau:
Là một thực hành, bạn có thể chạy tập lệnh bảo mật
Bạn sẽ được yêu cầu đặt mật khẩu, sau đó là một số câu hỏi khác. Nhập mật khẩu mạnh và sau đó đối với các câu hỏi còn lại, nhấn ENTER để chọn mặc định.
Một lần nữa tận dụng hệ thống
Để cài đặt PHP
Kiểm tra phiên bản PHP:
Lệnh này sẽ cài đặt phiên bản PHP mới nhất,
Bây giờ, hãy bật và bắt đầu PHP-FPM:
Để kiểm tra xem PHP-FPM đã khởi động chưa, bạn có thể chạy lệnh sau:
Kết quả là, bạn sẽ thấy nội dung tương tự như sau:
Để xem các mô-đun PHP hiện đang được biên dịch, bạn có thể chạy lệnh này:
Để tìm kiếm các module PHP khả dụng, bạn có thể sử dụng lệnh này:
Kết quả sẽ chủ yếu là các module PHP 7.4 mà bạn có thể cài đặt:
Nếu sau khi nghiên cứu, bạn quyết định rằng mình cần cài đặt một gói, bạn có thể thực hiện bằng cách sử dụng lệnh
Chạy
Lưu tệp và thoát khỏi vim.
Bây giờ chúng ta cần đưa
Chạy
Kiểm tra cấu hình Nginx:
Vì bạn đã thực hiện các thay đổi cấu hình trong Nginx, bạn phải tải lại dịch vụ để những thay đổi đó được áp dụng. Nếu không, Nginx vẫn sẽ hoạt động với cấu hình trước đó:
Và thêm mã này vào tệp đó:
Điều hướng đến
Sau khi cài đặt và thiết lập ngăn xếp FEMP, bạn nên xóa tệp
Trong hướng dẫn này, chúng tôi sẽ thiết lập các thành phần của ngăn xếp FEMP trên máy chủ FreeBSD 12.1 bằng cách sử dụng
pkg
, trình quản lý gói FreeBSD.Yêu cầu
Trước khi bắt đầu hướng dẫn này, bạn sẽ cần những điều sau:- Một FreeBSD 12.1.
- Một người dùng có quyền root hoặc người dùng
sudo
để thực hiện các thay đổi cấu hình. - Khuyến nghị nên quen thuộc với hệ thống FreeBSD và giao diện dòng lệnh.
Các bước ban đầu
Kiểm tra phiên bản FreeBSD.
Mã:
uname -ro
# FreeBSD 12.1-RELEASE
Mã:
freebsd-update fetch install
pkg update && pkg upgrade -y
Mã:
pkg install -y sudo vim bash curl
johndoe
.
Mã:
adduser
# Tên người dùng: johndoe
# Tên đầy đủ: John Doe
# Uid (Để trống theo mặc định):
# Nhóm đăng nhập [johndoe]:
# Nhóm đăng nhập là johndoe. Mời johndoe vào các nhóm khác? []: wheel
# Lớp đăng nhập [mặc định]:
# Shell (sh csh tcsh nologin) [sh]: bash
# Thư mục gốc [/home/johndoe]:
# Quyền thư mục gốc (Để trống theo mặc định):
# Sử dụng xác thực dựa trên mật khẩu? [có]:
# Sử dụng mật khẩu trống? (có/không) [không]:
# Sử dụng mật khẩu ngẫu nhiên? (có/không) [không]:
# Nhập mật khẩu: your_secure_password
# Nhập lại mật khẩu: your_secure_password
# Khóa tài khoản sau khi tạo? [không]:
# OK? (có/không): có
# Thêm người dùng khác? (có/không): không
# Tạm biệt!
visudo
và bỏ chú thích ở dòng %wheel ALL=(ALL) ALL
để cho phép các thành viên của nhóm wheel
thực hiện bất kỳ lệnh nào.
Mã:
visudo
# Bỏ chú thích bằng cách xóa dấu thăng (#)
# %wheel ALL=(ALL) ALL
su
:
Mã:
su - johndoe
johndoe
bằng tên người dùng của bạn.Thiết lập múi giờ:
Mã:
sudo tzsetup
Bước 1 — Cài đặt mainline Nginx
Máy chủ web Nginx hiện là một trong những máy chủ web phổ biến nhất trên thế giới. Đây là lựa chọn tuyệt vời để lưu trữ trang web.Bạn có thể cài đặt Nginx bằng trình quản lý gói của FreeBSD,
pkg
. Trình quản lý gói cho phép bạn cài đặt hầu hết các phần mềm một cách dễ dàng từ kho lưu trữ do FreeBSD quản lý. Bạn có thể tìm hiểu thêm về cách sử dụng pkg
tại đây.Để cài đặt Nginx chính thức mới nhất, hãy đưa ra lệnh sau:
Mã:
sudo pkg install -y nginx-devel
Mã:
nginx -v
# phiên bản nginx: nginx/1.17.7
nginx
thay vì nginx-devel
.Bây giờ, hãy bật và khởi động Nginx:
Mã:
sudo sysrc nginx_enable=yes
sudo service nginx start
Mã:
sudo service nginx status
Mã:
# Đầu ra
nginx đang chạy dưới dạng pid 17607.
your_server_IP
. Bạn sẽ thấy trang mặc định "Welcome to nginx!".Bước 2 — Cài đặt MySQL 8.0
Bây giờ bạn đã có máy chủ web và chạy, đã đến lúc cài đặt MySQL, hệ thống quản lý cơ sở dữ liệu quan hệ. Máy chủ MySQL sẽ sắp xếp và cung cấp quyền truy cập vào các cơ sở dữ liệu mà máy chủ của bạn có thể lưu trữ thông tin.Một lần nữa, bạn có thể sử dụng
pkg
để tải và cài đặt phần mềm của mình.Để cài đặt MySQL
8.0
bằng pkg
, hãy sử dụng lệnh này:
Mã:
sudo pkg install -y mysql80-client mysql80-server
8.x.x
.Kiểm tra phiên bản:
Mã:
mysql --version
# mysql Ver 8.0.17 cho FreeBSD12.0 trên amd64 (Bản phân phối nguồn)
Mã:
sudo sysrc mysql_enable=yes
sudo service mysql-server start
Mã:
sudo service mysql-server status
Mã:
# Đầu ra
mysql đang chạy dưới dạng pid 19066.
mysql_secure_installation
sẽ xóa một số mặc định không an toàn và hạn chế một chút quyền truy cập vào hệ thống cơ sở dữ liệu của bạn.
Mã:
sudo mysql_secure_installation
Bước 3 — Cài đặt PHP 7.4
PHP là ngôn ngữ kịch bản phía máy chủ được thiết kế cho phát triển web. PHP là thành phần không thể thiếu của ngăn xếp FEMP. Ngoài ra, Python hoặc Perl thường được sử dụng thay cho PHP. Tuy nhiên, PHP là tùy chọn phổ biến nhất được sử dụng thường xuyên nhất. Cùng với cơ sở dữ liệu, nó sẽ cung cấp cho các trang web hoặc ứng dụng của bạn hành vi động.Một lần nữa tận dụng hệ thống
pkg
để cài đặt các thành phần PHP.Để cài đặt PHP
7.4
bằng pkg
, hãy chạy lệnh này:
Mã:
sudo pkg install -y php74
Mã:
php --version
# PHP 7.4.0 (cli) (được xây dựng: 18 tháng 7 năm 2019 01:14:37) (NTS)
# Bản quyền (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Bản quyền (c) 1998-2018 Zend Technologies
7.4
.Bây giờ, hãy bật và bắt đầu PHP-FPM:
Mã:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start
Mã:
sudo service php-fpm status
Mã:
# Đầu ra
php_fpm đang chạy với pid 23005.
Cài đặt các mô-đun PHP (Tùy chọn)
Để tăng cường chức năng của PHP, bạn có thể tùy chọn cài đặt một số mô-đun bổ sung.Để xem các mô-đun PHP hiện đang được biên dịch, bạn có thể chạy lệnh này:
Mã:
php -m
# [Các mô-đun PHP]
# Lõi # ngày
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard
# [Zend Modules]
Mã:
pkg search ^php74-*
Mã:
# Output
# php74-7.4.7 Ngôn ngữ lập trình PHP
# php74-Ice37-3.7.2 Giải pháp thay thế hiện đại cho phần mềm trung gian đối tượng như CORBA/COM/DCOM/COM+
# php74-aphpbreakdown-2.2.2 Code-Analyzer for PHP for Compatibility Check-UP
# php74-aphpunit-1.8 Khung thử nghiệm cho các bài kiểm tra đơn vị
# php74-bcmath-7.4.7 Phần mở rộng chia sẻ bcmath cho php
# php74-brotli-0.7.0 Tiện ích mở rộng Brotli cho PHP
# php74-bsdconv-11.5.0 Trình bao bọc PHP cho bsdconv
# php74-bz2-7.4.7 Tiện ích mở rộng chia sẻ bz2 cho php
# php74-calendar-7.4.7 Tiện ích mở rộng chia sẻ lịch cho php
# php74-composer-1.8.6 Trình quản lý phụ thuộc cho PHP
# php74-ctype-7.4.7 Tiện ích mở rộng chia sẻ ctype cho php
# php74-curl-7.4.7 Tiện ích mở rộng chia sẻ curl cho php
# . . .
pkg install
. Hầu hết các ứng dụng web PHP sẽ yêu cầu các mô-đun bổ sung, vì vậy, bạn nên biết cách tìm kiếm chúng.Bước 4 — Cấu hình Nginx để sử dụng Mô-đun PHP
Trước khi sử dụng PHP, bạn phải cấu hình để nó hoạt động với Nginx.Chạy
sudo vim /usr/local/etc/nginx/test.conf
và điền nội dung bên dưới vào tệp:
Mã:
server { listen 80; server_name SERVER_IP; # Thay thế bằng IP hoặc tên máy chủ của bạn root /usr/local/www/nginx-dist; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}
Bây giờ chúng ta cần đưa
test.conf
vào tệp nginx.conf
chính. Tệp cấu hình chính cho Nginx nằm trong /usr/local/etc/nginx
dưới dạng nginx.conf
.Chạy
sudo vim /usr/local/etc/nginx/nginx.conf
để mở tệp cấu hình chính trong Vim và thêm dòng sau vào khối http {}
.
Mã:
include test.conf;
Mã:
sudo nginx -t
Mã:
sudo service nginx reload
Bước 5 — Kiểm tra xử lý PHP
Để kiểm tra xem hệ thống của bạn đã được cấu hình đúng cho PHP hay chưa, bạn có thể tạo một tập lệnh PHP rất cơ bản. Bạn sẽ gọi tập lệnh này làinfo.php
. Theo mặc định, root
được đặt thành /usr/local/www/nginx-dist
. Bạn có thể tạo tệp info.php
trong vị trí đó bằng cách nhập:
Mã:
sudo vim /usr/local/www/nginx-dist/info.php
Mã:
http://your_server_IP/info.php
và bạn sẽ thấy trang sau:Sau khi cài đặt và thiết lập ngăn xếp FEMP, bạn nên xóa tệp
info.php
để tránh tiết lộ thông tin về máy chủ cho công chúng:
Mã:
sudo rm /usr/local/www/nginx-dist/info.php