Xây dựng webserver từ A → Z ( 700k ) sử dụng máy tính nhúng

Xây dựng webserver từ A → Z ( 700k ) sử dụng máy tính nhúng

Bạn có ý định làm cho bản thân một một blog, một web bán hàng hay một diễn đàn ? bạn có thắc mắc làm thế nào để làm một website và nó cần những gì không ? mình sẽ trả lời cầu hỏi đó giúp bạn
Để xây dựng 1 website thì cần 3 yếu tố chính: 2 yếu tố đầu là nền tảng của website, thứ nhất là máy chủ (server), thứ 2 là tên miền ( domain ) và yếu tố cuối cùng chính là mã nguồn website của bạn.
Trong nội dung bài viết này mình sẽ trình bày về phần cơ sở, nền tảng của website mà mình đã làm.
Trước hết các bạn cần biết máy chủ webserver là gì ?
Là một máy tính chạy 1 hệ điều hành ( windows, linux, mac os …) có kết nối internet và được cài 1 mềm cấu hình máy chủ như apache, nginx… và một cơ sở dữ liệu như mysql và cuối cùng là các phần mềm giúp chạy mã nguồn của website (javascript, php…) trên nền đó.
weberver mà mình nói đến ở đây không chỉ được sử dụng làm máy chủ web, mà bạn cũng có thể cấu hình nó để nó trở thành một trạm VPN, hay nơi lưu trữ dữ liệu cho các ứng dụng di động…và nhiều ứng dụng khác nữa
Những ứng dụng khác của server nếu có thể thì mình sẽ giới thiệu sau . Bây giờ sẽ đi vào nội dung chính của bài viết.

Blog kinh nghiệm là website được mình xây dựng từ  A \( \rightarrow \) Z . Với giá tiền khoảng 700k,
Máy chủ : orange pi zero 350K
Thẻ nhớ: 16 GB 100k
Domain : blogkinhnghiem.net 250k

Mình đã làm nó như thế nào, bài viết này mình sẽ nói về kinh nghiệm của bản thân, cũng như chi tiết trong việc xây dựng webserver.

Chuẩn bị

Máy chủ

phần cứng ở đây mình sử dụng là một máy tính nhúng mini. Cụ thể là mình sử dụng Orange pi zero (512 MB) với giá tiền khoảng 350k.
Các bạn có thể chọn các loại tương tự như raspberry pi, hay các đời orange pi khác . Nói chung là các dòng máy này giá cả rất rẻ, mà ứng dụng được vào rất nhiều lĩnh vực. Hiện tại mình cũng đang build một trạm cluster với các node là orange pi zero để ứng dụng machchine learning.
Tiếp theo, là mình sử dụng một thẻ nhớ 16 GB. Dùng làm bộ nhớ cho webserver, các bạn có thẻ chọn thẻ nhớ khác, nhưng tối thiếu là 8 GB và tốc độ cũng nên đạt class 10.
Ở đây mình sử dụng là orange pi, nên mình sẽ hướng dẫn trên orange pi, tiếp theo các bạn sẽ cài hệ điều hành cho orange pi, hướng dẫn: Cài hệ điều hành cho orange pi

Nat port

Bước tiếp, các bạn cần Nat port ( mở cổng ) để cho các ip bên ngoài mạng nội bộ có thể truy cập vào máy được, nếu không Nat port thì chỉ có các ip dạng 192.168.1.x ( các ip trong nội bộ có thể truy cập đến orange pi ), để nat port thì các bạn tự search nhé vì trên mạng có rất nhiều bài viết nói về cách mở cổng.
Các bạn truy cập router mà mở các cổng 21, 22, 80, 443 trên  ip của orange pi.
Sau khi các bạn mở cổng thì bạn vào trang tromcap.com để check xem các cổng đã mở chưa. Khi các bạn check thì có thể các cổng đó báo là chưa được vì chưa có thiết bị nào trong mạng lắng nghe tại các cổng đó. Nhưng cổng 22 thì chắc chắn phải được, vì orange pi đã lắng nghe sẵn dịch vụ ssh tại cổng 22. Còn những cổng còn lại ta sẽ cấu hình sau.

