Hướng dẫn cài đặt LEMP (NGINX-PHP-MYSQL) và tạo Server Blocks trên Debian 8
LEMP là một nhóm các phần mềm mã nguồn mở , LEMP là viết tắt của linux, nginx, php, mysql
Debian là một hệ điều hành máy tính, là bản phân phối miễn phí được phát triển từ sự cộng tác của các tình nguyện viên trên khắp thế giới. Debian được xây dựng dựa trên nền tảng linux với nhiều công cụ cơ bản của hệ điều hành
Bài viết sau đây sẽ hướng dẫn các bạn làm thế nào có thể cài đạt mô hình LEMP trên Debian 8
Bước 1: Cài đặt Nginx
Tiến hành cập nhật gói phần mềm của Debian lên phiên bản mới nhất với lệnh:
# apt-get update -y
Lệnh để cài đặt nginx là:
# apt-get install nginx -y
Để khởi động nginx, ta chạy lệnh sau
# systemctl status nginx
Cho nginx khởi động cùng hệ thống
# systemctl enable nginx
Ta truy cập vào http://<địa chỉ ip> nếu có hình như sau là thành công
Bước 2: Cài đặt php-fpm và cấu hình php-fpm
Để cài đặt các modue, ta chạy lệnh sau
# apt-get install php5-fpm php5-mysql -y
Mở file cấu hình của php-fpm, để thiết lập nó an toàn hơn
# nano /etc/php5/fpm/php.ini
Sau khi mở file php.ini, ta tìm dòng sau
;cgi.fix_pathinfo=1
Sau đó ta bỏ dấu ; đi và thay số 1 thành số 0 như dưới đây
cgi.fix_pathinfo=0
Sau khi sửa file xong, ta chạy lệnh khởi động lại php-fpm
# systemctl restart php5-fpm
Bước 3: Cấu hình nginx để làm việc với php-fpm
Mở file cấu hình mặc định của nginx lên
# nano /etc/nginx/sites-available/default
Các bạn sẽ lấy file nội dung như sau
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Self signed certs generated by the ssl-cert package
# Don’t use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
#
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
#}
# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
# #location ~ /\.ht {
# deny all;
#}
}
Chúng ta sẽ rút gọn và chỉnh sửa tập tin như sau
Chúng ta sẽ thêm index.php để nginx làm việc, thêm địa chỉ vps của bạn, bỏ ghi chú ở location ~ \.php$ và location ~ /\.ht
Lưu ý ở đây chúng ta sẽ chạy php qua php5-fpm.sock nên bỏ ghi chú ở dòng dưới
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name <địa chỉ ip hoặc domain>;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Sau khi thiết lập xong các bạn restart lại nginx
# systemctl restart nginx
Bây giờ chúng ta sẽ kiểm tra xem nginx và php-fpm đã làm việc với nhau chưa, bằng cách tạo 1 file
# nano /var/www/html/info.php
với nội dung
<?php phpinfo(); ?>
Ta truy cập vào trình duyệt với đường dẫn như sau http://<địa chỉ ip>/info.php để kiểm tra kết quả
Kiểm tra xong chúng ta nên xóa file này đi để bảo mật cho vps
# rm -rf /var/www/html/info.php
Bước 4: Cài đặt Mysql
MySQL là một hệ thống quản lý cơ sở dữ liệu rộng rãi triển khai sử dụng cho các tổ chức và lấy dữ liệu.
Để cài đặt Mysql, ta gõ lệnh sau
# apt-get install mysql-server -y
Trong khi cài đặt, MySQL sẽ yêu cầu bạn thiết lập một mật khẩu chủ. Nếu bạn bỏ lỡ cơ hội để thiết lập mật khẩu trong khi các chương trình được cài đặt, nó là rất dễ dàng để thiết lập mật khẩu sau đó từ bên trong MySQL.
Nhập lại mật khẩu
Cuối cùng chạy lệnh thiết lập bảo vệ cho Mysql
# mysql_secure_installation
Nó sẽ hiện ra danh sách sau
Enter current password for root (enter for none): <-- ấn enter
Set root password? [Y/n] <-- Ấn "y" để nhập mật khẩu Mariadb
New password: <-- nhập mật khẩu Mariadb mới
Re-enter new password: <-- nhập lại mật khẩu Mariadb mới
Remove anonymous users? [Y/n] <-- Ấn "y"
Disallow root login remotely? [Y/n] <-- Ấn "y"
Reload privilege tables now? [Y/n] <-- Ấn "y"
Đăng nhập vào MySQL
# mysql -u root -p
Bước 5: Tạo Server Blocks
Tạo 1 thư mục để chứa các code web
# mkdir -p /home/nginx/maxserver.com
Phân quyền cho thư mục
# chown -R www-data:www-data /home/nginx/maxserver.com # chmod -R 755 /home/nginx/maxserver.com
Sao chép file cấu hình mặc định
# cp /etc/nginx/sites-available/default /etc/nginx/sites-available/maxserver.com
Rồi chỉnh sửa file cấu hình vừa được sao chép
# nano /etc/nginx/sites-available/maxserver.com
Chỉnh sửa với nội dung như sau :
Ta sửa đường dẫn root và khai báo server name vào
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/nginx/maxserver.com;
index index.php index.html index.htm index.nginx-debian.html;
server_name www.maxserver.com maxserver.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Kích hoạt file cấu hình /etc/nginx/sites-available/maxserver.com
# ln -s /etc/nginx/sites-available/maxserver.com /etc/nginx/sites-enabled/
Chúng ta phải xóa mẫu kích hoạt sẵn đi nếu không nó sẽ gây xung đột
# rm /etc/nginx/sites-enabled/default
Chỉnh sửa lại file nginx.conf một chút
# nano /etc/nginx/nginx.conf
Tìm dòng sau và xóa dấu # đi
server_names_hash_bucket_size 64;
Khởi động lại nginx
# systemctl restart nginx
Tạo 1 file index để thử
# nano /home/nginx/maxserver.com/index.html
Với nội dung như sau
<html>
<head>
<title>Welcome </title>
</head>
<body>
<h1>Chuc ban thanh cong!</h1>
</body>
</html>
Và cuối cùng chúng ta kiểm tra bằng cách vào trình duyệt trên máy bạn và gõ theo đường dẫn sau
http://<địa chỉ ip hoặc domain của bạn>
Đến đã kết thúc bài cài đặt LEMP và tạo Server Blocks trên Debian 8. Chúc các bạn thành công