LAMP là gì?
LAMP (Linux, Apache, MySQL, PHP) là một nền tảng phát triển Web nguồn mở sử dụng Linux làm hệ điều hành, Apache làm máy chủ Web, MySQL làm hệ thống quản lý cơ sở dữ liệu quan hệ và PHP làm ngôn ngữ lập trình hướng đối tượng. (Đôi khi Perl hoặc Python được sử dụng thay cho PHP.) Vì nền tảng này có bốn lớp, LAMP đôi khi được gọi là ngăn xếp LAMP. Các ngăn xếp có thể được xây dựng trên các hệ điều hành khác nhau. Các nhà phát triển sử dụng các công cụ này với hệ điều hành Windows thay vì Linux được cho là đang sử dụng WAMP ; với hệ thống Macintosh, là MAMP; và với hệ thống Solaris, là SAMP.
DataOnline cài đặt và tối ưu cho tất cả các gói dịch vụ VPS giá rẻ
Mục tiêu việc cài đặt LAMP
Nắm được cách cài đặt & config thủ công (cài chay) để 1 website hoạt động. Hiểu được cách config và cách vận hành từng service.
Các bước cài đặt LAMP
Sau khi cài đặt CentOS (Linux) xong, chạy lệnh:
sudo yum update
1. Cài đặt máy chủ webserver (Apache):
sudo yum install httpd
Bật webserver lên:
sudo systemctl start httpd.service
Cho phép dịch vụ webserver chạy tự động ngay khi khởi động lên (start on boot):
sudo systemctl enable httpd.service
Truy cập thử vào link xem đã hiển thị màn hình testing chưa, sử dụng chrome truy cập vào IP của máy chủ:
http://1.2.3.4
2. Cài đặt database Mysql
sudo yum install mariadb-server mariadb
Bật database lên:
sudo systemctl start mariadb
Chạy câu lệnh để mariadb cài đặt các chính sách bảo mật. Tiếp theo, sẽ là 1 loạt các câu hỏi, cần trả lời:
sudo mysql_secure_installation
Set root password? [y/n] Y
New password: Type in a password you would like to use
Re-enter new password: Retype the password from the previous field
Remove anonymous users? [y/n] Y
Disallow root login remotely? [y/n] Y
Remove test database and access to it? [y/n] Y
Reload privilege tables now? [y/n] Y
Cho phép database chạy tự động ngay khi OS khởi động lên:
sudo systemctl enable mariadb.service
3. Cài đặt PHP:
sudo yum install php php-mysql
Restart lại PHP để đảm bảo là nó đã load module PHP vào trong Apache:
sudo systemctl restart httpd.service
Folder mặc định của PHP sau khi cài đặt lên là:
/var/www/html/
4. Test php xem đã chạy được chưa:
Trước tiên, cài đặt bộ editor trên SSH trước để dễ dàng thao tác:
sudo yum install nano
Chạy lệnh này để mở bộ editor + tạo file:
nano /var/www/html/info.php
Paste dòng này vào trong file:
Lưu lại bằng cách ấn Ctrl + O sau đó ấn Ctrl + X để thoát.
Truy cập vào link sau xem đã hiển thị ra trang PHP Info chưa:
http://ip_address/info.php
Thêm dịch vụ này vào trong firewall và restart lại:
sudo firewall-cmd –permanent –zone=public –add-service=http
sudo firewall-cmd –permanent –zone=public –add-service=https
sudo firewall-cmd –reload
So sánh: LAMP so với MEAN
a. Các thành phần công nghệ:
LAMP stack dựa trên sự kết hợp của Linux, Apache, MySQL và PHP/Perl/Python. Tuy nhiên, MEAN stack dựa trên MongoDB, Express.js, AngularJS và Node.js. Sự lựa chọn giữa hai stack phụ thuộc vào các yêu cầu cụ thể và sự quen thuộc với các công nghệ.
b. Tùy chọn cơ sở dữ liệu:
LAMP stack chủ yếu sử dụng MySQL làm hệ thống quản lý cơ sở dữ liệu quan hệ. Mặt khác, MEAN stack sử dụng MongoDB, một cơ sở dữ liệu NoSQL linh hoạt. Hãy cân nhắc đến nhu cầu về cấu trúc và khả năng mở rộng của dự án khi lựa chọn giữa các tùy chọn cơ sở dữ liệu này.
c. Khả năng mở rộng và hiệu suất:
Cả ngăn xếp LAMP và MEAN đều mang lại lợi ích về khả năng mở rộng và hiệu suất, nhưng chúng khác nhau về cách tiếp cận. Ngăn xếp LAMP, với các thành phần công nghệ đã được chứng minh, đã được sử dụng rộng rãi để xử lý lưu lượng truy cập cao và các ứng dụng quy mô lớn. Khả năng máy chủ mạnh mẽ của Apache và khả năng xử lý các truy vấn phức tạp của MySQL góp phần vào khả năng mở rộng của nó. Ngăn xếp MEAN, với các thành phần dựa trên JavaScript, tận dụng kiến trúc không chặn và theo sự kiện của Node.js, khiến nó có khả năng mở rộng cao và phù hợp với các ứng dụng thời gian thực.
d. Đường cong học tập và hỗ trợ cộng đồng:
Đường cong học tập cho LAMP stack có thể thay đổi tùy thuộc vào ngôn ngữ lập trình được chọn (PHP, Perl hoặc Python). Tuy nhiên, stack đã tồn tại trong một thời gian dài, dẫn đến tài liệu hướng dẫn, hướng dẫn mở rộng và cộng đồng các nhà phát triển mạnh mẽ. MEAN stack, với cách tiếp cận tập trung vào JavaScript, có thể dễ dàng hơn đối với các nhà phát triển đã quen thuộc với JavaScript. Ngoài ra, MEAN stack được hưởng lợi từ một cộng đồng năng động và đang phát triển, cung cấp hỗ trợ và tài nguyên phong phú.
Ưu và nhược điểm của LAMP Stack:
Ưu điểm:
- Áp dụng rộng rãi và các thành phần công nghệ trưởng thành.
- Nguồn tài nguyên sẵn có dồi dào và sự hỗ trợ rộng rãi của cộng đồng.
- Khả năng tương thích với nhiều môi trường lưu trữ khác nhau.
Nhược điểm:
- Có khả năng xảy ra lỗ hổng bảo mật nếu không được cấu hình đúng cách.
- Một số tính năng và chức năng nhất định có thể yêu cầu thêm plugin hoặc thư viện.
- Hỗ trợ hạn chế cho các ứng dụng thời gian thực so với ngăn xếp MEAN.
Ưu và nhược điểm của MEAN Stack:
Ưu điểm:
- Hệ sinh thái thống nhất dựa trên JavaScript giúp đơn giản hóa quá trình phát triển.
- Xử lý dữ liệu hiệu quả với cơ sở dữ liệu NoSQL linh hoạt của MongoDB.
- Phù hợp cho các ứng dụng thời gian thực và ứng dụng trang đơn (SPA).
Nhược điểm:
- Đường cong học tập dành cho các nhà phát triển chuyển đổi từ các ngăn xếp truyền thống.
- Khả năng tương thích hạn chế với một số hệ thống cũ hoặc yêu cầu của doanh nghiệp.
- Mới hơn so với LAMP, dẫn đến quy mô cộng đồng nhỏ hơn.
Stack nào phù hợp với bạn? Lựa chọn giữa LAMP stack và MEAN stack phụ thuộc vào nhiều yếu tố. Hãy xem xét các hướng dẫn sau:
Chọn ngăn xếp LAMP nếu:
- Bạn có kinh nghiệm với PHP, Perl hoặc Python.
- Bạn cần có khả năng cơ sở dữ liệu quan hệ mạnh mẽ.
- Bạn cần khả năng tương thích với nhiều môi trường lưu trữ khác nhau.
- Bạn ưu tiên các thành phần công nghệ tiên tiến và cộng đồng nhà phát triển lớn mạnh.
Chọn ngăn xếp MEAN nếu:
- Bạn thích môi trường phát triển thống nhất dựa trên JavaScript.
- Bạn cần xử lý hiệu quả dữ liệu không quan hệ với MongoDB.
- Mục tiêu của bạn là phát triển các ứng dụng thời gian thực hoặc các ứng dụng một trang.
- Bạn cảm thấy thoải mái với một cộng đồng đang phát triển và các công nghệ mới nổi.
Phần kết luận:
Tóm lại, cả LAMP stack và MEAN stack đều có điểm mạnh và điểm yếu. Việc lựa chọn giữa chúng phụ thuộc vào yêu cầu cụ thể của dự án, chuyên môn của nhóm và nhu cầu mở rộng quy mô dài hạn của bạn. Hãy cân nhắc các công nghệ, cơ sở dữ liệu, khả năng mở rộng quy mô, đường cong học tập và hỗ trợ của cộng đồng để đưa ra quyết định sáng suốt. Thử nghiệm và khám phá cả hai stack sẽ giúp bạn có được kinh nghiệm trực tiếp và cuối cùng chọn stack phù hợp nhất với mục tiêu phát triển web của bạn.