Tải bản đầy đủ (.docx) (116 trang)

TÌM HIỂU VỀ LỊCH SỬ PHÁT TRIỂN CỦA NGÔN NGỮ LẬP TRÌNH PHP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.17 MB, 116 trang )

MỤC LỤC

LỜI MỞ ĐẦU
Trong thời đại ngày nay, website đã phát triển như một công cụ để trao đổi thông
tin, mua bán trên trên mọi lĩnh vực. Sự ra đời của các ngôn ngữ lập trình khiến
cho việc thiết kế lên một website cũng không còn quá khó khăn. Có rất nhiều
ngôn ngữ được sử dụng để tạo ra một trang web đáp ứng được nhu cầu của
người sử dụng. PHP (Personal Home Page) là một trong số đó, là kịch bản trên
phía trình chủ (Sever Scipt) cho phép chúng ta xây dựng trang web trên cơ sở dữ
liệu. Với nhiều ưu điểm nổi bật mà PHP được rất nhiều người sử dụng. PHP giúp
1


thiết kế web dễ dàng hơn, chi phí hơn, do đó sẽ tiết kiệm nhiều hơn cho việc
thiết kế web so với các ngôn ngữ khác như Perl, CGI, ASP.
Cùng với sự hình thành của Internet, sự ra đời và phát triển của hệ thống
website đã làm cải thiện và phong phú hơn cho xã hội hiện nay. Với xu thế đó,
xây dựng website trở thành một hành động “cần được xem xét” đối với lập trình
viên.
Khác với mô hình lập trình Desktop thông thường, lập trình trên môi trường web
chủ yếu dựa vào mô hình Client-Server và giao thức HTTP để làm việc. Hiện tại,
có khá nhiều ngôn ngữ cho phép chúng ta lập trình web như Java, .NET, PHP,
Perl, Python, Ruby on Rails…mỗi ngôn ngữ đều có những ưu và khuyết điểm
riêng. Nội dung của đề tài này sẽ đi vào một số điểm nổi bật của PHP và một số
nhân tố khiến PHP ngày càng trở nên phổ biến như ngày nay.
Với PHP, bạn có thể viết ra nhiều kiểu ứng dụng có mô hình tương tác khác
nhau như thông qua website (HTTP Request – Response), thông qua Command
Line Interface – CLI (Shell, Batch processing…), Web Service (SOAP,
REST…), thông qua ứng dụng Desktop (PHP-GTK)…. Giống như các công
nghệ web khác, PHP là một ngôn ngữ phía Server, có nghĩa là code của bạn sẽ
được triển khai và thực thi trên Server.


Mới ra đời gần 15 năm nhưng PHP đã có sự phát triển nhanh chóng và chóng
mặt. Có thể chỉ ra đây một số ứng dụng nổi tiếng viết bằng PHP như: Yahoo,
Facebook, Wikipedia, Digg, Joomla, WordPress…Sự phổ biến của PHP trong
xây dựng web đã làm cho ngày càng nhiều website triển khai bằng PHP. Một số
dạng web tiêu biểu có thể viết bằng PHP là : Social Network, Message Board
(Forum, Guestbook, Blog…), CMS (Content Management System), E2


Commerce, Multimedia (Image Gallery, Music, Video…), Web Mail, IM
(Instant Message), Office tools…
PHP đựa trên cú pháp của ngôn ngữ lập trình C, chính vì vậy khi làm việc với
PHP bạn phải là người có kiến thức về ngôn ngữ lập trình C, C++, Visual C. Nếu
bạn xây dựng ứng dụng PHP có kết nối cơ sở dữ liệu Mysql, SQL, Server hay
Oracal là điều cần thiết.
Khi người dùng gọi trang PHP, web Server triệu gọi PHP Engine để thông dịch
trang PHP và trả kết quả cho người dùng.
Với sự giúp đỡ và hướng dẫn của thầy giáo, Thạc sỹ Nguyễn Thế Bình với đề tài
: “ Tìm hiểu ngôn ngữ lập trình PHP và các ứng dụng của ngôn ngữ lập trình
PHP”.

