Bài giảng Lập trình mã nguồn mở (Phần 1)

LỜI NÓI ĐẦU  
Ngày nay việc sử dụng Internet và các dịch vụ trên Internet là một phần tất yếu  
của cuộc sống. Công nghệ Internet và các ứng dụng phát trển trên nền Web và Internet  
đã và đang làm cho đời sống của mỗi chúng ta thay đổi. Internet là một nguồn thông tin  
quí giá phục vụ cho nghiên cứu, cho kinh doanh, cho giải trí … Vì vậy ngày càng có  
nhiều ứng dụng trên Internet, sử dụng giao diện Web. Các công nghệ phát triển Web  
ngày một hoàn thiện.  
Tập bài giảng giới thiệu công nghệ phổ biến nhất đƣợc dùng để tạo các web site  
động: Ngôn ngữ kịch bản PHP và chƣơng trình quản lý cơ sở dữ liệu MySQL. Đây là  
công nghệ rất mạnh và hiệu quả để khai triển khai các dự án mã nguồn mở cũng nhƣ có  
thể sử dụng để trong việc khai thác, sử dụng và phát triển đƣợc các phần mềm mã nguồn  
viết bằng PHP và MySQL nhƣ: Joomla, Moodle, Wordpress, Drupal, NukeViet …  
Tập bài giảng Lập trình mã nguồn mở đƣợc biên soạn cho đối tƣợng sinh viên  
Đại học khoa Công nghệ thông tin, trƣờng Đại học Sƣ phạm kỹ thuật Nam Định. Tập  
bài giảng đƣợc chia làm 3 chƣơng:  
Chƣơng 1: Tổng quan về PHP và MySQL  
Chƣơng 2: Lập trình với PHP  
Chƣơng 3: Sử dụng PHP với MySQL  
Trong quá trình biên soạn chúng tôi xin chân thành cảm ơn các đồng nghiệp  
khoa Công nghệ thông tin, cùng các đồng nghiệp trong trƣờng Đại học Sƣ phạm Kỹ  
thuật Nam Định đã giúp chúng tôi hoàn thành tập bài giảng này.  
Trong lần biên soạn đầu tiên, tập bài giảng không tránh khỏi những sai sót, rất  
mong nhận đƣợc các ý kiến đóng góp của các đồng nghiệp và các bạn đọc nhằm giúp  
cho chất lƣợng của tập bài giảng đƣợc hoàn thiện hơn. Mọi sự đóng góp ý kiến xin gửi  
về Văn phòng Khoa Công nghệ thông tin, trƣờng Đại học Sƣ phạm kỹ thuật Nam  
Định.  
Chúng tôi xin chân thành cảm ơn!  
Nam Định, tháng 12 năm 2014  
Nhóm biên soạn  
Th.s Nguyễn Văn Trung  
Th.s Trần Đình Tùng  
Th.s Phan Đức Thiện  
i
 
