Xây dựng hoàn chỉnh webserver trên Linux

Nhiều khi chúng ta lướt web hàng ngày xem phim, tin tức, thế có khi nào chúng ta tự đặt câu hỏi cho mình rằng, những website này được xây dựng như thế nào? Bài viết sẽ hướng dẫn các bạn triển khai một hệ thống web server hoàn chỉnh và chạy được như sau.

1. Yêu cầu: Để có thể xây dựng được 1 hệ thống web server, chúng ta cần có những phần mềm dịch vụ sau:
+Apache(http://httpd.apache.org/docs/2.2/programs/httpd.html) +PHP(http://php.net/)
+MySQL(http://www.mysql.com/)
2. Cài đặt: Một câu hỏi được đặt ra ở phần này, chúng ta nên cài đặt gói binary(yum, rpm) hay build từ source, 2 phương pháp cài đặt này có gì khác nhau, ưu và nhược điểm của chúng thế nào, sẽ được mình trình bày ở một bài viết khác, trong phạm vi bài này tôi sử dụng tiện ích yum. Có thể tham khảo bài này
a. Apache: Để cài đặt apache các bạn vào terminal và gõ lệnh sau:
sudo yum install httpd
sudo service httpd start
-Lệnh 1, dùng để cài đặt apache thông qua tiện ích yum
-Lệnh 2, sau khi cài đặt xong, sử dụng lệnh này để tiến hành start dịch vụ httpd.
*Để kiểm tra xem Apache được cài đặt, vào trình duyệt của bạn và gõ địa chỉ IP của máy chủ (ví dụ http://ip). Các trang web sẽ hiển thị dòng chữ “It works!” là apache đã làm việc.
b. MySQL: Tương tự như apache để cài đặt MySQL các bạn cũng thực hiện như trên, nhưng tên dịch vụ lúc này không phải httpd mà là mysql:
sudo yum install mysql-server
sudo service mysqld start
Sau khi nó được cài đặt, bạn có thể thiết lập một mật khẩu root MySQL thông qua lệnh:
sudo /usr/bin/mysql_secure_installation
Dấu nhắc sẽ yêu cầu bạn nhập mật khẩu root hiện tại của bạn.
Kể từ khi bạn chỉ cần cài đặt MySQL, bạn chưa có mật khẩu root, nên tại bước này bạn cứ nhấn Enter. Enter current password for root (enter for none): OK, successfully used password, moving on…
Sau đó dấu nhắc sẽ hỏi bạn có muốn thiết lập một mật khẩu cho người dùng root hay không. Nếu muốn thì chọn Y và làm theo hướng dẫn.
CentOS tự động hóa quá trình thiết lập MySQL, yêu cầu bạn một loạt các câu hỏi Yes hay No.
Cách dễ nhất là nói Yes cho tất cả các tùy chọn. Cuối cùng, MySQL sẽ restart và thực hiện những thay đổi mới.
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!
c. PHP PHP là một ngôn ngữ kịch bản web mã nguồn mở được sử dụng rộng rãi để xây dựng các trang web động.
Để cài đặt PHP trên máy chủ của bạn, mở terminal và gõ lệnh này:
sudo yum install php php-mysql
* Cuối cùng: Chúng ta cũng nên thiết lập các tiến trình dịch vụ tự động chạy khi khởi động server (php sẽ chạy tự động sau khi Apache bắt đầu):
sudo chkconfig httpd on
sudo chkconfig mysqld on
3.Kết luận: Ở phần này, chỉ mang tính chất giới thiệu làm quen và hướng dẫn nhanh cho những ai muốn xây dựng 1 hệ thống web server đơn giản. Trên thực tế, để 1 hệ thống web server có thể phục vụ cho hàng triệu đến hàng chục triệu request trên 1 giây thì chắc hẳn bao nhiêu đây sẽ không đủ, đón chờ các bài tiếp theo.