CHƯƠNG I: TÌM HIỂU VỀ LỊCH SỬ PHÁT TRIỂN
CỦA NGÔN NGỮ LẬP TRÌNH PHP
1.1

Những khái niệm cơ bản về ngôn ngữ PHP

a.

Khái niệm HTML:


- HTML (HyperText Markup Language) là ngôn ngữ để xây dựng trang web, nó
mô tả cách thức một trang web hiển thị như thế nào trong một trình duyệt.
HTML là một ngôn ngữ mô tả tài liệu, được hình thành từ ngôn ngữ mô tả tổng
3


quát SGML (Standard Generalized Markup Language) do hãng IBM đề xướng
từ năm 1960. HTML không phải là một ngôn ngữ lập trình, nó cung cấp các chỉ
thị định dạng để phục vụ cho việc trình bày văn bản và các đối tượng khác như
hình ảnh, video, các plug in…
- Là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web với các
mẩu thông tin được trình bày trên World Wide Web. HTML được định nghĩa
như là một ứng dụng đơn giản của SGML và được sử dụng trong các tổ chức cần
đến các yêu cầu xuất bản phức tạp. HTML đã trở thành một chuẩn Internet do tổ
chức World Wide Web Consortium (W3C) duy trì. Phiên bản chính thức mới
nhất của HTML là HTML 4.01 (1999). Sau đó, các nhà phát triển đã thay thế nó
bằng XHTML. Hiện nay, HTML đang được phát triển tiếp với phiên
bản HTML5 hứa hẹn mang lại diện mạo mới cho Web.
Bằng cách dùng HTML động hoặc Ajax, lập trình viên có thể được tạo ra và xử
lý bởi số lượng lớn các công cụ, từ một chương trình soạn thảo văn bản đơn
giản – có thể gõ vào ngay từ những dòng đầu tiên – cho đến những công cụ xuất
bản WYSIWYG phức tạp.
- HTML không phải là ngôn ngữ lập trình, nó là ngôn ngữ trình bày.
b.

Khái niệm PHP:

- PHP (viết tắt hồi qui: Hypertext Preprocessor) là một ngôn ngữ lập trình mã
nguồn mở được thiết kế để làm việc trên web.
- PHP là ngôn ngữ lập trình kiểu script, chạy trên Server và trả về mã HTML cho

trình duyệt. Ví dụ :
<html>
<head>
4


<title> Example </title>
</head>
<body>
<?php> echo “Hi, I’m a PHP script!”?>
</body>
</html>
- Mã PHP được đặt trong kiểu tag dặc biệt cho phép ta có thể vào hoặc ra khỏi
chế độ PHP.

1.2

Lịch sử phát triển của ngôn ngữ PHP:

a.

PHP/FI:

- PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus
Lerdof tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của
các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của
ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page
Tools'. Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi
bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử
dụng phát triển các ứng dụng web đơn giản. Rasmus đã quyết định công bố mã

nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó
đồng thời cải tiến mã nguồn.
- PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số
các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay. Nó có các
biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML
nhúng. Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và
có phần thiếu nhất quán.

5


- Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút
được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã
được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng
Internet. Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã
nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người.
- PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian
khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó
đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0.
b.

PHP 3:

- PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các
phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi
Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã
nguồn trước đó. Lý do chính mà họ đã tạo ra phiên bản này là do họ nhận thấy
PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện
tử mà họ đang xúc tiến trong một dự án của trường đại học. Trong một nỗ lực
hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi,

Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế
hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0.
- Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng
mạnh mẽ của nó. Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ
tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính
năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề
xuất các mô đun mở rộng mới. Hoàn toàn có thể kết luận được rằng đây chính là
điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0. Các tính năng khác
6


