Cài đặt Nginx, MariaDB và PHP (FEMP stack) trên FreeBSD 12

theanh

Administrator
Nhân viên
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 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
Sau khi hoàn tất quá trình cài đặt, hãy chuyển sang bước tiếp theo.


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
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.
Mã:
sysrc nginx_enable=yes
Sau đó, khởi động máy chủ web Nginx và kiểm tra dịch vụ.
Mã:
service nginx start
service nginx status
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 đó.
Mã:
sockstat -4 -l -P tcp
Dưới đây là kết quả.


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ờ 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.
Mã:
pkg install mariadb103-server mariadb103-client
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.
Mã:
sysrc mysql_enable="yes"
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.
Mã:
service mysql-server start
service mysql-server status
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.
Mã:
/usr/local/bin/mysql_secure_installation
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'.
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
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.
Mã:
mysql -u root -p
TYPE PASSWORD:
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.
Mã:
show databases;
select User, Host, Password from mysql.user;
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.

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
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'.
Mã:
cd /usr/local/etc/
cp php.ini-production php.ini
Bây giờ hãy chỉnh sửa tệp 'php.ini' bằng trình soạn thảo vim.
Mã:
vim php.ini
Bỏ chú thích dòng 'cgi.fix_pathinfo' và thay đổi giá trị thành '0'.
Mã:
cgi.fix_pathinfo=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.
Mã:
vim php-fpm.d/www.conf
Thay đổi các dòng 'user' và 'group' bằng 'www'.
Mã:
user = www
group = www
Thay đổi giá trị dòng 'listen' thành tệp socket UNIX '/var/run/php-fpm.sock'.
Mã:
listen = /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.
Mã:
listen.owner = www
listen.group = www
listen.mode = 0660
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.
Mã:
env[HOSTNAME] = $HOSTNAME 
env[PATH] = /usr/local/bin:/usr/bin:/bin 
env[TMP] = /tmp 
env[TMPDIR] = /tmp 
env[TEMP] = /tmp
Lưu và đóng.

Tiếp theo, thêm dịch vụ PHP-FPM vào hệ thống khởi động.
Mã:
sysrc php_fpm_enable=yes
Sau đó, hãy khởi động dịch vụ PHP-FPM và kiểm tra trạng thái của dịch vụ đó.
Mã:
service php-fpm start
service php-fpm status
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.
Mã:
sockstat -u | grep php-fpm
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'.

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
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.
Mã:
user www;
worker_processes 2;
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.
Mã:
http {
 ...
 error_log /var/log/nginx/error.log; 
 access_log /var/log/nginx/access.log;
 ...
}
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.
Mã:
....
 server {
 server_name SERVER-IP;
Xác định thư mục gốc của web và tệp chỉ mục.
Mã:
root /usr/local/www/nginx;
 index index.php index.html index.htm;

 location / {
 try_files $uri $uri/ =404;
 }
Bây giờ hãy dán cấu hình sau để PHP-FPM hoạt động với máy chủ web Nginx.
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;
 }
Lưu và đóng.

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; } }}
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.
Mã:
hủy liên kết /usr/local/www/nginx
mkdir -p /usr/local/www/nginx
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'.
Mã:
cd /usr/local/www/
cp nginx-dist/index.html nginx/
Sau đó, tạo một tệp PHP mới 'info.php' trên thư mục gốc web mới.
Mã:
vim nginx/info.php
Mã:
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.
Mã:
nginx -t
service nginx restart
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ướ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.

Tham khảo​

 
Back
Bên trên