c. Theo lĩnh vực cụ thể
1.4. Tổng quan về Apache, PHP và MySQL
Thời đại của các trang Web tĩnh đã qua. Trong nhiều năm trước đây, web tồn tại như một tên miền với các trang HTML đơn giản, liên kết với nhau để tạo ra một site. Ngày nay, người dùng mong muốn các trang Web phải sinh động hơn, được cập nhật thông tin thường xuyên hơn và có nhiều tùy biến. Đồng thời, người quản trị website cũng muốn việc duy trì và cập nhật cá site được thuận tiện hơn. Vì những lý do này và một số yếu tố khác, việc thiết lập trang web chỉ với các tập tin HTML tĩnh đã khơng cịn được chấp nhận nữa. Web là nơi dành cho những ứng dụng động và kết hợp với cơ sở dữ liệu.
Các website động là những thực thể mạnh và linh hoạt, thường được thể hiện dưới dạng các ứng dụng hơn là các website đơn thuần. Các ưu điểm của website động như: Đáp ứng nhiều tham số khác nhau (ví dụ như thời gian của ngày, phiên
bản của trình duyệt người dụng):
- Có giao diện cho phép người quản trị có thể quản lý nội dung của site
- Có “bộ nhớ”, cho phép người dùng đăng ký và đăng nhập, thực hiện gửi bài, đăng bài, đăng tin..
- Dễ dàng duy trì, cập nhật và phát triển.
Hiện nay có rất nhiều cơng nghệ để tạo ra Website động. Các công nghệ thường được sử dụng là: PHP, ASP (Active Server Pages, sản phẩm của
Microsoft), JSP (Java Server Pages), ColdFusion. Website động gần như phải phụ
thuộc vào cơ sở dữ liệu, bên cạnh đó hiện này tồn tại một vài ứng dụng cơ sở dữ liệu có sẵn như MySQL… với chi phí rất thấp hoặc là miễn phí. Trong phần này, chúng tơi đề cập đến việc sử dụng bộ phần mềm mã nguồn mở AMP (Apache,
MySQL, PHP) để xây dựng cổng hệ thống thông tin Học Viện Ngân hàng.
1.4.1. Phần mềm mã nguồn mở AMP1.4.1.1. Khái niệm chung 1.4.1.1. Khái niệm chung
Apache, PHP, MySQL là các phần của chương trình phần mềm mã nguồn mở, phần mềm này là sự hợp tác của những lập trình viên có đầu óc trên thế giới. Bằng việc thay đổi trên những mã nguồn có sẵn, các lập trình viên trên thế giới tiếp tục hồn thiện và phát triền nó ngày càng trở nên mạnh và hiệu quả hơn. Sự đóng góp của những người này được đưa ra công khai cho người khác sử dụng mã nguồn, tạo ra các phần mềm nổi tiếng trên thế giới.
- Phần mềm miễn phí: Vì là mã nguồn mở nờn cỏc lập trình viên có
thể dựa trên mã nguồn sẵn có để phát triển thêm, phần mềm này khơng có bản quyền nên mọi người có thể tự do sử dụng;
- Phần mềm dựa trên nền chữ thập (cross platform) và kỹ thuật trung
lập (technolory neutral): Không bị chi phối bởi một nền tảng cụ thể nào, tập đồn
mã nguồn mở bảo đảm rằng nó khơng được phát triển bởi một cá nhân nào. Do đó định nghĩa mã nguồn mở được cung cấp bởi OSI (open source initiative), mã nguồn mở không phụ thuộc vào bất cứ một kỹ thuật cá nhân hay một loại giao diện, nó phải là một kỹ thuật trung lập;
- Không bị giới hạn bởi những phần mềm khác: điều này có nghĩa là
nếu một chương trình mã nguồn mở phân phối cho nhiều chương trình thì những chương trình khác có thể cũng là mã mở nguồn mở và giao dịch trong tự nhiên, điều này làm cho phần mềm phát triển tối đa và linh hoạt;
- Phần mềm có tính đa dạng: được phát triển bởi nhiều người thuộc
nhiều nền văn hoá, nhiều lĩnh vực phong phú.
1.4.1.2. Cách thức hoạt động
Chúng ta vừa tìm hiểu qua về lịch sử của phần mềm mã nguồn mở, đó là cơ sở quan trọng giúp chúng ta hiểu rõ được vai trò của bộ phần mềm AMP (Apache,
MySQL, PHP) trong thiết kế website của bạn.
Tưởng tượng trang web động như một nhà hàng, khách đến ăn không cần quan tâm đến nó làm ra như thế nào coi như nó có sẵn và người bồi bàn giúp bạn chọn món ăn.
- Apache: Được so sánh như một đầu bếp, khi khách hàng yêu cầu món ăn,
người đầu bếp nhanh nhẹn linh hoạt và có thể chuẩn bị vơ số những món ăn khác nhau. Hoạt động của Apache trong nhiều phương thức giống nhau là phân tích những tệp riêng lẻ và đưa ra kết quả.
- PHP: Được so sánh như người bồi bàn trong khách sạn. Anh ta nhận lời
đề nghị của khách hàng và mang đến món ăn từ trong nhà bếp với những lời hướng dẫn cụ thể.
- MySQL: là những kho lưu trữ các thành phần thông tin.
Khi khách (người thăm trang web) đến nhà hàng (trang web), anh ta sẽ chú ý đến món ăn với nhu cầu của mình. Người bồi bàn (PHP) lấy thức ăn theo yêu cầu từ trong nhà bếp được làm bởi đầu bếp(Apache). Người đầu bếp này sẽ đến kho để lấy các nguyên liệu (dữ liệu - MySQL) để chuẩn bị cho món ăn.
1.4.2. Apache
Apache hay cịn được gọi là chương trình máy chủ HTTP là một chương trình dành cho máy chủ đối thoại qua giao thức HTTP. Apache tương thích với các hệ điều hành hiện nay như Unix, Microsoft Windows, Novell Netware và một số hệ điều hành khác. Apache đóng vai trị quan trọng trong q trình phát triển website trên thế giới. Sự ra đời của Apache nhằm tạo ra một máy chủ HTTP mạnh mẽ, và đặc biệt đó là mà nguồn mở miễn phí. Dự án được tham gia quản lý bởi một nhóm người tình nguyện trên tồn thế giới sử dụng internet và web để truyền thông, lên kế hoạch và phát triển server. Những người tình nguyện này được biết đến như một nhóm Apache, bên cạnh đó do là phần mềm mã nguồn mở nên hàng trăm người sử dụng đã đóng góp ý kiến để cho phần mềm máy chủ HTTP ngày càng hoàn thiện hơn.
Vào khoảng tháng 2 năm 1995, phần lớn phần mềm máy chủ được ưa chuộng vào thời điểm đó là HTTP deamon cơng cộng được phát triển bởi Rob McCool tại trung tâm máy tính trường đại học Illinois, Urbana-Champaign. Tuy nhiên sự phát triển httpd đã bị đình trệ sau khi Rob rời NCSA vào khoảng giữa năm 1994, và rất nhiều nhà phát triển web đã cố gắng phát triển phần mềm của chính họ và khắc phục các lỗi phát sinh. Một nhóm nhỏ các nhà quản trị web thường xuyên liên lạc với nhau qua thư điện tử mục đích nhằm mục đích phối hợp các thay đổi của họ (dưới hình thức đưa ra các bản vá lỗi). Brian Behlendorf và Cliff Skolnick thiết lập cùng danh sách gửi thư, chia sẻ các không gian thông tin, quyền đăng nhập cho các nhà phát triển trên cùng một máy tính tại California Bay Area, với băng thông được tặng bởi HotWired. Đến cuối tháng 2, tám người có đóng góp to lớn lên việc hình thành nhóm Apache đó là: Brian Behlendorf, Roy T.Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S.Thau, Andrew Wilson và thêm sự đóng góp từ Eric Hagberg, Frank Peters, Nicolas Pioch.
Bằng cách sử dụng httpd 1.3 làm nền tảng, họ thêm vào các bản vỏ cỏc lỗi đã được cơng bố trước đó và đưa ra các tính năng cao cấp khác, thử nghiệm trờn chớnh máy chủ của họ và cho ra đời phiên bản công khai đầu tiên (0.6.2) của máy chủ Apache vào tháng 4 năm 1995. Sự trùng hợp ngẫu nhiên, trong thời gian này NCSA khởi động lại kế hoạch phát triển của họ do đó Brandon Long và Beth Frank của nhóm phát triển NCSA đã gia nhập danh sách thành viên danh dự để hai dự án của thể chia sẻ các ý tưởng và bản sửa lỗi.
Máy chủ Apache ban đầu đã là một sự thành công lớn, nhưng họ cho rằng mã ban đầu cần được kiểm tra kỹ lưỡng và thiết kế lại. Do đó trong suốt khoảng thời gian tháng 5 – tháng 6 năm 1995, Robert Thau đã thiết kế một kiến trúc máy chủ máy (được đặt tên là Shambhala) bao gồm cấu trúc module và API giúp cho việc mở rộng được tốt hơn. Nhóm làm việc đã chuyển từ máy chủ này sang nền
máy chủ mới từ tháng 6 và đưa thêm vào các đặc điểm mới từ phiên bản 0.7.x và đưa ra kết quả tương đối hoàn chỉnh trong phiên bản 0.8.8 trong tháng 8.
Sau khi phát hành rộng rãi phiên bản thử nghiệm beta, rất nhiều lỗ hổng trong nền tảng này được chỉ ra trong tài liệu của David Robinson, sau đó đã xây dựng thờm cỏ module để sửa lỗi và phiên bản Apache 1.0 được chính thức phát hành vào ngày 01 tháng 12 năm 1995.
Sau 1 năm được đưa vào sử dụng, máy chủ Apache đã vượt qua httpd của NCSA và chiếm vị trị máy chủ số 1 thế giới.
Đến năm 1999, các thành viên của tập đoàn Apache đã thành lập ra tổ chức với tên gọi là Apache Software Foundation để cung cấp pháp lý, hỗ trợ tài chính cho các máy chủ Apache HTTP. Tổ chức đã đặt ra kế hoạch cho sự phát triển vững chắc và mở rộng phần mềm này trong tương lai.
Và cho đến thời điểm hiện nay, theo sự đánh giá của Netcraft thì máy chủ Apache vẫn chiếm thị phần số 1 trong thế giới máy chủ.
Develope
r February 2012 Percent March 2012 Percent Change
Apache 397,867,089 64.92% 420,337,139 65.24% 0.32 Microsoft 88,210,995 14.39% 88,971,973 13.81% -0.58 nginx 60,627,200 9.89% 65,369,149 10.15% 0.25 Google 19,394,196 3.16% 21,150,938 3.28% 0.12
Apache đóng vai trị như là web server của bạn : cơng việc chính của nó là phân tích các u cầu của trình duyệt web và đưa ra những kết quả chính xác. Apache rất hữu ích và có thể hồn thành hầu hết các yêu cầu của người dùng. Một số tính năng nổi trội của Apache hiện nay:
- Mật khẩu bảo vệ trang web cho nhiều người sử dụng - Tùy biến trang báo lỗi
- Hiển thị danh sách mã nhiều cấp của ngơn ngữ HTML, và có khả năng xác định tầng của trình duyệt cho phép chấp nhận nội dung
- Cho phép sử dụng các bản ghi lỗi trong nhiều định dạng tùy biến - Máy chủ ảo cho các địa chỉ IP khác nhau
- DirectoryIndex chỉ dẫn cho nhiều tệp tin - Khơng giới hạn bí danh URL
1.4.3. PHP
1.4.3.1. Lịch sử ra đời PHP
PHP ban đầu được viết tắt bởi cụm từ Personal Home Page, và được phát triển từ năm 1994 bởi Rasmus Lerdorf. Ban đầu chỉ là một bộ đặc tả Perl, được sử dụng để lưu dấu vết người dùng trờn cỏc trang web. Sau đó, Rasmus Lerdorf đã phát triển PHP như một máy đặc tả (Scripting engine). Vào giữa năm 1997, PHP đã được phát triển nhanh chóng với sự u thích của nhiều nhà lập trình viên. Sau đó PHP khơng cịn là một dự án cá nhân của Rasmus Lerdorf và đã trở thành một công nghệ web quan trọng. Zeev Suraski và Andi Gutmans đã hoàn thiện việv phân tích cú pháp cho ngơn ngữ để rồi vào tháng 6 năm 1998, PHP3 đã ra đời (phiên bản này
có phần mở rộng là *.php3). Cho đến thời điểm đó, PHP chưa một lần được phát
triển chính thức, một u cầu viết lại tồn bộ đặc tả được đề xuất, ngay sau đó PHP4 ra đời (phiên bản này có phần mở rộng khơng phải là *.php4 mà là *.php).
Vỡ tính hữu dụng, khả năng phát triển khơng ngừng, PHP đã bắt đầu được sử dụng trong môi trường chuyên nghiệp và nú đó trở thành “PHP: Hypertext Preprocessor”. Theo website chính thức của PHP tại địa chỉ www.php.net thì PHP là “một ngơn ngữ kịch bản nhúng trong HTML”
“PHP nhúng trong HTML”, có nghĩa là PHP có thể được đặt rải rác trong HTML, giúp cho việc phát triển website động được dễ dàng. PHP là một ngôn ngữ kịch bản (scripting language). Khác với ngơn ngữ lập trình, PHP được thiết kế để
chỉ thực hiện điều gì đó sau khi một sự kiện xảy ra (ví dụ khi người dùng gửi một biểu mẫu hoặc chuyển tới một URL).[11]
Hình 1.11: Trang chủ PHP
PHP là một cơng nghệ phía máy chủ (server-side) và không phụ thuộc môi trường (cross-platform). Cả hai yếu tố này đều rất quan trọng. Khái niệm cơng nghệ phía máy chủ nói đến việc mọi thứ trong PHP đều xảy ra trên máy chủ (ngược với mỏy khỏch client là máy của người dùng). Tính chất khơng phụ thuộc vào môi trường cho phép PHP chạy trên hầu hết các hệ điều hành như Windows, Unix (các biến thể của nó). Macintosh… Một điều cũng rất quan trọng là cỏc mó kịch bản PHP viết trên máy chủ này sẽ làm việc bình thường trờn cỏc máy chủ khác mà khơng cần chỉnh sửa hoặc nếu có thì chỉ chỉnh sửa rất là ít. Và hiện giờ theo như trang chủ PHP thì phiên bản mới nhất của PHP là phiên bản PHP5.4.0.
PHP được sử dụng để phát triển Website động vỡ nú tốt, nhanh và dễ dàng nghiên cứu hơn các giải pháp khác. PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu có sẵn, tính bền vứng, linh động và khả năng phát
triển khơng giới hạn. Tất cả các đặc tính trên đều miễn phí vì PHP là mã nguồn mở, PHP rất dễ với người mới sử dụng và có khả năng làm được mọi thứ đáp ứng các yêu cầu của lập trình viên chuyên nghiệp.
PHP được sử dụng ngày càng nhiều và đã bắt kịp ASP (vốn được xem là
ngôn ngữ kịch bản phổ biến nhất), PHP là module thông dụng với máy chủ Apache
(máy chủ web phổ biến nhất hiện này) và nú đó có mặt trên 12 triệu website.
1.4.3.2. Vai trị của PHP
Một số đánh giá so sánh về PHP và ASP.NET
Bảng 1.1: So sánh giữa PHP và ASP
PHP4 PHP5 ASP.NET
Giá thành phần mềm Miễn phí Miễn phí Miễn phí Giá thành nền tảng Miễn phí Miễn phí Mất phí
Tốc độ + + - Hiệu quả + + - Bảo mật + + + Nền tảng máy chủ + + - (duy nhất chỉ IIS hỗ trợ) Nền tảng hệ điều hành máy chủ Bất kỳ Bất kỳ Win32 Hỗ trợ mã nguồn + + -
Hướng đối tượng - + +
Bảng tổng hợp danh sách các site thông dụng nền tảng và ngôn ngữ dùng để xây dựng chúng.
Bảng 1.2: Danh sách các site thông dụng sử dụng PHP
Site Thành lập Nền tảng máy chủ Ngôn ngữ
google.com 11/1998 Linux C, Java, C++,
PHP & MySQL facebook.com 2/2004 Linux PHP & MySQL
và C++
YouTube.com 2/2005 Linux C, Java, MySQL
Yahoo.com 8/1995 Linux C++, C, Java,
PHP & MySQL MSN.com (quản lý bởi Microsoft) 8/1995 Windows ASP.net Live.com (quản lý bởi Microsoft) 8/2008 Windows ASP.net
Wikipedia 1/2001 Linux PHP & MySQL
Amazon.com 10/1995 Linux & Solaris C++, Java, J2EE
WordPress.com 11/2005 Linux PHP & MySQL
1.4.3.3. Cách thức hoạt động của PHP
PHP là ngôn ngữ máy chủ, mã lệnh PHP sẽ tập trung trên máy chủ để phục vụ các trang Web theo u cầu người dùng thơng qua trình duyệt (Browser).
Khi người dùng truy cập Website viết bằng PHP, máy chủ đọc mã lệnh PHP và xử lý chúng theo các hướng dẫn đã được mã hóa. Trong ví dụ ở hình dưới đây,
mã lệnh PHP yêu cầu máy chủ gửi một dữ liệu thích hợp (mã lệnh HTML) đến trình duyệt Web, trình duyệt sẽ xem nó như một trang HTML tiêu chuẩn.
Hình 1.12: Các thức hoạt động của PHP
Điều này khác với site HTML tĩnh ở chỗ: Khi có một yêu cầu, máy chủ chỉ đơn thuần gửi dữ liệu HTML đến trình duyệt web và khơng xảy ra một sự biên dịch nào từ phía máy chủ. Đối với người dùng cuối và trên trình duyệt web các trang home.html và home.php trông cũng tương tự nhau, nhưng về bản chất nội dung của trang tạo ra theo các cách khác nhau.
Tóm lại, sự khác nhau lớn nhất giữa các trang tạo bằng HTML đơn thuần và trang tạo bằng PHP đó là các trang tạo bằng HTML khơng được thực hiện trên máy chủ Web cũn cỏc trang viết bằng mã PHP được thực hiện trên máy chủ Web do đó nó linh động và mềm dẻo hơn.
Một số điểm nội bật của PHP
- PHP thực hiện với tốc độ rất nhanh và hiệu quả, một máy chủ bình thường có thể đáp ứng được hàng triệu lượng truy cập mỗi ngày.
- PHP hỗ trợ kết nối tới rất nhiều hệ quản trị CSDL khác nhau như: PostgreSQL, mSQL, Oracle, dbm, filePro, Hyperware, Informix, InterBase,