được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều
cú pháp ngôn ngữ nhất quán khác.
- Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối
liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0
gợi nhắc. Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của
"PHP: Hypertext Preprocessor".
- Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục
ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời
kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên
mạng Internet.
- PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9
tháng được cộng đồng kiểm nghiệm.
c.

PHP 4:

- Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi
Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP.
Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải

tiến tính mô đun của cơ sở mã PHP. Những ứng dụng như vậy đã chạy được trên
PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và
API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng
dụng phức tạp như thế này một cách có hiệu quả.
- Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev
và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần
đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này, và
7


đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào
tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời. Ngoài tốc độ xử lý
được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự
hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông
tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và
cung cấp một vài các cấu trúc ngôn ngữ mới.
- Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng
triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên
mạng Internet.
- Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn
người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và
tài liệu kĩ thuật cho PHP.
d.

PHP 5:

- Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển
PHP tự mãn. Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém
của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử
lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ

dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết Zend
Engine 2.0, lõi của PHP 5.0. Một thảo luận trên Slashdot đã cho thấy việc phát
triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những
bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên
mạng Internet vào khoảng tháng 7 năm 2002. Ngày 29 tháng 6 năm 2003, PHP 5
Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Đó cũng là phiên
bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó đã ra mắt vào tháng
8


10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ
đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã
bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công
bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả
năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều
hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một
chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù
coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong
đó đáng kể là lỗi xác thực HTTP.
- Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu
sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra
một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các
câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những
cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0
cùng những tính năng và cải tiến mới trong SOAP, streams và SPL.
e.

PHP 6:

- Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng

thử đã có thể được download tại địa chỉ . Phiên bản PHP 6
được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví
dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng về
vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ
sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL...

1.3

Một số ưu, nhược điểm của ngôn ngữ PHP

a.

Ưu điểm:
9


Theo báo cáo về việc sử dụng ngôn ngữ PHP tháng 4 năm 2006 của Netcraft thì
trên 20 triệu tên miền trên trang web sử dụng ngôn ngữ PHP. TIOBE đã xuất bản
một mục lục chỉ thị cộng đồng lập trình được cộng đồng phát triển web phát triển
bằng nhiều ngôn ngữ. Chỉ mục này cho thấy rằng xét về tính phổ biến ngôn ngữ
PHP đứng thứ 4 trong số các ngôn ngữ được các nhà phát triển web sử dụng, lên
hạng từ vị trí thứ 5 tại thời điểm năm 2005. Vì thế ngôn ngữ PHP rõ ràng đang
ngày càng được sử dụng nhiều và với PHP 5.0 thì lại càng nhận được sự ủng hộ
từ các nhà phát triển web và những người sử dụng cuối cùng. Không có dấu hiệu
nào cho thấy ngôn ngữ này đang xuống dốc cả.
Một số ưu điểm của ngôn ngữ PHP:
-

Mã nguồn mở


Như các bạn cũng biết PHP là một sản phẩm mã nguồn mở (Open-source)
nên việc cài đặt và tùy biến PHP là miễn phí và tự do. Vì có ưu thế nguồn mở
nên PHP có thể được cài đặt trên hầu hết các Web Server thông dụng hiện
nay như Apache, IIS…
-

Tính Cộng đồng của PHP

Là một ngôn ngữ mã nguồn mở cộng với sự phát triển phổ biến của PHP thì
cộng đồng PHP được coi là khá lớn và có chất lượng. Với cộng đồng phát
triển lớn, việc cập nhật các phiên bản và lỗi phiên bản hiện tại cũng như thử
nghiệm các phiên bản mới khiến cho PHP rất linh hoạt trong việc hoàn thiện
mình. Cộng đồng hỗ trợ, chia sẻ kinh nghiệm của PHP cũng rất dồi dào. Với
rất nhiều diễn đàn, blog trong và ngoài nước nói về PHP đã khiến cho quá
trình tiếp cận của người tìm hiểu PHP được rút ngắn nhanh chóng.

10


-

Thư viện phong phú

