Ngăn xếp FEMP (FreeBSD, Nginx, MySQL/MariaDB, PHP) là một nhóm các ứng dụng có thể lưu trữ các trang web động và các ứng dụng web, đặc biệt là các ứng dụng dựa trên PHP. Ngăn xếp FEMP tương tự như Ngăn xếp LEMP trong thế giới Linux, dựa trên các ứng dụng giống nhau: Nginx là máy chủ web, MySQL/MariaDB là cơ sở dữ liệu và PHP là ngôn ngữ xử lý cho các ứng dụng.
Hướng dẫn này sẽ chỉ cho bạn cách thiết lập Ngăn xếp FEMP trên FreeBSD 12.0. Chúng ta sẽ cài đặt máy chủ web Nginx, cài đặt cơ sở dữ liệu MariaDB, cấu hình mật khẩu gốc của nó, sau đó cài đặt và cấu hình phiên bản mới nhất của PHP-FPM 7.3.
Điều kiện tiên quyết
Đối với hướng dẫn này, chúng ta sẽ sử dụng phiên bản mới nhất của FreeBSD 12.0 với 1GB RAM và 2 CPU. Bạn sẽ cần quyền root để cài đặt các gói mới và chỉnh sửa cấu hình tệp hệ thống.
Những gì chúng ta sẽ làm:
Cập nhật kho lưu trữ FreeBSD và nâng cấp tất cả các gói bằng lệnh pkg bên dưới.
Sau khi hoàn tất quá trình cài đặt, hãy chuyển sang bước tiếp theo.
Cài đặt Nginx bằng lệnh pkg bên dưới.
Sau khi cài đặt hoàn tất, hãy thêm dịch vụ Nginx vào hệ thống khởi động.
Sau đó, khởi động máy chủ web Nginx và kiểm tra dịch vụ.
Máy chủ web Nginx đang hoạt động trên hệ thống FreeBSD 12.0.
Kiểm tra danh sách các cổng đã mở trên hệ thống và đảm bảo bạn có cổng HTTP 80 trên đó.
Dưới đây là kết quả.
Kho lưu trữ FreeBSD cung cấp nhiều phiên bản MariaDB, bạn có thể kiểm tra bằng lệnh sau.
Bây giờ bạn sẽ nhận được nhiều phiên bản của cơ sở dữ liệu MariaDB.
Bây giờ hãy cài đặt gói phiên bản mới nhất 'mariadb103' cho cả gói máy khách và máy chủ bằng lệnh pkg bên dưới.
Sau khi cài đặt hoàn tất, hãy thêm dịch vụ MariaDB/MySQL vào hệ thống khởi động.
Sau đó, khởi động dịch vụ MariaDB/MySQL và kiểm tra trạng thái của nó bằng lệnh lệnh bên dưới.
Bây giờ bạn sẽ nhận được kết quả như bên dưới.
Cơ sở dữ liệu MariaDB đang hoạt động trên hệ thống FreeBSD 12.0.
Tiếp theo, chúng ta sẽ cấu hình xác thực mật khẩu gốc cho cơ sở dữ liệu MariaDB bằng công cụ dòng lệnh bash 'mysql_secure_installation'.
Chạy lệnh 'mysql_secure_installation' bên dưới.
Và bạn sẽ được hỏi một số câu hỏi khác, chỉ cần nhập 'Y' để có cho tất cả và nhấn nút 'Enter'.
Kết quả là, xác thực mật khẩu gốc cho cơ sở dữ liệu MariaDB đã được cấu hình.
Tiếp theo, chúng ta sẽ đăng nhập vào shell MariaDB/MySQL bằng mật khẩu và kiểm tra danh sách cơ sở dữ liệu và người dùng.
Đăng nhập vào shell MySQL bằng lệnh sau.
Sau khi bạn đã đăng nhập vào shell, hãy kiểm tra danh sách cơ sở dữ liệu và người dùng bằng các truy vấn MySQL bên dưới.
Và bạn sẽ nhận được kết quả như bên dưới.
Kết quả là, bạn sẽ có thể đăng nhập vào máy chủ MariaDB/MySQL của mình bằng mật khẩu đã được cấu hình.
Cài đặt các gói PHP và PHP-FPM bằng lệnh pkg bên dưới.
Sau khi cài đặt hoàn tất, hãy vào thư mục '/usr/local/etc' và sao chép tệp cấu hình 'php.ini-production' vào 'php.ini'.
Bây giờ hãy chỉnh sửa tệp 'php.ini' bằng trình soạn thảo vim.
Bỏ chú thích dòng 'cgi.fix_pathinfo' và thay đổi giá trị thành '0'.
Lưu và đóng.
Tiếp theo, chúng ta sẽ chỉnh sửa tệp cấu hình PHP-FPM 'www.conf' và cấu hình PHP-FPM để chạy trên các socket tệp UNIX.
Đi tới thư mục 'cd /usr/local/etc/php-fpm.d' và chỉnh sửa tệp cấu hình 'www.conf' bằng trình soạn thảo vim.
Thay đổi các dòng 'user' và 'group' bằng 'www'.
Thay đổi giá trị dòng 'listen' thành tệp socket UNIX '/var/run/php-fpm.sock'.
Bỏ chú thích dòng listen của chủ sở hữu, nhóm và chế độ cho tệp socket. Để nguyên giá trị mặc định.
Bây giờ hãy đi đến cuối dòng và bỏ chú thích cấu hình Môi trường PHP như bên dưới.
Lưu và đóng.
Tiếp theo, thêm dịch vụ PHP-FPM vào hệ thống khởi động.
Sau đó, hãy khởi động dịch vụ PHP-FPM và kiểm tra trạng thái của dịch vụ đó.
Bây giờ dịch vụ PHP-FPM đang hoạt động trên hệ thống FreeBSD 12.0.
Kiểm tra PHP-FPM bằng cách kiểm tra socket UNIX của nó bằng lệnh sockstat bên dưới.
Và bạn sẽ thấy kết quả như bên dưới.
Kết quả là Dịch vụ PHP-FPM đang chạy trên tệp UNIX Socket dưới người dùng 'www'.
Vào thư mục '/usr/local/etc/nginx' và chỉnh sửa tệp 'nginx.conf' bằng trình soạn thảo vim.
Thay đổi nginx 'user' đang chạy dưới dạng 'www' và 'worker_processes' bằng số bộ xử lý máy chủ của bạn.
Bên trong cấu hình ngoặc 'http { ... }', hãy xác định nhật ký Nginx cho cả nhật ký truy cập và nhật ký lỗi.
Bây giờ hãy di chuyển đến cấu hình ngoặc 'server { ... }' và gắn 'server_name' với tên miền hoặc địa chỉ IP máy chủ của bạn.
Xác định thư mục gốc của web và tệp chỉ mục.
Bây giờ hãy dán cấu hình sau để PHP-FPM hoạt động với máy chủ web Nginx.
Lưu và đóng.
Dưới đây là cấu hình đầy đủ của tệp 'nginx.conf'.
Tiếp theo, chúng ta sẽ tạo thư mục gốc tài liệu Nginx '/usr/local/www/nginx' và tạo tệp index.html.
Xóa thư mục liên kết tượng trưng mặc định '/usr/local/www/nginx' và tạo một thư mục khác.
Bây giờ hãy đến thư mục '/usr/local/www' và sao chép tệp 'index.html' mặc định từ thư mục 'nginx-dist'.
Sau đó, tạo một tệp PHP mới 'info.php' trên thư mục gốc web mới.
Lưu và đóng.
Bây giờ hãy kiểm tra nginx cấu hình và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ Nginx.
Và bạn sẽ thấy kết quả như bên dưới.
Kết quả là cấu hình nginx không có lỗi và dịch vụ đã được khởi động lại. Cấu hình Nginx và PHP-FPM 7.3 đã hoàn tất.
Bây giờ bạn sẽ nhận được trang Nginx inde.html mặc định như bên dưới.
Tiếp theo, chúng ta sẽ kiểm tra cấu hình Nginx và PHP-FPM của mình bằng cách truy cập tệp 'info.php'.
Bây giờ bạn sẽ nhận được một số thông tin về cài đặt và cấu hình PHP của mình.
Kết quả là quá trình cài đặt và cấu hình FEMP Stack trên FreeBSD 12.0 đã hoàn tất thành công.
Hướng dẫn này sẽ chỉ cho bạn cách thiết lập Ngăn xếp FEMP trên FreeBSD 12.0. Chúng ta sẽ cài đặt máy chủ web Nginx, cài đặt cơ sở dữ liệu MariaDB, cấu hình mật khẩu gốc của nó, sau đó cài đặt và cấu hình phiên bản mới nhất của PHP-FPM 7.3.
Điều kiện tiên quyết
Đối với hướng dẫn này, chúng ta sẽ sử dụng phiên bản mới nhất của FreeBSD 12.0 với 1GB RAM và 2 CPU. Bạn sẽ cần quyền root để cài đặt các gói mới và chỉnh sửa cấu hình tệp hệ thống.
Những gì chúng ta sẽ làm:
- Cập nhật và nâng cấp các gói
- Cài đặt Nginx Web Server
- Cài đặt và cấu hình cơ sở dữ liệu MariaDB
- Cài đặt và cấu hình PHP-FPM 7.3
- Cấu hình Nginx Web Server và PHP-FPM 7.3
- Kiểm tra
Bước 1 - Cập nhật và nâng cấp các gói
Trước hết, chúng ta sẽ cập nhật kho lưu trữ các gói FreeBSD và nâng cấp tất cả các gói đã cài đặt lên phiên bản mới nhất.Cập nhật kho lưu trữ FreeBSD và nâng cấp tất cả các gói bằng lệnh pkg bên dưới.
Mã:
pkg update
pkg upgrade
Bước 2 - Cài đặt Máy chủ web Nginx
Trong bước này, chúng ta sẽ cài đặt máy chủ web Nginx từ kho lưu trữ FreeBSD chính thức. Sau đó thêm dịch vụ Nginx vào thời gian khởi động và khởi động dịch vụ.Cài đặt Nginx bằng lệnh pkg bên dưới.
Mã:
pkg install nginx
Mã:
sysrc nginx_enable=yes
Mã:
service nginx start
service nginx status
Kiểm tra danh sách các cổng đã mở trên hệ thống và đảm bảo bạn có cổng HTTP 80 trên đó.
Mã:
sockstat -4 -l -P tcp
Bước 3 - Cài đặt và Cấu hình MariaDB
Trong bước này, chúng ta sẽ cài đặt cơ sở dữ liệu MariaDB từ kho lưu trữ FreeBSD và cấu hình xác thực mật khẩu gốc cho nó.Kho lưu trữ FreeBSD cung cấp nhiều phiên bản MariaDB, bạn có thể kiểm tra bằng lệnh sau.
Mã:
pkg search mariadb
Bây giờ hãy cài đặt gói phiên bản mới nhất 'mariadb103' cho cả gói máy khách và máy chủ bằng lệnh pkg bên dưới.
Mã:
pkg install mariadb103-server mariadb103-client
Mã:
sysrc mysql_enable="yes"
Mã:
service mysql-server start
service mysql-server status
Cơ sở dữ liệu MariaDB đang hoạt động trên hệ thống FreeBSD 12.0.
Tiếp theo, chúng ta sẽ cấu hình xác thực mật khẩu gốc cho cơ sở dữ liệu MariaDB bằng công cụ dòng lệnh bash 'mysql_secure_installation'.
Chạy lệnh 'mysql_secure_installation' bên dưới.
Mã:
/usr/local/bin/mysql_secure_installation
Mã:
Đặt mật khẩu gốc? [Y/n] C
NHẬP MẬT KHẨU GỐC CỦA BẠN
Xóa người dùng ẩn danh? [Y/n] C
Không cho phép đăng nhập gốc từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Tiếp theo, chúng ta sẽ đăng nhập vào shell MariaDB/MySQL bằng mật khẩu và kiểm tra danh sách cơ sở dữ liệu và người dùng.
Đăng nhập vào shell MySQL bằng lệnh sau.
Mã:
mysql -u root -p
TYPE PASSWORD:
Mã:
show databases;
select User, Host, Password from mysql.user;
Kết quả là, bạn sẽ có thể đăng nhập vào máy chủ MariaDB/MySQL của mình bằng mật khẩu đã được cấu hình.
Bước 4 - Cài đặt và cấu hình PHP-FPM 7.3
Trong bước này, chúng ta sẽ cài đặt các gói PHP và PHP-FPM 7.3 vào hệ thống FreeBSD 12.0. Sau đó cấu hình cấu hình PHP toàn cục 'php.ini' và tệp cấu hình PHP-FPM 'www.conf'.Cài đặt các gói PHP và PHP-FPM bằng lệnh pkg bên dưới.
Mã:
pkg install php73 php73-mysqli php73-zlib php73-gd php73-json php73-mbstring php73-curl
Mã:
cd /usr/local/etc/
cp php.ini-production php.ini
Mã:
vim php.ini
Mã:
cgi.fix_pathinfo=0
Tiếp theo, chúng ta sẽ chỉnh sửa tệp cấu hình PHP-FPM 'www.conf' và cấu hình PHP-FPM để chạy trên các socket tệp UNIX.
Đi tới thư mục 'cd /usr/local/etc/php-fpm.d' và chỉnh sửa tệp cấu hình 'www.conf' bằng trình soạn thảo vim.
Mã:
vim php-fpm.d/www.conf
Mã:
user = www
group = www
Mã:
listen = /var/run/php-fpm.sock
Mã:
listen.owner = www
listen.group = www
listen.mode = 0660
Mã:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Tiếp theo, thêm dịch vụ PHP-FPM vào hệ thống khởi động.
Mã:
sysrc php_fpm_enable=yes
Mã:
service php-fpm start
service php-fpm status
Kiểm tra PHP-FPM bằng cách kiểm tra socket UNIX của nó bằng lệnh sockstat bên dưới.
Mã:
sockstat -u | grep php-fpm
Kết quả là Dịch vụ PHP-FPM đang chạy trên tệp UNIX Socket dưới người dùng 'www'.
Bước 5 - Cấu hình Nginx và PHP-FPM
Bây giờ chúng ta sẽ cấu hình máy chủ web Nginx và PHP-FPM.Vào thư mục '/usr/local/etc/nginx' và chỉnh sửa tệp 'nginx.conf' bằng trình soạn thảo vim.
Mã:
cd /usr/local/etc/nginx
vim nginx.conf
Mã:
user www;
worker_processes 2;
Mã:
http {
...
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
...
}
Mã:
....
server {
server_name SERVER-IP;
Mã:
root /usr/local/www/nginx;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
Mã:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
Dưới đây là cấu hình đầy đủ của tệp 'nginx.conf'.
Mã:
user www;worker_processes 2;pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; root /usr/local/www/nginx; 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 /usr/local/www/nginx-dist; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } }}
Xóa thư mục liên kết tượng trưng mặc định '/usr/local/www/nginx' và tạo một thư mục khác.
Mã:
hủy liên kết /usr/local/www/nginx
mkdir -p /usr/local/www/nginx
Mã:
cd /usr/local/www/
cp nginx-dist/index.html nginx/
Mã:
vim nginx/info.php
Mã:
Bây giờ hãy kiểm tra nginx cấu hình và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ Nginx.
Mã:
nginx -t
service nginx restart
Kết quả là cấu hình nginx không có lỗi và dịch vụ đã được khởi động lại. Cấu hình Nginx và PHP-FPM 7.3 đã hoàn tất.
Bước 6 - Kiểm tra
Mở trình duyệt web của bạn và nhập địa chỉ IP của máy chủ vào thanh địa chỉ.Bây giờ bạn sẽ nhận được trang Nginx inde.html mặc định như bên dưới.
Tiếp theo, chúng ta sẽ kiểm tra cấu hình Nginx và PHP-FPM của mình bằng cách truy cập tệp 'info.php'.
Bây giờ bạn sẽ nhận được một số thông tin về cài đặt và cấu hình PHP của mình.
Kết quả là quá trình cài đặt và cấu hình FEMP Stack trên FreeBSD 12.0 đã hoàn tất thành công.