MỤC LỤC  
ii  
iii  
iv  
DANH MỤC CÁC HÌNH VẼ  
vi  
vii  
CHƢƠNG 1: TỔNG QUAN VỀ PHP VÀ MYSQL  
1.1. Giới thiệu về mã nguồn mở  
1.1.1. Khái niệm phần mềm mã nguồn mở  
Open Source: Mã nguồn mở.  
Open Source Software: Phần mềm mã nguồn mở.  
Free Software: Phần mềm miễn phí, đôi khi free software đƣợc dùng với ý  
nghĩa bao gồm cả open source software và free software.  
Phần mềm nguồn mở (PMNM) là những phần mềm đƣợc cung cấp dƣới cả  
dạng mã và nguồn, không chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản  
quyền: ngƣời dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên  
tắc chung qui định trong giấy phép PMNM (ví dụ General Public Licence – GPL) mà  
không cần xin phép ai, điều mà họ không đƣợc phép làm đối với các phần mềm nguồn  
đóng (tức là phần mềm thƣơng mại).  
Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu ngƣời dùng trả một số chi  
phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tƣ vấn, vv… tức là những dịch vụ thực  
sự đã thực hiện để phục vụ ngƣời dùng, nhƣng không đƣợc bán các sản phẩm nguồn mở  
vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào.  
Tiện ích mà Open Source mang lại chính là quyền tự do sử dụng chƣơng trình  
cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chƣơng trình, chỉnh sữa  
phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên bản  
cho nhiều ngƣời, quyền tự do cải tiến chƣơng trình và phát hành những bản cải tiến vì  
mục đích công cộng.  
1.1.2. Lợi ích của mã nguồn mở đối với ngƣời phát triển  
Đối với lập trình viên và ngƣời sản xuất phần mềm, sự tự do đáng kể sẽ thay  
đổi các qui định của cuộc chơi. Nó làm cho dễ dàng hơn để tiếp tục cạnh tranh trong  
khi vẫn là nhỏ và để có đƣợc công nghệ hiện đại. Nó cho phép chúng ta tận dụng đƣợc  
ƣu thế công việc của những ngƣời khác, cạnh tranh ngay cả với sản phẩm khác bằng  
việc sửa đổi mã nguồn của riêng mình, dù đối thủ cạnh tranh sao chụp đƣợc có thể sau  
đó cũng tận dụng đƣợc ƣu thế về mã nguồn của chúng ta (nếu nó là copyleft). Nếu dự  
án đƣợc quản lý tốt, thì có khả năng có đƣợc sự hợp tác tự do của một số lƣợng ngƣời  
lớn, hơn nữa, để có đƣợc sự truy cập tới một hệ thống phân phối gần nhƣ hoàn toàn tự  
do và toàn cầu. Dẫu rằng, vấn đề còn lại là làm thế nào để có đƣợc những tài nguyên  
về tài chính, nếu phần mềm không phải là sản phẩm để bán vì tiền hoa hồng.  
1.1.3. Lợi ích của mã nguồn mở đối với ngƣời sử dụng  
Lợi ích lớn nhất trong việc chuyển đổi sang phần mềm tự do nguồn mở là giảm  
tổng chi phí sở hữu, từ các yếu tố sau:  
- Miễn phí bản quyền phần mềm  
1
         
- Miễn phí các phiên bản nâng cấp trong toàn bộ vòng đời sử dụng sản phẩm  
- Giảm chi phí phát triển phần mềm đáp ứng theo yêu cầu nghiệp vụ (sử dụng  
phần mềm, mô-đun có sẵn để phát triển tiếp, sửa đổi điều chỉnh cho phù hợp với  
nghiệp vụ)  
- Kéo dài thời gian sử dụng/tái sử dụng các phần cứng, thiết bị trong khi vẫn  
đảm bảo hiệu năng toàn hệ thống  
- Chi phí đầu tƣ, vận hành hệ thống tập trung cho các dịch vụ “hữu hình” đem  
lại giá trị trực tiếp, thiết thực cho tổ chức nhƣ: tƣ vấn, sửa đổi theo yêu cầu, triển khai,  
đào tạo, bảo trì, nâng cấp hệ thống...  
- Mức chi phí tiết kiệm khoảng 75-80% so với phần mềm license ngay trong  
năm đầu tiên.  
Giảm tối đa sự phụ thuộc vào một vài nhà cung cấp phần mềm dẫn đến dịch vụ  
kém (do không có cạnh tranh), hoặc “bị ép” trong các trƣờng hợp cần đàm phán về chi  
phí, dịch vụ (mỗi FLOSS có thể có nhiều nhà cung cấp dịch vụ tƣơng tự), nâng cấp  
phần mềm, mở rộng hệ thống (với mã nguồn trong tay, có thể dễ dàng nâng cấp, mở  
rộng hệ thống theo yêu cầu trong mỗi giai đoạn phát triển).  
Đối với các hệ thống đang hoạt động, chủ động thực hiện chuyển đổi sẽ tránh  
đƣợc “nguy cơ” bị phạt vi phạm bản quyền và/hoặc bị “bắt buộc” mua license.  
Tăng tính thƣơng hiệu cho doanh nghiệp khi giới thiệu đƣợc với cộng đồng, đối  
tác, khách hàng (đặc biệt là ngoài nƣớc) và không vi phạm bản quyền.  
Tăng cƣờng độ tin cậy, ổn định, tính an toàn, bảo mật (theo báo cáo của Gartner  
& nhiều tổ chức phân tích độc lập) toàn hệ thống.  
1.1.4. Một số phần mềm mã nguồn mở  
OpenOffice: Bộ công cụ phần mềm văn phòng mã nguồn mở, miễn phí và  
tƣơng thích với các định dạng tài liệu của Microsoft Office.  
UniKey: Công cụ hỗ trợ gõ tiếng Việt trên môi trƣờng Windows, miễn phí và  
hiệu quả. Hỗ trợ nhiều bảng mã tiếng Việt và nhiều kiểu gõ tiếng Việt khác nhau. Tích  
hợp công cụ chuyển đổi giữa các bảng mã tiếng Việt với nhau.  
Mozilla Firefox: Trình duyệt web mã nguồn mở phổ biến và tốt nhất hiện nay.  
Hệ điều hành của Linux dành cho máy bàn (PC) và máy tính xách tay (Laptop,  
Netbook...): Ubuntu, Fedora, Hacao, Redhat, CentOS, …  
Cổng thông tin điện tử: Liferay, Uportal, DotnetNuke, ExoPlatform,  
DotnetNuke, Joomla, Moodle …  
Diễn đàn: phpBB, Jforum, mvnForum, SMF …  
1.2. Giới thiệu về PHP  
PHP viết tắt của chữ Personal Home Page ra đời năm 1994 do phát minh của  
Rasmus Lerdorf, và nó tiếp tục đƣợc phát triển bởi nhiều cá nhân và tập thể khác, do  
2
   