Ngoài sự hỗ trợ của cộng đồng, thư viện script PHP cũng rất phong phú và
đa dạng. Từ những cái rất nhỏ như chỉ là 1 đoạn code, 1 hàm (PHP.net…)
cho tới những cái lớn hơn như Framework (Zend, CakePHP, CogeIgniter,
Symfony…) ứng dụng hoàn chỉnh (Joomla, WordPress, PhpBB…). Với thư
viện code phong phú, việc học tập và ứng dụng PHP trở nên rất dễ dàng và
nhanh chóng. Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi bật và
cũng là nguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để phát

triển web.
-

Hỗ trợ kết nối nhiều hệ cơ sở dữ liệu

Nhu cầu xây dựng web có sử dụng cơ sở dữ liệu là một nhu cầu tất yếu và
PHP cũng đáp ứng rất tốt nhu cầu này. Với việc tích hợp sẵn nhiều Database
Client trong PHP đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở
dữ liệu thông dụng. Việc cập nhật và nâng cấp các Database Client đơn giản
chỉ là việc thay thế các Extension của PHP để phù hợp với hệ cơ sở dữ liệu mà
PHP sẽ làm việc. Một số hệ cơ sở dữ liệu thông dụng mà PHP có thể làm việc
là: MySQL, MS SQL, Oracle, Cassandra…
-

Lập trình hướng đối tượng

Ngày nay, khái niệm lập trình hướng đối tượng (OOP) đã không còn xa lạ
với lập trình viên. Với khả năng và lợi ích của mô hình lập trình này nên
nhiều ngôn ngữ đã triển khai để hỗ trợ OOP. Từ phiên bản PHP 5, PHP đã có
khả năng hỗ trợ hầu hết các đặc điểm nổi bật của lập trình hướng đối tượng
như là Inheritance, Abstraction, Encapsulation, Polymorphism, Interface,
Autoload…. Với việc ngày càng có nhiều Framework và ứng dụng PHP viết
11


bằng mô hình OOP nên lập trình viên tiếp cận và mở rộng các ứng dụng này
trở nên dễ dàng và nhanh chóng.
-

Tính bảo mật


Bản thân PHP là mã nguồn mỡ và cộng đồng phát triển rất tích cực nên có
thể nói PHP khá là an toàn. PHP cũng cung cấp nhiều cơ chế cho phép bạn
triển khai tính bảo mật cho ứng dụng của mình như session, các hàm filter dữ
liệu, kỹ thuật ép kiểu, thư viện PDO (PHP Data Object) để tương tác với cơ
sở dữ liệu an toàn hơn. Kết hợp với các kỹ thuật bảo mật ở các tầng khác thì
ứng dụng PHP sẽ trở nên chắc chắn hơn và đảm bảo hoạt động cho website.
-

Khả năng mở rộng cho PHP

Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng
mở rộng cho ứng dụng PHP có thể nói là không có giới hạn.Với thư viện
phong phú và khả năng mở rộng lớn, ứng dụng PHP có thể tương tác với hầu
hết các loại ứng dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã hóa, thao
tác file PDF, Office, Email, Streaming…. Bạn hoàn toàn có thể tự xây dựng
cho mình các Extension để tối ưu, bổ sung các chức năng cho PHP cũng như
tối ưu luôn Core của PHP để phục vụ cho các mục đích mở rộng website của
mình.
b.

Nhược điểm:

- Trong những năm qua, PHP có tính phổ biến và sức ảnh hưởng rộng rãi với các
chủ website chưa có kinh nghiệm. Do đó các ứng dụng được mã hóa bằng ngôn
ngữ PHP trở thành mục tiêu của những kẻ phạm tội máy tính (hacker). Những
nguy hại này được phóng đại lên do tính phổ biến của ngôn ngữ PHP khi phát
12