Domain

Tiếp theo các bạn cần phải có tên miền, để có tên miền thì các bạn có thể dùng 2 cách. Dùng tên miền miễn phí của các nhà cung cấp như noip.com , dot.tk ,…Cách thứ 2 là các bạn mua cho mình 1 tên miền, bạn chỉ cần search google sẽ ra rất nhiền nhà cung cấp tên miền trả phí. Bạn có thể vào trang canhme.com để tìm những khuyến mại.

Trỏ domain về ip của server

Thông thường thì mạng internet ở nhà bạn thường sẽ có ip động, vì thế để trỏ domain về ip của máy chủ thì chúng ta cần sử dụng 1 phần mềm của bên thứ 3.
Thứ nhất mình điều hướng domain đến nameserver của trang web dynu.com , Trang dynu.com có một dịch vụ miễn phí nhưng rất hay, nó cho phép bạn trỏ một domain bất kì đến một máy chủ có ip động.
Thứ hai mình sử dụng phần mềm ddclient để cập nhật ip cho trang web dynu.com

Hướng dẫn chi tiết : link

Cài đặt

Blogkinhnghiem.net được phát triển trên nền wordpress, và sử dụng máy chủ là LAMP ( linux + apache2 + mysql + php ).
Sau khi làm xong bước chuẩn bị thì chúng ta có thể bắt đầu cấu hình cho webserver được rồi. Ở phần cấu hình này mình chia ra làm 3 mục chính, thứ nhất là bộ phần mềm LAMP, thứ 2 là các phần mềm cần thiết kèm theo.

LAMP

Bước 1: cài apache2, chạy lệnh sau:

sudo apt-get install apache2 -y

Bước 2: Cài php

sudo apt-get install php libapache2-mod-php -y

Bước 3: Cài mysql

sudo apt-get install mysql-server php-mysql -y

Đến đây cơ bản là máy linux của bạn đã có thể chạy được các trang web định dạng html, php rồi. Khi bạn cài xong apache2 thì phần mềm sẽ tự động thiết lập lắng nghe ở cổng 80.

Các phần mềm cần thiết

Do bài viết của mình là nói về kinh nghiệm của bản thân xây dựng webserver nên các phần mềm cần thiết ở đây mình cũng sẽ giới thiệu dựa trên server của mình. Thứ nhất là vsftpd, là phần mềm giúp biến máy chủ linux của bạn thành 1 trạm ftp, và do trang web của mình sử dụng nền wordpress nên cũng cần thiết ftp để sử dụng các dịch vụ trên đây. Thứ hai là nodejs, nhằm để phát triển trang web sau này, nó dùng để chạy các lệnh javascript trên máy chủ. Cuối cùng bạn cần cài phpmyadmin để quản lý và có giao diện trực quan để thao tác với mysql.

Cài vsftpd

Để cài vsftp các bạn nhập lệnh sau:

sudo apt-get install vsftpd

Bây giờ là cấu hình cho vsftpd hoạt động.
Đầu tiên các bạn lưu lại file cấu hình gốc của vsftpd bằng lệnh sau:

sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak

Tiếp theo bạn ghi vào file cấu hình của vsftpd bằng lệnh sau:

sudo nano /etc/vsftpd.conf

bạn copy đoạn nội dung dưới đây và dán vào file cấu hình:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=NO
secure_chroot_dir=/var/run/vsftpd/empty
rsa_cert_file=/etc/apache2/ssl/certificate.crt
rsa_private_key_file=/etc/apache2/ssl/private.key
ssl_enable=NO
allow_anon_ssl=NO
allow_writeable_chroot=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
syslog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

Đế vsftpd có thể hoạt động bạn cần restart nó:

sudo /etc/init.d/vsftpd restart

Cài nodejs

để cài nodejs thì bạn cần chạy 2 lệnh:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash –

sau đó chạy lệnh:

