Hướng dẫn cài đặt webserver LEMP lên VPS/Server.

HƯỚNG DẪN CÀI ĐẶT MÔ HÌNH WEBSERVER LEMP (LINUX, NGINX, MYSQL, PHP) LÊN VPS/SERVER TẠI 123HOST.

123host Xin chào các bạn!

Đến với bài viết này kỹ thuật sẽ hướng dẫn các bạn cài đặt mô hình webserver rất phổ thông và rất được ưu chuộng vì có nhiều tình tiện lợi và có dung lượng nhẹ nhành đó là mô hình LEMP. Mô hình LEMP bao gồm một nhóm các phần mềm mã nguồn mở như Nginx, MySQL và php-fpm. Để cài đặt mô hình này các bạn có thể làm theo các bước thực hiện như sau:

Bước 1: Cài đặt kho phần mềm cần thiết.

Ở bài viết này chúng ta sẽ cài đặt tất các phần mềm bằng lệnh Yum, tuy nhiên Nginx sẽ không có sẫn trong kho phần mềm của Centos cho nên chúng ta phải cài đặt thêm kho thư viện của Epel. Ta dùng lệnh sau để cài đặt epel-release

yum install epel-release

Bước 2: Cài đặt MySQL.

Bước tiếp theo ta bắt đầu cài đặt Mysql và các phần phụ thuộc. Ta dùng lệnh sau để cài đặt.

yum install mysql-server

Sau khi cài đặt thành công ta dùng lệnh sau để khởi động MySQL.

service mysqld restart

Ta dùng dòng lệnh sau để cấu hình 1 số thứ cơ bản của MySQL.

/usr/bin/mysql_secure_installation

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Dòng trên có nghĩa là hệ thống sẽ hỏi mật khẩu root của MySQL do là lần cà đặt đầu tiên nên ta nhấn enter để trống.

Sau đó quá trình cài đặt sẽ điễn ra 1 cách tự động nhưng sẽ ra 1 loạt các câu hỏi ta chỉ cấn nhấn để tiếp tục quá trình cài đặt.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Bước 3: Cài đặt Nginx.

Cũng giống như là Mysql ta vẫn dùng yum để cài đặt Nginx, câu lệnh như sau:

yum install nginx

Sau khi cài đặt thành công ta tiến hành bật Nginx lên bằng dòng lệnh sau:

 

service nginx start

Đến đây Nginx đã được cài đặt thành công trên máy chủ của chúng ta. Để kiểm tra hoạt động ta có thể dùng trình duyệt truy cập vào máy chủ bằng IP của máy chủ theo dạng

http://IP_của_máy_chủ

Bước 4: Cài đặt PHP.

Cũng như các phần mềm khác ta vẫn cài đặt bằng yum. Ta dùng lệnh như sau để tiến hành cài đặt dịch vụ php.

yum install php-fpm php-mysql

Bước 5: Cấu hình PHP.

Chúng ta sẽ cần có một thay đổi nhỏ trong tập tin php.ini, dùng lệnh sau để chỉnh sửa file php.ini

vi /etc/php.ini

Chúng ta tìm đến dòng cgi.fix_pathinfo=1 ta thay đổi từ số 1 thành số 0

cgi.fix_pathinfo=0

Sau khi thay đổi xong chúng ta save lại và thoát ra.

Thông số trên có ý nghĩa là nếu như ta để số 1 thì php sẽ lục hết tất cả các file .php để xử lý khi nhận được request, nếu ta để số 0 thì php chỉ xử lý chính xác những tập tin .php nào được chỉ định mà thôi. Cách này cũng như là một cách để hoạt động an toàn hơn.

Bước 6: Cấu hình Nginx.

Hiện tại thì nginx và php-fpm đã được cài đặt chung trên máy chủ nhưng 2 phần mềm sẽ không hoạt chung với nhau mà chúng đang hoạt động hoàn toàn tách biệt. Chúng ta cần thực hiện một vài cái cấu hình sau để Nginx và php có thể hoạt động chung với nhau hoàn chỉnh.

Đầu tiên chúng ta cần chỉnh sửa file nginx.conf, lệnh như sau:

vi /etc/nginx/nginx.conf

Ta tìm đến dòng worker_processes auto và thay đổi thành worker_processes 1.

Bây giờ ta tiến hành cấu hình virtual host cho nginx, ta thực chỉnh sửa file default.conf như sau:

vi /etc/nginx/conf.d/default.conf

Sau đó ta thực hiện chỉnh sửa và thêm các thông tin trong file đó như sau:

# The default server
#
server {
    listen       80;
    listen       [::]:80;   
    server_name example.com; // Thay đổi example.com thành tên domain của mình.
    location / {
        root   /usr/share/nginx/html; // Có thể thay đổi nếu muốn thay đổi thư mục gốc của website.
        index index.php  index.html index.htm;
    }
    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Sau khi đã thay đổi chính xác ta lưu lại và thoát ra, tiếp tục cấu hình cho php-fpm hoạt động với nginx bằng cách chỉnh sửa tập tin www.conf.

vi /etc/php-fpm.d/www.conf

Ta tìm đến các giá trị và thay đổi cho phù hợp.

listen.owner = nobody   =>  listen.owner = nginx

listen.group = nobody   =>  listen.group = nginx

Ta tiếp tục tìm và thay đổi các giá trị thành như trong đoạn sau:

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;	will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

Sau khi hoàn thành ta lưu tập tin lại và khởi động lại php-fpm bằng lệnh sau:

service php-fpm restart

Bước 7: Phân quyền sở hữu lại cho thư mục chứa website.

Để webserver hoạt động chính xác ta cần phân quyền sở hữu lại cho các thư mục chứa website bằng dòng lệnh như sau:

chown -R nginx:nginx /usr/share/nginx/html/

Bước 8: Cấu hình khởi động theo hệ thống.

Sau khi các bước cài đặt đã hoàn thành, ta sẽ tiếp tục cấu hình cho các dịch vụ như nginx, mysql, php sẽ khởi động cùng hệ thống như sau.

chkconfig  mysqld on
chkconfig  nginx on
chkconfig  php-fpm on

Bước 9: Kết quả – Kiểm tra

Đến đây quá trình cài đặt đã gần như hoàn thành, chúng ta chỉ cần tạo file info.php để kiểm tra lại hoạt động của webserver có chính xác hay chưa. Ta tạo file info như sau:

vi /usr/share/nginx/html/info.php

Ta thêm các dòng code sau vào file.

<?php
phpinfo();
?>

Lưu lại và thoát ra. Ta khởi động lại nginx theo lệnh sau.

service nginx restart

Ta dùng trình duyệt để truy cập vào máy chủ bằng IP theo đường dẫn như sau để kiểm tra kết quả.

http://IP_may_chu/info.php

Nếu kết quả trả về như hình trên là quá trình cài đặt của chúng ta đã thành công và mô hình webserver LEMP của chúng ta đã hoạt động được hoàn chỉnh rồi đấy các bạn ạ.

Cám ơn các bạn đã đón xem.

Chúc các bạn thành công!

Rate This Article

Hướng dẫn cài đặt webserver LEMP lên VPS/Server.
5 (100%) 1 vote

Leave A Comment?