triển hiện ra những nguy hại này lan nhanh chóng từ máy chủ tới máy khác qua
các cuộc tấn công tự động để tìm kiếm những ảnh hưởng nguy hại này. Các nguy
hại và những cuộc tấn công để lại hậu quả vẫn là vấn đề nhức nhối đối với các
chủ website đang cố bảo vệ máy chủ của mình khỏi bị tấn công hay đột nhập bởi
các phần tử xấu.
- Ngoài những ảnh hưởng nguy hại trên, PHP cũng có những chức năng như hàm
fopen(), lệnh include() và hàm exec() mà bản than chúng là công cụ lớn cho quá
trình xây dựng các ứng dụng động. Tuy nhiên, khi viết mã hóa phù hợp, vẫn xuất
hiện những thiếu xót mà những chức năng trên, có thể bị lạm dụng, cho phép kẻ
xâm hại máy tính và những thứ vẫn thường xem là kẻ tấn công ở mức thấp hoạt
động các cuộc tấn công DOS, những sell PHP, download những khám phá và
thực hiện mưu đồ mã hóa hiểm ác từ máy chủ của bạn mà có thể đã tương đối
bảo mật. Bản chất lí thú và tách rời sự phát triển với PHP mà hoạt động rất tốt là
lí do tương tự để PHP trở thành công cụ phổ biến cho mục đích xấu.
- Việc cài đặt mặc định của PHP thì khá độc lập và có thể sử dụng một vài ứng
dụng tweaking để bảo mật. Tuy nhiên PHP chỉ thực sự đưa ra lựa chọn mô hình
an toàn mà khóa việc cài đặt PHP và hạn chế người dùng sử dụng hầu hết chức
năng. Đây là một xác nhận khó cho các máy chủ chung muốn cho phép máy
khách hoạt động linh hoạt và kiểm soát mã (code) của máy chủ. Vì thế bạn phải
có những giải pháp tiếp cận khác nhau để đảm bảo bảo mật

1.4 Appserv Network
a.

Appserv là gì?

AppServ được phát triển bởi một công ty của Thái Lan – Phanupong Panyadee
(AppServ Foundation). AppServ bao gồm các dịch vụ như Apache, PHP,
13



MySQL và tất cả chỉ cái đặt trong 1 phút . Lần đầu tiên phân phối cung cấp
trênvào 09/10/2001. Nhiều người sử dụng AppServ và phát triển ở khắp mọi nơi
trên thế giới. Ban đầu trang web cung cấp AppServ tiếng Thái và tiếng Anh và
hiện nay đã lên 11 thứ tiếng. Trong tương lai trang web sẽ cung cấp cho các
ngôn ngữ trên thế giới
Gói dịch vụ của AppServ
Apache, PHP: Đây là 2 môi trường để chạy website ứng dụng PHP
b.

MySQL database server: Hệ cơ sở dữ liệu được ứng dụng phổ biến với PHP
phpMyadmin: Công cụ để quản lý MySQL database
Tất cả các gói tải về từ phát hành Binary chính thức. AppServ mục tiêu chỉ cần
thực hiện dễ dàng để thiết lập. Chúng tôi không cung cấp bất cứ điều gì khác hơn
gói chính thức phát hành nhị phân. Bởi vì chúng tôi nghĩ rằng Release nhị phân
chính thức làm việc tốt hơn so với biên dịch nhị phân cá nhân hoặc của bên thứ
ba.
AppServ chỉ có cấu hình đặc biệt khi cài đặt, Apache cấu hình httpd.conf,
MySQL cấu hình my.ini, PHP cấu hình php.ini. AppServ có thể bảo lãnh bất kỳ
gói từ AppServ có thể làm việc ổn định như chính thức của Apache, PHP,
MySQL phát hành.
Mục tiêu của AppServ Chỉ cần Dễ dàng cài đặt. Bạn có thể thiết lập máy chủ
web, máy chủ cơ sở dữ liệu trong 1 minute.For một số AppServ câu hỏi có thể
được sản xuất Web Server hoặc cơ sở dữ liệu. Chúng tôi có thể cho bạn Có!
100% có thể làm cho AppServ để cung cấp Production Server. Tuy nhiên, hệ
điều hành Windows là không đủ tốt cho tải nặng trên web hoặc cơ sở dữ liệu
server.Windows OS kiến trúc sử dụng bộ nhớ nhiều hơn và sử dụng CPU, chúng
tôi khuyên bạn nên sử dụng Linux / Unix hệ điều hành để phục vụ tải nặng của
14



