I. Chuẩn bị
1. Cấu hình nguồn Yum
Đầu tiên, hãy đổi tên hoặc xóa các tệp cấu hình yum mặc định của hệ thống, sau đó tải hai tệp sau:
Alibaba Cloud: http://mirrors.aliyun.com/repo/Centos-7.repo
EPEL mở rộng: http://mirrors.aliyun.com/repo/epel-7
Sau khi tải xong, cần sử dụng lệnh để xóa bộ nhớ cache yum cũ và tạo bộ nhớ cache mới với tệp cấu hình mới:
yum clean all # Xóa bộ nhớ cache cũ
yum makecache # Tạo bộ nhớ cache mới
yum update # Cập nhật tất cả các phần mềm có thể cập nhật
2. Cài đặt công cụ biên dịch và phần mềm phụ thuộc
yum -y install gcc gcc-c++ pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel
3. Địa chỉ tải gói mã nguồn cho Nginx, MySQL, PHP
Nginx: http://nginx.org/en/download.html
MySQL: https://dev.mysql.com/downloads/mysql/
PHP: http://www.php.net/
Phiên bản đề xuất:
- Nginx: 1.16.* # Chọn phiên bản ổn định
- MySQL: 5.5.* # Phiên bản 5.5 trở lên yêu cầu ít nhất 1GB RAM
- PHP: 7.3.* # Sử dụng PHP7
Lưu ý: Mỗi lần cài đặt LNMP, các phiên bản nhỏ của phần mềm có thể khác nhau. Nhà phát triển sẽ cập nhật các phiên bản nhỏ trong cùng một phiên bản lớn, vui lòng cài đặt theo phiên bản đã tải xuống.
II. Cài đặt từ mã nguồn
1. Nginx
Nginx là một máy chủ web nhẹ/máy chủ proxy ngược và máy chủ proxy email (IMAP/POP3) được phát hành dưới giấy phép BSD-like. Đặc điểm là chiếm dụng ít bộ nhớ, khả năng xử lý đồng thời mạnh mẽ.
1.1 Tải mã nguồn Nginx
[root@centos2 /lnmp]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
1.2 Tạo người dùng để chạy Nginx
[root@centos2 /lnmp]# useradd -r -s /sbin/nologin nginx
1.3 Giải nén và cài đặt Nginx
[root@centos2 /lnmp]# tar -zxf nginx-1.16.1.tar.gz
[root@centos2 /lnmp/nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
[root@centos2 /lnmp/nginx-1.16.1]# make && make install
1.4 Tải và viết kịch bản khởi động Nginx
Lưu ý: Kiểm tra xem tệp có vấn đề về bộ ký tự không
#################################Kịch bản quản lý khởi động Nginx##################################
#!/bin/bash
#Tác giả: nanshan
#chkconfig: 2345 99 33
#mô tả: công cụ kiểm soát máy chủ nginx
ngxc="/usr/local/nginx/sbin/nginx"
pidf="/usr/local/nginx/logs/nginx.pid"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
pidf_fpm="/usr/local/php/var/run/php-fpm.pid"
case "$1" in
start)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
$ngxc
$ngxc_fpm
echo "Dịch vụ nginx đã khởi động thành công!"
else
$ngxc -t
fi
;;
stop)
kill -s QUIT $(cat $pidf)
kill -s QUIT $(cat $pidf_fpm)
echo "Dịch vụ nginx đã dừng thành công!"
;;
restart)
$0 stop
$0 start
;;
reload)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
kill -s HUP $(cat $pidf)
kill -s HUP $(cat $pidf_fpm)
echo "Tải lại cấu hình nginx thành công!"
else
$ngxc -t
fi
;;
*)
echo "Vui lòng nhập stop|start|restart|reload."
exit 1
esac
2. MySQL
Tải xuống: https://dev.mysql.com/downloads/mysql/
Chọn: Looking for previous GA versions?
Chọn: Select Version: Chọn theo yêu cầu của bạn
Select Operating System: Source Code
Select OS Version: Generic Linux
Định dạng: mysql-N.N.NN.tar.gz
[root@centos2 /lnmp/nginx-1.16.1]# wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz
2.1 Tạo người dùng để chạy MySQL
[root@centos2 /lnmp]# useradd -r -s /sbin/nologin mysql
2.2 Giải nén và cài đặt MySQL
[root@centos2 /lnmp]# tar -zxvf mysql-5.5.62.tar.gz
[root@centos2 ~]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
[root@centos2 ~]# make && make install
[root@centos2 ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
2.3 Sửa đổi quyền sau khi cài đặt
[root@centos2 ~]# cd /usr/local/mysql
[root@centos2 ~]# chown -R root .
[root@centos2 ~]# chown -R mysql data
2.4 Tạo tệp cấu hình MySQL
[root@centos2 ~]# cp -a /lnmp/mysql-5-5.62/support-files/my-medium.cnf /etc/my.cnf
2.5 Khởi tạo, tạo bảng phân quyền
[root@centos2 ~]# cd /usr/local/mysql
[root@centos2 ~]# ./scripts/mysql_install_db --user=mysql
#Dấu hiệu khởi tạo thành công: hai OK
2.6 Tạo kịch bản khởi động và tự khởi động cho MySQL
[root@centos2 ~]# cd /lnmp/mysql-5.5.62/support-files/
[root@centos2 /lnmp/mysql-5.5.62/support-files]# cp -a mysql.server /etc/init.d/mysqld
[root@centos2 /etc/init.d]# chmod +x mysqld
[root@centos2 /etc/init.d]# chkconfig --add mysqld
[root@centos2 /etc.init.d]# chkconfig mysqld on
[root@centos2 /etc.init.d]# systemctl start mysqld
[root@centos2 /etc.init.d]# systemctl status mysqld
2.7 Đặt mật khẩu cho người dùng root của MySQL
[root@centos2 /usr/local/mysql]# mysqladmin -uroot password 123456
[root@centos2 /usr/local/mysql]# mysql -uroot -p
Enter password:
3. PHP
Tải xuống: https://www.php.net/
http://mirrors.sohu.com/php/
[root@centos2 /lnmp]# wget https://www.php.net/distributions/php-7.3.12.tar.gz
3.1 Giải nén và cài đặt
[root@centos2 /lnmp/php-7.3.12]# tar -zxf php-7.3.12.tar.gz
[root@centos2 /lnmp/php-7.3.12]# ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm
[root@centos2 /lnmp/php-7.3.12]# make
[root@centos2 /lnmp/php-7.3.12]# make install
3.2 Tạo tệp cấu hình PHP
[root@centos2 ~]# cp -a /lnmp/php-7.3.12/php.ini-production /usr/local/php/etc/php.ini
#Sao chép tệp cấu hình từ gói mã nguồn vào thư mục cài đặt và đổi tên
3.3 Tạo liên kết mềm để sử dụng lệnh PHP tiện lợi hơn
[root@centos2 ~]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@centos2 ~]# ln -s /usr/local/php/sbin/* /usr/local/sbin/
4. Cấu hình Nginx kết nối với PHP
4.1 Để Nginx kết nối với PHP, cần khởi động dịch vụ php-fpm
[root@centos2 ~]# cd /usr/local/php/etc/
[root@centos2 /usr/local/php/etc]# cp php-fpm.conf.default php-fpm.conf
[root@centos2 /usr/local/php/etc]# vim php-fpm.conf
#Sửa đổi các tham số được chỉ định
pid = run/php-fpm.pid
[root@centos2 /usr/local/php/etc]# cd /usr/local/php/etc/php-fpm.d/
[root@centos2 /usr/local/php/etc/php-fpm.d]# cp -a www.conf.default www.conf
[root@centos2 /usr/local/php/etc/php-fpm.d]# vim www.conf
#Sửa đổi người dùng và nhóm được chỉ định
user = nginx
group = nginx
Sửa đổi kịch bản khởi động Nginx; bỏ ghi chú cho php-fpm
4.2 Sửa đổi tệp cấu hình Nginx để nhận diện tệp có đuôi .php
[root@centos2 /usr/local/php/etc/php-fpm.d]# cd ../../../nginx/conf/
[root@centos2 /usr/local/nginx/conf]# vim nginx.conf
#Bỏ ghi chú các dòng sau và sửa đổi tệp include thành fastcgi.conf, chú ý dấu chấm phẩy và dấu ngoặc nhọn ở cuối mỗi dòng
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params; #Sửa thành fastcgi.conf
}
Kiểm tra:
Khởi động lại Nginx, tạo tệp kiểm tra PHP, truy cập và xem có được phân tích không
4.3 Sửa đổi tệp cấu hình Nginx để tự động tải tệp PHP theo mặc định
location / {
root html; #Đường dẫn trang web mặc định của Nginx: prefix/html
index index.html index.php index.htm; #Thiết lập trang mặc định và thứ tự ưu tiên
}