đó PHP đƣợc xem nhƣ một sản phẩm mã nguồn mở. PHP là kịch bản trình chủ (server  
script) chạy trên phía server (server side) nhƣ các server script khác (asp, jsp, cold  
fusion). PHP là kịch bản cho phép xây dựng ứng dụng web trên mạng internet hay  
intranet tƣơng tác với mọi cơ sở dữ liệu nhƣ mySQL, Oracle, SQL Server và Access.  
Lƣu ý: Từ phiên bản 4.0 trở về sau mới hỗ trợ session, ngoài ra PHP xử lý  
chuỗi rất mạnh, vì vậy có thể sử dụng PHP trong những có yêu cầu về xử lý chuỗi.  
1.3. Giới thiệu về MySQL  
MySQL, cơ sở dữ liệu SQL mã nguồn mở thông dụng nhất , đƣợc cung cấp bởi  
MySQL AB. MySQL AB là một công ty thƣơng mại thực hiện việc tạo ra các dịch vụ  
cung cấp cho doanh nghiệp đó xung quanh cơ sở dữ liệu MySQL.  
MySQL là một hệ quản trị cơ sở dữ liệu (CSDL): Một CSDL là một tập hợp  
cấu trúc của dữ liệu. Nó có thể là bất kỳ một cái gì từ một danh sách bán hàng đơn  
giản cho tới gallery ảnh hoặc số lƣợng lớn các thông tin trong một mạng doanh nghiệp.  
Để thêm, truy nhập và xử lý dữ liệu đƣợc lƣu trữ trong một CSDL máy tính, ta cần  
một hệ quản trị CSDL nhƣ MySQL. Từ khi các máy tính thực hiện tốt việc xử lý lƣợng  
lớn dữ liệu, quản trị CSDL đóng một vai trò chính yếu trong việc tính toán, nhƣ là các  
công cụ đơn lẻ, hoặc một phần của các ứng dụng khác.  
MySQL là một hệ quản trị CSDL quan hệ: Một CSDL quan hệ lƣu trữ dữ liệu  
trong trong một số bảng chuyên biệt tốt hơn là việc đặt toàn bộ dữ liệu trong một nơi  
lƣu trữlớn. Điều này làm tăng thêm tốc độ và sự linh hoạt. Các bảng đƣợc liên kết với  
nhau bằng cách định nghĩa các quan hệ tạo cho nó khả năng kết nối dữ liệu từ một vài  
bảng khác nhau theo yêu cầu. SQL là một phần của MySQL trong “Structured Query  
Language”- ngôn ngữ chuẩn thông dụng nhất đƣợc dùng để truy nhập các CSDL.  
MySQL là một phần mềm mã nguồn mở: Mã nguồn mở có nghĩa là nó có thể  
đƣợc sử dụng bởi bất kỳ ai cho mục đích sử dụng hoặc thay đổi nào. Bất kỳ ai cũng có  
thể download MySQL từ internet và sử dụng nó mà không phải trả bất kỳ một thứ gì.  
Bất kỳ ai có ý thích cũng có thể nghiên cứu mã nguồn và thay đổi chúng theo yêu cầu  
của riêng mình. MySQL dùng GPL (GNU General Public License) để định ra ta có thể  
đƣợc làm gì và không đƣợc làm gì với phần mềm trong các hoàn cảnh khác nhau. Nếu  
ta cảm thấy khó chịu với GPL hoặc muốn nhúng MySQL trong một ứng dụng thƣơng  
mại thì ta có thể mua một bản quyền thƣơng mại từ các nhà cung cấp.  
Lý do dùng MySQL: MySQL nhanh, đáng tin cậy và dễ dàng để sử dụng.  
MySQL cũng có một tập các đặc điểm rất thiết thực đƣợc phát triển trong một sự hợp  
tác rất chặt chẽ với ngƣời sử dụng. Có thể đem so sánh giữa MySQL và một số hệ  
quản trị CSDL khác trong trang web chấm điểm của nhà cung cấp.  
MySQL đã đƣợc phát triển một cách sáng tạo để nắm bắt các CSDL rất lớn và  
nhanh hơn rất nhiều các giải pháp hiện tại và đã thành công trong việc đƣợc sử dụng  
3
 
