Cài đặt web server Nginx trên Raspberry Pi

Post Reply
boco.cf
Posts: 13
Joined: Wed Apr 17, 2019 1:29 pm

Cài đặt web server Nginx trên Raspberry Pi

Post by boco.cf »

Với Raspberry Pi, bạn có thể hosting một trang web cá nhân chuyên nghiệp một cách đơn giản với một số dòng lệnh, và mọi thứ bạn cần làm đều nằm trong hướng dẫn sau. Đây là cách thiết lập máy chủ web trên Raspberry Pi.

Cách thiết lập máy chủ web trên Raspberry Pi

Để chạy máy chủ web chúng ta cần: Linux, nginx, MySQL và PHP. Nói tóm lại, sử dụng Linux làm hệ điều hành trên thiết bị lưu trữ máy chủ, nginx làm máy chủ, MySQL làm hệ thống quản lý cơ sở dữ liệu và PHP để xử lý phía server.

Trong trường hợp này, bản phân phối Linux sẽ là Raspbian. Khi Raspbian hoạt động và chạy trên Raspberry Pi của bạn, bạn sẽ thấy rằng nó thật dễ dàng để mọi thứ khác hoạt động.

Bước 1: Cài đặt Raspbian

Cài đặt Raspbian bằng thẻ SD, giống như bạn làm với bất kỳ dự án dựa trên Raspbian nào khác. Để biết thêm về cách cài đặt hệ điều hành, hãy xem bài viết của chúng tôi về cách cài đặt Raspbian trên Raspberry Pi.

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

Chúng ta cần cập nhật các packages và sau đó cài đặt nginx. Mở terminal và chạy lần lượt từng lệnh sau:

Code: Select all

sudo apt update
sudo apt install nginx
Sau khi cài đặt xong, ta có thể test web server được rồi, ở trình duyệt trên Pi ta gõ http://localhost/

Image

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

Chúng ta cần MySQL, một hệ thống quản lý cơ sở dữ liệu, để lưu trữ và quản lý dữ liệu cho trang web. Cũng mở terminal và chạy lệnh sau:

Code: Select all

sudo apt install mysql-server
Trong quá trình cài đặt, bạn sẽ được yêu cầu đặt mật khẩu gốc (để trống nghĩa là bạn sẽ không cần có mật khẩu).

Code: Select all

sudo mysql_secure_installation
Lúc này, bạn sẽ có tùy chọn thay đổi mật khẩu gốc. Gõ "no" nếu không muốn cài đặt mật khẩu. Gõ "yes" nếu muốn đồng ý đặt mật khẩu.
Ngoài việc cài đặt mật khẩu ra, những yêu cầu (Y/N) còn lại bạn hãy chọn Y.

Image

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

Quay lại terminal, chạy lệnh sau:

Code: Select all

sudo apt install php-fpm php-mysql
Hãy sửa file php.ini (file cài đặt của PHP), sẽ an toàn hơn.

Code: Select all

sudo nano /etc/php/7.0/fpm/php.ini
Tìm dòng có nội dung ;cgi.fix_pathinfo = 1 và thay đổi thành cgi.fix_pathinfo = 0. Bạn có thể tìm thấy nó với chức năng tìm kiếm (Ctrl + W). Sau đó thoát bằng Ctrl + X và khi được hỏi lưu thì gõ Y.

Sau đó, khởi động lại PHP:

Code: Select all

//sudo systemctl restart php-fpm
sudo service php7.0-fpm restart

//tham khảo link sau để biết cách restart PHP service trên nhiều phiên bản linux
https://www.cyberciti.biz/faq/how-to-reload-restart-php7-0-fpm-service-linux-unix/
Bước 5: Cấu hình nginx để sử dụng PHP

Để nginx hoạt động tốt với PHP, cần config:

Code: Select all

sudo nano /etc/nginx/sites-available/default
Bạn sẽ chỉnh sửa một số thứ, sao cho trông nó như thế này:

Code: Select all

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 [your public IP];

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
Đoạn code bên trên, bên cạnh biến server_name, cần phải điền [your public IP], bạn có thể tìm bằng cách truy cập whatismyip.com để check ip của máy Raspberry của bạn.

Cuối cùng, kiểm tra lại và reload nginx.

Code: Select all

sudo nginx -t
sudo /etc/init.d/nginx reload
Bây giờ kiểm tra hoạt động của PHP như thế nào

Hãy đổi tên file index.nginx-debian.html thành tên là index.php

Code: Select all

cd /var/www/html/
sudo mv index.nginx-debian.html index.php
Mở file index.php bằng trình soạn thảo:

Code: Select all

sudo nano index.php
Sau đó bổ sung đoạn mã php kiểm tra PHP info như sau:

Code: Select all

<?php echo phpinfo(); ?>
Ở trình duyệt trên máy Pi, gõ localhost để kiểm tra:

Image

Bước 6: Thiết lập cổng chuyển tiếp (Fowarding)

Bước này là thiết lập để có thể truy cập vào máy chủ web bằng IP public của bạn, mà đã kiểm tra bằng trang whatismyip.com ở bên trên.

Xác định địa chỉ IP của router của bạn, sau đó truy cập vào giao diện quản trị router, vào mục Fowarding và thiết lập port chuyển tiếp theo thông tin sau:
Service Port: 80
Internal Port: 80
IP Address: [your Pi's IP address]
Protocol: TCP
Common Service Port: HTTP
Thay thế [your Pi's IP address] bằng địa chỉ IP máy Pi của bạn, bằng cách dùng lệnh "hostname -I" trên terminal. Sử dụng 80 cho các cổng và TCP cho giao thức của bạn. (trường hợp của tôi là để mặc định ở Protocol và Common Service Port).

Bây giờ bạn đã có một máy chủ web hoạt động. Truy cập trang web của bạn bằng cách nhập địa chỉ IP public của bạn trên thanh địa chỉ trình duyệt web từ bất kỳ thiết bị kết nối internet nào. Việc còn lại là bạn sẽ dựng một website để có thể share cho bạn bè, cần một số setup để làm được việc đó, tôi sẽ hướng dẫn ở những bài sau.
Donate:
DGB address: D5SDMcJX6r1cJoPjWUfRj5BSfM2Y4Qvnzr

Post Reply