sudo apt-get install -y nodejs

Như vậy là bạn đã cài đặt thành công nodejs lên máy chủ của mình.

Cài phpmyadmin

Để cài phpmyadmin các bạn sử dụng lệnh sau:

sudo apt-get install phpmyadmin

Sau khi chạy lệnh phần mềm yêu cầu tạo 1 tài khoản phpmyadmin trong mysql các bạn chọn yes, sau đó bạn nhập mật khẩu bạn muốn cho user phpmyadmin.

Tiếp theo các bạn cần tạo 1 người dùng trong mysql, để sử dụng cho wordpress, bạn chạy lệnh sau:

mysql

Nhập lệnh :

CREATE USER ‘user’@’localhost’ IDENTIFIED BY ‘password’;

user: là tên tài khoản bạn muốn
password: là mật khẩu

Tiếp theo, cấp quyền cho người dùng, mình thì sẽ cấp full quyền lên sẽ dùng lệnh sau:

GRANT ALL PRIVILEGES ON * . * TO ‘user’@’localhost’;

Cuối cùng là lệnh:

FLUSH PRIVILEGES;

wordpress

Cài đặt

Cuối cùng là một công cụ để phát triển trang web, mình lựa chọn wordpress và đây cũng là lựa chọn của rất nhiều người, bởi vì nó cung cấp rất nhiều module để làm web, bạn có thể làm blog, mạng xã hội, diễn đàn, web media…

Để cài wordpress các bạn thực hiện các lệnh sau:
đầu tiên các bạn dụng lệnh cd để chuyển đến thư mục gốc của web. Mặc định là ( /var/www )

cd /var/www

tiếp theo, sử dụng wget để download wordpress về các bạn chạy lệnh sau:

wget  https://wordpress.org/latest.tar.gz

Bây giờ là giải nén file vừa tải về:

tar -zxvf latest.tar.gz

Sau khi giải nén sẽ được 1 thư mục là wordpress, bây giờ bạn hãy xóa thư mục html bên trong /var/www

sudo rm -r html

Tiếp theo bạn đổi tên thư mục wordpress thành html

mv wordpress html

Như vậy là các bạn đã cài đặt xong rồi.

Cấu hình

Bước 1: Bạn hãy truy cập vào phpmyadmin để tạo 1 cơ sở dữ liệu cho wordpress bằng cách sau, lấy laptop của bạn mở trình duyệt lên vào truy cập vào địa chỉ, http://your_domain/phpmyadmin
nếu bạn chưa trỏ domain về ip của bạn, thì bạn hãy truy cập, http://localhost/phpmyadmin
tiếp theo, bạn đăng nhập bằng tài khoản và mật khẩu của bạn đã tạo ra lúc trước.
Sau đó bạn chọn mục cơ sở dữ liệu, nhập tên cơ sở dữ liệu bạn muốn tạo và chọn nút tạo. Đến đây bạn đã tạo xong cơ sở dữ liệu rồi.

Bước 2: Cấu hình trên wordpress

Các bạn truy cập vào link sau: http://your_domain hoặc http://localhost
Sau đó các bạn nhập đầy đủ các trường trong đó.

database name: là tên cơ sở dữ liệu bạn vừa tạo
Username và password: là tài khoản và mật khẩu truy cập cơ sở dữ liệu cảu bạn
còn 2 mục cuối để nguyên như thế.
Sau đó bạn chọn submit.
Bây giờ bạn tiếp tục nhập, tên domain của website của bạn, và bạn tạo 1 tài khoản để truy cập vào wordpress của bạn.
Đến đây trang web của bạn đã xây dựng xong phần cơ sở.
Để phát triển và xây dựng nội dung trang web thì bạn có thể lên mạng search những bài viết hướng dẫn cách sử dụng wordpress nhé, cái này cũng không quá khó bạn có thể tự mày mò cũng được.
Như vậy là mình đã trình bày xong cách mà mình tự xây dựng webserver.

Bài viết của mình đến đây là kết thúc. Cảm ơn bạn đã theo dõi.