trong các môi trƣờng sản xuất đòi hỏi cao trong vài năm. Thông qua quá trình phát  
triển không ngừng, ngày nay, MySQL cung cấp một tập các hàm rất hữu ích và dồi  
dào. Sự kết nối, tốc độ và sự bảo mật đã làm cho MySQL trở nên thích ứng cao cho  
việc truy cập các CSDL trên internet.  
Các đặc điểm về mặt kỹ thuật của MySQL: MySQL là một hệ thống  
client/server bao gồm một SQL server đa luồng cho phép hỗ trợ nhiều thiết bị đầu cuối  
khác nhau, một vài chƣơng trình client khác nhau và các thƣ viện, các công cụ quản trị  
và một vài giao diện lập trình.  
Các nhà cung cấp cũng cung cấp MySQL nhƣ là một thƣ viện đa luồng mà ta có  
thể kết nối trong ứng dụng của ta để đạt tới một sản phẩm nhỏ hơn, nhanh hơn, dễ  
dàng quản lý hơn.  
MySQL có nhiều các phần mềm đƣợc phân phối có sẵn. Điều này thật sự thuận  
tiện cho ta trong việc tìm ứng dụng yêu thích của ta hoặc ngôn ngữ hỗ trợ MySQL  
1.4. Cài đặt cấu hình PHP, MySQL, Apache  
Phần mềm Appserv và Wampserver khi cài đặt là tự động cấu hình webserver  
và php, mysql, apache và các ứng dụng nhƣ phpmyadmin, sqllitemanager.  
1.4.1. Cài đặt Appserv  
Chạy file cài đặt màn hình đầu tiên là.  
Hình 1.1. Cửa số Welcome khi cài AppServ  
Nhấn Next để sang bƣớc tiếp  
4
     
Hình 1.2. Thông tin giấy phép sử dụng phần mềm  
Nhấn Igree để đồng ý giấy phép sử dụng phần mềm  
Hình 1.3. Chọn thư mục để cài đặt  
Nhấn Browse … để chọn thƣ mục cài đặt sau đó nhấn Next để tiếp tục  
Hình 1.4. Chọn các thành phần cần cài đặt  
5
     