công việc. Bởi vì Linux / Unix hệ điều hành có tốc độ nhanh hơn và sử dụng ít
bộ nhớ và CPU. Nếu bạn so sánh nhấn khi sử dụng hệ điều hành Windows và
Linux / Unix hệ điều hành, bạn cần phải tìm ra một sự khác biệt rất tốc độ. ví dụ
Windows có thể xử lý 1000 người sử dụng mỗi thứ hai, nhưng Linux / Unix hệ
điều hành có thể xử lý hơn 1000 người sử dụng mỗi giây và ăn một ít bộ nhớ và
CPU.
c.

Cài đặt PHP, Apache, MYSQL, phpMyadmin

Trước hết bạn vào trang chủ của AppServ để download AppServ. Các bạn có thể
truy cập và download tại Sau đây là từng
bước cài đặt AppServ:
Bước 1: Kích hoạt file appserv-win32-2.5.10.exe để bắt đầu cài đặt:

Bước 2: Chọn Next. Để tiếp tục bước tiếp theo bạn phải đồng ý với Điều lệ sử
dụng AppServ, nháy vào I Agree để tiếp tục:

15


Bước 3: Chọn thư mục cài đặt. Thư mục cài đặt AppServ được mặc định là ổ C.
Nếu cần chuyển bạn có thể nháy vào Browse… để thay đổi thư mục cài đặt. Bạn
có thể yên tâm cài vào ổ C vì AppServ không bị xóa khi nâng cấp hay cài lại
Windows. Chọn Next để tiếp tục.

16



Bước 4: Chọn các phần mềm để cài đặt. Nếu bạn chỉ cần cài một trong số 4 phần
mềm của AppServ thì bỏ dấu tick vào các phần không cài đặt, nếu cài lần đầu thì
tốt nhất bạn nên giữ nguyên. Chọn Next để tiếp tục.

Bước 5: Đặt cấu hình cho Apache:
- Server Name: Tên của server sẽ chạy Apache, bạn điền localhost
- Admin Email: thông tin của host sẽ gởi tới mail này, nó cũng không quan
trọng, bạn có thể đánh mail bất kỳ hoặc bỏ qua
- HTTP Port: thông số này được mặc định là 80, khi HTTP Port là 80 thì bạn
không cần phải khai báo nó theo sau server

17


Bước 6: Đặt cấu hình MySQL:
- Root password: Đặt mật khẩu cho MySQL Database, mật khẩu này do bạn tự
đặt, username được mặc định là root
- Charecter Sets: Ngôn ngữ cho Database, bạn chọn UTF-8 Unicode để có thể
đánh được tiếng Việt với Unikey
- Old Password: Nháy vào đây nếu bạn có lỗi khi lập trình với phiên bản cũ của
PHP hoặc lỗi “Client does not support authentication protocol requested by
server; consider upgrading MySQL client”
- Enable InnoDB: Nháy vào đây nếu bạn sử dụng InnoDB, tốt nhất bạn nên để
trống

18


Thời gian cài đặt AppServ rất nhanh, chỉ khoảng 1 phút là hoàn thành


19


Bước 7: Hoàn thành cài đặt: Bạn có thể dùng luôn khi nháy Finish

Một số lưu ý sau khi cài đặt
Sau khi cài đặt bạn có thể check xem việc cài đặt của mình đã hoàn tất chưa
bằng cách bật trình duyệt web và gõ http://localhost/, khi đã hiện ra màn hình
như thế này là việc cài đặt đã thành công.

20


Để làm việc với phpMyAdmin, bạn gõ lên trình duyệt
http://localhost/phpMyAdmin/ hoặc ấn trực tiếp trên trang http://localhost/. Đăng
nhập với username mặc định là root và mật khẩu là mật khẩu bạn đã khai báo khi
nãy rồi nháy Log In

Nếu khi đánh localhost mà báo lỗi không tìm thấy trang, thì đó là do Apache
chưa được khởi động. Bạn có thể vào Start –> gõ trong ô tìm kiếm “Services” ùi
ấn Enter. Tìm Apache2.2 chọn Start. Nếu không thể chạy Apache thì tức là có
ứng dụng đang chạy trên HTTP Port 80 (ví dụ Skype), bạn nên tắt hết các ứng
21


dụng trước khi chạy Apache, sau khi khởi động xong thì khởi động lại các ứng
dụng khác cũng được. Sau này khi cần khởi động lại Apache bạn cũng có thể sử
dụng phương pháp này

Thêm một điều nữa là bản mới nhất AppServ6.0 có một số lỗi mà khi cài đặt

xong vào được localhost nhưng không thể truy cập phpMyAdmin, bạn có thể
khắc phục bằng cách như sau:
Các bạn hãy vào thư mục cài đặt và mở file theo như đường dẫn
phpmyadmin/config.inc.php
Tìm dòng :
$cfg['Servers'][$i]['host']= 'localhost';
Sửa nó lại thành :
cfg['Servers'][$i]['host'] = '127.0.0.1';
Sau đó là các bạn có thể truy cập vào phpMyAdmin bình thường.
22


CHƯƠNG II: SO SÁNH NGÔN NGỮ PHP VÀ MỘT SỐ
NGÔN NGỮ KHÁC
2.1 So sánh PHP và ASP.Net:
Để so sánh PHP với ASP.NET ở trên diện rộng hơn chúng ta nên so sánh giải
pháp LAMP (Linux + Apache + MySQL + PHP hay Python) với ASP.Net +
SQL Server (hay Oracle). Dĩ nhiên mọi so sánh đều không thể toàn diện và từng
giải pháp đều có những "nơi" mà giải pháp kia không thể bằng được. Dưới đây là
những so sánh có tính tổng quát nhất.
a.
Thị Phần:
- Theo thống kê mới nhất, hiện nay PHP chiếm 36.1%, ASP.Net chiếm 54.4%,
tuy nhiên tốc độ tăng trưởng của PHP nhanh hơn đáng kể so với ASP.Net (các
giải pháp web trên Java đang bị sụt giảm thị phần).
Điều này phản ánh xu thế chuyển sang các nền tảng mã nguồn mở với hai mục
đích:
+ Giảm giá thành phát triển.
+ Không phụ thuộc vào các "tay chơi" lớn như Microsoft hay Sun.
b.


Kỹ Thuật:

- Theo đánh giá chung, các giải pháp của Microsoft rất tốt ở cấp Enterprise (cái
này thì chỉ có J2EE sánh được). Xin đừng nhầm lẫn giữa khái niệm Enterprise
với website có nhiều người truy cập, ở đây nói về độ phức tạp của các dịch vụ,
23


độ tin cậy, tính khả chuyển… những tiêu chuẩn mà chỉ khi thiết kế các ứng dụng
phục vụ cho các tập đoàn lớn thì chúng ta mới đụng tới. Tuy nhiên đi kèm với nó
cũng là sự phức tạp và tốn kém tài nguyên.
- PHP rất thích hợp hơn cho những nhóm phát triển nhỏ, cho cách phát triển kiểu
agile, nghĩa là có thời gian phát triển và đưa vào sử dụng nhanh. Nhưng điều này
không có nghĩa là PHP dành cho những website có ít người sử dụng, rất nhiều
website có hàng triệu người sử dụng hàng ngày làm trên PHP.
c.

Ngôn ngữ lập trình, nhân lực phát triển:

- ASP.Net, nói chính xác hơn là C# hay VB.Net, là ngôn ngữ lập trình hướng đối
tuợng được thiết kế tốt, thừa hưởng rất nhiều thế mạnh của Java. ASP.Net cũng
có bộ công cụ phát triển hạng nhất: Visual Studio.Net. Nhưng giá phải trả là tài
nguyên và thời gian học. Để tạo một trang web đơn giản bằng ASP.Net khá dễ,
nhưng để hiều sâu sắc cho những vần đề phức tạp hơn lại là cả một quá trình.
- PHP là một ngôn ngữ được sinh ra với mục đích duy nhất là để dùng lập trình
Web: giản dị và dễ hiểu. Mãi đến PHP 5, lập trình hướng đối tượng mới được
đưa vào tương đối đầy đủ. Công cụ phát triển (IDE) cho PHP không có cái nào
sánh được VS nhưng hiện nay nếu dùng Eclipse plug-in cũng có thể nói đạt 8/10
(theo sở thích riêng thì tôi ưa dùng Eclipse hơn VS).

- Một vấn đề nữa là PHP thường nhúng mã logic chương trình vào trang web
(embedded scripts) còn ASP.Net tách rời phần hiển thị và logic rất rõ ràng
(chúng ta nói tới kiến trúc MVC: Modal –View - Controller). Thực tế, bạn hoàn
toàn có thể thực hiện được MVC trong PHP (nhất là PHP 5) nếu thiết kế đúng
bài bản hay dùng các framework như Smarty, PHPCake…
- Vấn đề nhân lực, vì các LTV ASP.Net thích hợp cho các nhóm phát triển lớn
nên khó tìm ra nhân lực cho các dự án nhỏ (đấy là trên thế giới, ở VN thì có thể
là ngược lại!!!).
24


d.

Chi Phí:

- Rõ ràng là phát triển bằng ASP.Net tốn kém hơn nhiều so với PHP. Bạn phải
trả cho SQL Server, Windows Server, Visual Studio, MSDN và hỗ trợ kỹ thuật
cao hơn nhiều so với LAMP là của cộng đồng mã nguồn mở. Dù rằng ở VN
chúng ta thường dùng phần mềm “chùa” nhưng nếu tạo một ứng dụng thương
mại nghiêm túc thì chi phí bản quyền trả cho M$ là rất lớn.
- Ngược lai, chi phí sở hữu tổng cộng (Total ownership cost) của LAMP lại có
thể cao hơn nhất là khi bạn quản trị nhiều server Linux lớn do thiếu các chuyên
gia giỏi về Linux. Đây là vấn đề gây tranh cãi, trong khi Microsoft khẳng định
chi phí cho Windows rẻ hơn thì một số nghiên cứu lại cho kết quả ngược lại.
e.

Tốc độ:

- Có khá nhiều tranh cãi về tốc độ của LAMP hay của ASP.Net + SQL Server
cao hơn. Cái này còn tùy vào cấu hình, đặc thù của ứng dụng. Nhìn chung về mặt

web server, Linux “có tiếng” hơn Windows Server về tốc độ (Google, Yahoo
đều dùng Linux server cho các dịch vụ của mình và tôi không dám phàn nàn gì
về tốc độ cả!). Theo một số người, PHP script nhanh hơn ASP.Net script (như
C#, VB.Net) trong các tác vụ thông thường và tốn ít bộ nhớ hơn, tuy nhiên điều
này cũng còn nhiều tranh cãi!.
- Về database server, MySQL có tốc độ rất tốt (đặc biệt là kiểu MyISAM) nhưng
thiếu một số tính năng cao cấp như stored procedure, trigger (phiên bản MySQL
5 có hỗ trợ các tính năng này nhưng còn yếu và có bug). Bài viết này sẽ giúp bạn
có so sánh nhiều mặt hơn giữa MySQL và SQL Server.
f.

Bảo mật và Virus:

- Khỏi cần phải nói, Linux luôn có tiếng tốt về bảo mật và cũng ít bị các loại
virus nhắm vào. Nhưng để cho trang web của bạn thực sự bảo mật thì lại là vấn
25


×