Lựa chọn các thành phần cần cài đặt nhấn Next để tiếp tục  
Hình 1.5. Thông tin về người quản lý và port truy cập webserver  
Nhập tên tài khoản, địa chỉ e-mail của ngƣời quản lý; thiết lập cổng http để truy  
cập webserver nhấn Next để tiếp tục.  
Hình 1.6. Nhập mật khẩu cho tài khoản root  
Nhập mật khẩu để đăng nhập hệ quản trị cơ sở dữ liệu MySQL nhấn Install để  
tiến hành cài đặt.  
Hình 1.7. Quá trình cài đặt AppServ  
6
     
Khi kết thúc quá trình cài đặt tạo một Server ảo chạy web PHP. Với cài đặt mặc định.  
- C:\AppServ\www là địa chỉ webroot, nơi copy các file php.  
- C:\AppServ\mysql\data\ chứa CSDL MySQL, mỗi CSDL sẽ là mọt folder, để  
sao lƣu dữ liệu MySQL, đơn gian chỉ việc copy folder này thành nhiều bản sao.  
- Để quản trị CSDL MySQL, truy nhập địa chỉ sau từ trình  
- Vào http://localhost/phpinfo.php để xem thông tin đầy đủ về server vừa cài.  
- Thƣ mục tƣơng tự trên host public_html mặc định là C:\AppServ\www là địa  
chỉ webroot, nơi copy các file php. Mở trình duyệt web đánh địa chỉ http://localhost  
Hình 1.8. Trang chủ của AppServ  
Nhấn vào dòng phpMyAdmin Database Manager Version 2.9.0.2 để vào quản  
lý, tạo database  
Hình 1.9. Đăng nhập vào phpMyAdmin  
7
   
1.4.2. Cài đặt Wampserver  
Wampserver là một phần mềm mã nguồn mở giúp đơn giản quá trình thiết lập  
môi trƣờng thực thi ứng dụng PHP trên hệ điều hành Windows. Các thành phần  
của Wampserver bao gồm Apache, MySQL và PHP, nhƣ vậy chỉ cần cài  
dặt Wampserver lên máy là đã có đủ môi trƣờng để chạy các ứng dụng PHP.  
Bƣớc 1: Để bắt đầu cài đặt Wampserver click đúp vào file Wampserver vừa  
download về, sau dó chọn Next để bắt đầu quá trình cài đặt.  
Bƣớc 2: Nhấn chọn I accept the agreement và nhấn Next để tiếp tục  
Bƣớc 3: Thƣ mục cài đặc mặc định của Wampserver là C:\wamp, nếu muốn  
thay đổi nhấn vào nút Browse và trỏ tới thƣ mục mới sau đó nhấn Next để tiếp tục  
Bƣớc 4: Chọn Next ở bƣớc tiếp theo  
Bƣớc 5: Chọn Install để bắt đầu quá trình cài đặt Wampserver  
Bƣớc 6: Màn hình cài đặt Wampserver  
Bƣớc 7: Để thông tin mặc định cho bƣớc này và nhấn Next  
Bƣớc 8: Hoàn thành các bƣớc cài đặt  
Bƣớc 9: Đến đây là đã cài đặt thành công Wampserver. Sau khi chạy thì  
Wampserver sẻ hiển thị ở khay đồng hồ.  
Biểu tƣợng Wampserver: Màu đỏ: Wampserver chƣa hoạt động, Màu cam bị lỗi  
port (lỗi này có nhiều nguyên nhân nhƣng nguyên nhân chủ yếu là do lỗi xung đột  
port, mặc định Wampserver chạy port 80), Màu xanh: Wampserver đã chạy  
Để tiến hành sửa lỗi nhƣ ta làm nhƣ sau:  
Nếu ở bƣớc 3 không thay đổi thƣ mục cài đặt của Wampserver thì theo đƣờng  
dẫn sau:  
C:\wamp\bin\apache\Apache2.x\httpd.conf  
Mở file httpd.conf và chỉnh lại port : tìm kiếm với giá trị 80 đỗi thành 8080)  
Bƣớc 11: Restart lại Wampserver bằng cách kick chuột trái vào biểu tƣợng  
Wampserver ở khay đồng hồ chọn Restart All Services  
Sau khi Restart lại Wampserver nếu không lỗi gì thì Wampserver sẻ chuyển qua  
màu xanh nhƣ hình thì cài đặt thành công.  
1.5. Xử lý dữ liệu với phpMyAdmin  
MySQL là hệ quản trị cơ sở dữ liệu rất tốt cho Web PHP và nó là miễn phí và  
đƣợc tích hợp trong gói đã cài đặt trƣớc: gồm PHP, cài đặt PHP, Apache, MYSQL và  
phpMyadmin. Bây giờ chúng ta sẽ tiến hành các thao tác tạo, thêm, xóa sửa cơ sở dữ  
liệu trên giao diện phpMyadmin.  
1) Mở phpMyAdmin  
Mở trình duyệt web nào và gõ http://localhost:port/phpMyAdmin và đăng nhập.  
(port là cổng truy cập Webserver).  
8
   
2) Tạo Database  
Bƣớc 1. Nhấn Home chọn Tab database  
Bƣớc 2. Trong mục Create database, khai báo.  
Đặt tên cho cơ sở dữ liệu  
Chọn utf8_general_ci (thể hiện đƣợc tiếng việt)  
Bƣớc 3. Nhấn Create để tạo cơ sở dữ liệu  
Ví dụ: Tạo database có tên là tintuc  
1
3
2
Hình 1.10. Tạo cơ sở dữ liệu tintuc  
3) Tạo Table  
Bƣớc 1. Chọn database muốn tạo bảng  
Bƣớc 2. Mục Name: khai báo tên table muốn tạo  
Bƣớc 3. Mục Number of columns: khai báo số cột trong table  
Bƣớc 4. Nhấn nút Go  
2
3
4
1
Hình 1.11. Tạo bảng dữ liệu  
Bƣớc 5. Khai báo các các cột trong table  
Bƣớc 6. Nhấn nút Save  
9
   
5
6
Hình 1.12. Tạo các trường dữ liệu cho bảng  
4) Thêm dữ liệu vào Table  
Bƣớc 1. Chọn table  
Bƣớc 2. Nhấn link Insert  
Bƣớc 3. Nhập dữ liệu  
Bƣớc 4. Nhấn nút Go  
Ví dụ: Thêm 2 record vào table theloai nhƣ sau:  
TenTL  
ThuTu  
AnHien  
Tin xã hội  
1
2
1
2
2
Giải trí  
3
1
4
Hình 1.13. Nhập dữ liệu cho bảng  
10  
   
5) Xem dữ liệu trong Table  
Bƣớc 1. Chọn table muốn xem dữ liệu  
Bƣớc 2. Nhấn link Browse.  
Mỗi lần hiện 25 records  
Ví dụ: Xem dữ liệu trong table theloai.  
2
1
Hình 1.14. Xem dữ liệu của bảng  
6) Xóa/Sửa dữ liệu trong Table  
Bƣớc 1. Chọn table muốn xóa sửa (ví dụ theloai).  
Bƣớc 2. Nhấn link Browse.  
Bƣớc 3. Hiệu chỉnh/xóa.  
Sửa record: Nhấn nút Edit (chiếc bút chì) trên dòng chứa record.  
Xóa record : Nhấn nút Delete trên dòng chứa record.  
2
1
3
Hình 1.15. Xoá và sửa dữ liệu của bảng  
11  
   
7) Sửa cấu trúc Table  
Bƣớc 1. Chọn table  
Bƣớc 2. Nhấn link Structure  
Bƣớc 3.  
Chỉnh field: Nhấn nút Change  
Xóa field : Nhấn nút Drop  
Thêm cột : Nhấn nút Go trong mục Add  
Hình 1.16. Sửa cấu trúc bảng  
8) Đổi tên Table  
Bƣớc 1. Chọn table cần đổi tên  
Bƣớc 2. Nhấn link Operations  
Bƣớc 3. Rename table to: gõ tên mới  
Bƣớc 4. Nhấn nút Go  
Ví dụ: Đổi tên table theloai thành theloaitin  
2
13  
1
4
Hình 1.17. Đổi tên bảng dữ liệu  
9) Xóa Table  
Bƣớc 1. Chọn cơ sở dữ liệu  
12  
   
Tải về để xem bản đầy đủ
pdf 165 trang yennguyen 23820 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình mã nguồn mở (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_ma_nguon_mo_phan_1.pdf