Professional Documents
Culture Documents
Ma Nguon Mo 9811
Ma Nguon Mo 9811
Ma Nguon Mo 9811
Mục lục
Mục lục ........................................................................................................................ 1
Lời cảm ơn .................................................................................................................. 3
Lời mở đầu .................................................................................................................. 4
Chương I : TỔNG QUAN VỀ MÃ NGUỒN MỞ ................................................... 5
1.1. Giới thiệu phần mềm mã nguồn mở ................................................................. 5
1.2. Một số định nghĩa phần mềm mã nguồn mở .................................................... 5
1.3. Hạn chế của phần mềm mã nguồn mở .............................................................. 7
1.3.1. Đa dạng và phức tạp .................................................................................. 7
1.3.2. Sự dư thừa .................................................................................................. 7
1.3.3. Thiếu các ứng dụng .................................................................................... 7
1.3.4. Bất tiện ....................................................................................................... 7
1.3.5. Thiếu các ứng dụng kinh doanh đặc thù .................................................... 8
1.3.6. Tính tương hỗ với các hệ thống phần mềm đóng....................................... 8
Chương II: GIỚI THIỆU VỀ MÃ NGUỒN MỞ PHP ........................................... 9
2.1. Giới thiệu mã nguồn mở PHP ........................................................................... 9
2.2. Các cách làm việc với PHP ............................................................................... 9
2.3. Cú pháp ........................................................................................................... 10
2.3.1. Cấu trúc cơ bản ........................................................................................ 10
2.3.2. Xuất giá trị ra trình duyệt ........................................................................ 10
Chương III: HƯỚNG DẪN CÀI ĐẶT MÔI TRƯỜNG
PHÁT TRIỂN MÃ NGUỒN MỞ PHP ........................................... 12
3.1. Webserver là gì ? ............................................................................................. 12
3.2. Hướng dẫn cài đặt AppServ trên Windows .................................................... 12
3.2.1. Tải về AppServ ......................................................................................... 12
3.2.2. Cài đặt AppServ ....................................................................................... 13
3.2.3. Đăng nhập thử vào phpMyAdmin ............................................................ 18
3.3. Hướng dẫn cài NukeViet trên localhost .......................................................... 19
Lời cảm ơn
Để hoàn thành được bài cáo báo về môn công nghệ mã nguồn mở này chúng
em xin gửi lời cảm ơn chân thành tới giảng viên bộ môn: Thầy Phạm Đức Hồng đã
cung cấp tài liệu và hướng dẫn chúng em trong suốt quá trình học tập và tìm hiểu về
đề tài; truyền ý tưởng, niềm đam mê cho chúng em để chúng em có nhiều cơ hội trau
dồi thêm kiến thức về mã nguồn mở.
Em hy vọng thầy và các bạn sẽ có thật nhiều ý kiến đóng góp giúp bài báo cáo
của chúng em được hoàn thiện hơn nữa. Một lần nữa nhóm chúng em xin chân thành
cảm ơn thầy !
Lời mở đầu
Phần mềm nguồn mở 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 đã được quy định.
PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus
Lerdorf 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.
Quá trình phát triển của NukeViet đi từ tự phát cho đến chuyên nghiệp là một điển
hình của con đường phát triển mã nguồn mở trên thế giới. NukeViet có quá trình
phát triển từ năm 2004, Từ việc sử dụng sản phẩm PHP-Nuke để làm cho website
người Việt xa xứ, Nguyễn Anh Tú - một lưu học sinh người Việt tại Nga - đã cùng
cộng đồng Việt hóa, cải tiến thành NukeViet. Được sự đón nhận của đông đảo người
sử dụng, NukeViet đã liên tục được phát triển và trở thành một ứng dụng thuần Việt.
Cho đến phiên bản 3.0, đội ngũ phát triển NukeViet đã tách khỏi ảnh hưởng lạc
hậu của PHP-Nuke và xây dựng NukeViet thành một ứng dụng khác biệt hoàn toàn.
Với 100% dòng code được viết mới, NukeViet 3.0 đã cho kết quả là Website đạt
chuẩn xHTML 1.0 và CSS 2.1 cũng như hỗ trợ Ajax từ trong bộ nhân.Cùng với việc
thành lập doanh nghiệp chuyên quản mã nguồn, NukeViet chính thức bước vào thời
kỳ phát triển chuyên nghiệp.
Trong bài báo cáo này chúng em xin giới thiệu về ngôn ngữ lập trình PHP và ứng
dụng xây dựng website tin tức từ mã nguồn nukeviet.
– Gnu’s Not Unix, để đối nghịch hoàn toàn với CopyRight !) hay còn gọi là giấy
phép GPL (General Public Licence) là một bước tiến quan trọng theo hướng tự do
hóa của các giấy phép phần mềm. Giấy phép GPL yêu cầu không những mã nguồn
gốc phải được phân phối theo các qui định của GPL mà mọi sản phẩm dẫn xuất cũng
phải tuân thủ GPL.
GPL cho người dùng tối đa quyền hạn và tự do đối với các PMNM theo GPL, cụ
thể người dùng có quyền không những sao chép, sửa đổi, mua bán các PMNM dưới
CopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất. Tóm
lại nếu PMNM gốc đã theo CopyLeft thì mọi PMNM dẫn xuất của nó cũng đương
nhiên theo CopyLeft.
1.3.2. Sự dư thừa
Sự chia nhánh mã nguồn có thể dẫn đến sự lãng phí trong quá trình phát triển nó.
Nếu các nguồn phát triển được kết hợp và tổ chức lại một cách tốt hơn thì hiệu suất
sẽ được nâng cao.
Thêm vào những mâu thuẩn trên, người ta phải xem xét việc dùng một sản phẩm độc
quyền chẳng hạn như của Microsoft vốn rất nổi tiếng với việc chuyển sang dùng
PMMNM phải học cách sử dụng các ứng dụng mới.
<script language="php">
echo ("some editors don't like processing instructions");
</script>
<% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<%echo .." %>
Cách đầ u chỉ có thể sử dụng nếu những tag ngắn được cho phép sử dụng. Có thể sửa
short_open_tag trong cấu hình của php hoặc biên dịch file .php với lựa chọn cho
phép dùng các tag ngắn.
Tương tự như vậy, cách thứ 4 chỉ có tác dụng nếu asp_tag được đặt trong file cấu
hình của PHP.
2.3. Cú pháp
Về tổng quan PHP có cú pháp khá tương đồng với 1 số ngôn ngữ như C, java. Tuy
nhiên, tự bản thân chúng cũng có những điểm rất riêng biệt.
2.3.1. Cấu trúc cơ bản
PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. Chỉ khác, đối với
PHP chúng ta có nhiều cách để thể hiện.
Cách 1 : Cú pháp chính:
<?php Mã lệnh PHP ?>
Cách 2: Cú pháp ngắn gọn
<? Mã lệnh PHP ?>
Cách 3: Cú pháp giống với ASP.
<% Mã lệnh PHP %>
Cách 4: Cú pháp bắt đầu bằng script
<script language=php>
.....
</script>
Mặc dù có 4 cách thể hiện. Nhưng đối với 1 lập trình viên có kinh nghiệm thì việc
sử dụng cách 1 vẫn là lựa chon tối ưu.
Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";"
Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu "//" cho từng dòng.
Hoặc dùng cặp thẻ "/*……..*/" cho từng cụm mã lệnh.
Nễu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."
*Lưu ý:
Hiện tại có phiên bản AppServ 2.6.0, bạn không nên sử dụng bản này vì php và
mysql đều là các bản dev và alpha không ổn định khi sử dụng
Trước khi cài đặt chương trình, bạn hãy xóa bỏ tất cả những chương trình hỗ trợ
cài loaclhost đã cài trước đó, như Apache Web Server, Mysql, PHP…, đồng thời
xóa file php.ini nằm trong thư mục hệ thống C:/windows/
Sau khi tiến hành tất cả các bước chuẩn bị đã nêu ở trên, bạn tiến hành cài đặt
chương trình.
3.2.2. Cài đặt AppServ
Bước 1: Chạy file appserv-win32-2.5.10.exe để tiến hành cài đặt. Cửa sổ Welcome
của màn hình Setup hiện ra. Nhấp Next để tiếp tục.
Bước 2: Thông tin bản quyền : AppServ xuất bản theo giấy phép
GNU/GPL License. Bạn cần đọc thông tin này trước khi cài đặt. Nếu tiếp tục cài đặt
cần click vào I Agree để chuyển sang bước kế tiếp. Nếu không đồng ý bạn click vào
Cancel để thoát quá trình cài đặt.
Bước 3: Chọn thư mục cài đặt. Bạn nên chuyển thư mục lưu trữ AppServ sang ổ D
và nhấp Next để tiếp tục.
Bước 5: Khai báo cho quá trình cài đặt Apache Server
Tại bước này bạn cần khai báo Server name, Administrator’s Email address, HTTP
Port. Ngoại trừ ô Administrator’s Email address có thể thay đổi, các ô khai báo khác
hãy để mặc định như chương trình yêu cầu:
Server name: localhost;
Administrator’s Email address: admin@localhost.com
HTTPPort: 80
Sau đó nhấp Next để tiếp tục.
Chờ trong giây lát, quá trình cài đặt sẽ diễn ra.
Apache & MySQL sẽ được tự động khởi động ngay sau khi kết thúc cài đặt
Sau khi cài xong appserv 2.5.10 máy tính của bạn sẽ có các chương trình sau:
Apache Web Server Version 2.2.8
PHP Script Language Version 5.2.6
MySQL Database Version 5.0.51b
phpMyAdmin Database Manager Version 2.10.3
*Quá trình cài đặt mới 1 website sử dụng NukeViet sẽ qua 07 bước như sau:
Bước 1: Lựa chọn ngôn ngữ
Ngôn ngữ mặc định khi cài đặt là tiếng Việt, bạn cũng có thể chọn sử dụng tiếng
Anh. Lựa chọn xong ngôn ngữ bạn có thể nhấn vào nút “Bước kế tiếp” để chuyển
sang bước tiếp theo (Hình 1).
hình FTP” – nếu máy chủ của bạn hỗ trợ việc CHMOD thông qua php thì hệ thống
sẽ tự động CHMOD những thư mục và tập tin cần thiết sau khi bạn điền đầy đủ
thông tin cấu hình FTP và nhấn vào nút “Thực hiện”. Còn không, bạn sẽ phải tự
CHMOD bằng tay.
Sau khi hoàn thành quá trình CHMOD bạn có thể nhấn vào nút “Bước kế tiếp” để
chuyển qua bước tiếp theo.
Bước 3: Bản quyền
Ở bước này các bạn phải điền đầy đủ thông tin vào những ô được đánh dấu (*),
bên cạnh là cột ghi chú giúp bạn có thể hiểu rõ hơn quá trình nhập thông tin. Sau khi
nhập thông tin xong bạn nhấn vào nút “Thực hiện” để hoàn tất.
Để có thể xuất bản một bài viết trước tiên chúng ta cần phải tạo: Chủ đề, Chuyên
đề và Nguồn tin cho bài viết.
Sau khi thêm chủ đề , thì giao diện phần quản lý chủ đề sẽ có thêm Menu như bên
dưới:
Khu vực 1: Vị trí: Chỉ ra vị trí sắp xếp của chủ đề so với các chủ đề khác. Để thay
đổi vị trí của 1 chủ đề các bạn có thể nhấn vào Menu lựa chọn của chủ đề đó
Khu vực 2: Hiển thị trang chủ:Có 02 lựa chọn: Có hoặc Không, Menu này cho phép
chủ đề có thể xuất hiện tại trang chủ của site hay không.
Khu vực 3: Cách thể hiện chủ đề: Đối với từng chủ đề sẽ có 06 lựa chọn cách hiển
thị tin tức trình bày cho chủ đề đó
Danh sách, mới lên trên
Danh sách, cũ lên trên
Chủ đề, tin khác nằm bên trái
Chủ đề, tin khác nằm bên phải
Chủ đề, tin khác nằm bên dưới
Chia thành 02 cột.
Khu vực 4: Số liên kết: Đối với từng chủ đề cho phép ta chọn số liên kết thuộc chủ
đề đó giá trị mặc định sẽ được chọn là 3.
Khu vực 5: Chức năng thêm dành cho phần quản lí chủ đề như : Xóa – sửa chủ đề,
thêm bài viết mới vào ngay chủ đề đó.
Trong bên trên chúng ta có tiêu đề “Tin tức” có 3 chuyên mục con trong nó là:
Thông cáo báo chí, Bản tin nội bộ, tin công nghệ. Để có thể xóa được chuyên mục
“Tin tức” chúng ta phải vào bên trong nó – xóa hoặc sửa các chuyên mục: Thông
cáo báo chí, Bản tin nội bộ, tin công nghệ.
Hình minh họa cho việc xóa 1 chủ đề: Chúng ta sẽ xóa chủ đề: “Thông cáo báo
chí” là chủ đề con của chủ đề “Tin tức”
Trên hình trên sau khi nhấn vào chức năng xóa (1) hệ thống sẽ thông báo cho
chúng ta một hộp thoại để khẳng định chắc chắn rằng bạn muốn xóa nó hay không?
Sau khi nhấn OK hệ thống sẽ chuyển bạn sang bước tiếp theo.
Việc xóa 1 chuyên mục sẽ làm mất toàn bộ các dữ liệu và bài viết trong chuyên
mục đó, để đảm bảo việc an toàn dữ liệu cho bạn – hệ thống yêu cầu bạn cần phải
xác nhận lại một lần nữa việc “Xóa chủ đề và các bài viết” (1) Hoặc di chuyển chủ
đề bằng cách: Lựa chọn chủ đề tin tức muốn di chuyển tới (2), khi lựa chọn xong
nhấn vào nút “thực hiện” để bắt đầu di chuyển các bài viết bên trong chuyên mục
“Tổng hợp” (3). Sau khi hoàn thành – bạn có thể xóa hoặc sửa các chủ đề tiếp theo:
Chi hội, pháp lý. Khi hoàn tất các bước đó chúng ta mới có thể xóa chủ đề “Tin cộng
đồng”.
4.2.2. Nhóm tin liên quan
Cũng giống như chủ đề, nhóm tin liên quan cho phép ta có thể trình bày nhiều bản
tin liên quan – nhưng trong một phạm vi nhỏ hơn. nhóm tin liên quan giúp truyền tải
cho người đọc khi xem chi tiết một bài viết thành hệ thống những sự kiện chuyên
biệt, ví dụ: Chùm sự kiện về bão lụt miền Trung.
Để quản lý các nhóm tin liên quan cũng tương tự như quản lý các chủ đề.
Phần này giúp cho chúng ta hướng đối tượng người đọc chú ý hơn đến những bài
viết được thêm vào nhằm làm nổi bật một hay nhiều bài viết.
Phần cấu hình module giúp chúng ta tùy chỉnh cách hiển thị bài viết, hình ảnh, số
lượng liên kết và một số chức năng khác cho module Tin tức.
4. Hình minh họa cho phần giới thiệu (Không bắt buộc)
5. Chú thích cho hình minh họa (Không bắt buộc).
6. Hình ảnh tại bài viết: Cung cấp tùy chọn cách hiển thị hình ảnh, có 03 lựa
chọn: Không hiển thị, hiển thị mặc định theo cấu hình module và hiển thị bên dưới
tiêu đề bài viết. (Không bắt buộc, cấu hình mặc định được lựa chọn: hiển thị theo
cấu hình module).
7. Giới thiệu ngắn gọn (Không bắt buộc – Khuyến cáo không nên bỏ qua bước
này.) Có tác dụng miêu tả chung nhất nội dung của bài viết muốn truyền tải đến
người đọc. Khi nhập thông tin vào đây sẽ làm cho bài viết được trình bày đẹp hơn.
8. Nội dung chi tiết: (Bắt buộc) – Toàn bộ nội dung của bài viết sẽ được hiển thị
khi bạn điền thông tin vào ô này.
9. Tác giả bài viết (Không bắt buộc) – Nếu không nhập thông tin vào, hệ thống sẽ
tự động lấy theo tên của người đăng bài viết.
10. Nguồn tin (Không bắt buộc) – Có thể lựa chọn trong danh sách đã tạo ở mục
Nguồn tin bên trên hoặc nếu nguồn tin chưa có trong danh sách thì có thể nhập vào ô
trống ở bên dưới.
11. Giữ bản quyền bài viết (Không bắt buộc) – Mặc định chế độ giữ bản quyền
bài viết sẽ được tự động chọn, nếu bài viết không phải do các bạn tự biên soạn thì có
thể bỏ lựa chọn ở ô này. Khi chế độ này được kích hoạt mỗi khi xem bài viết đó
dưới bài viết sẽ có thêm dòng bản quyền như hình.
12. Từ khóa dành cho máy chủ tìm kiếm: Nhằm mục đích tối ưu hóa bài viết với
thẻ keyword dành cho bộ máy tìm kiếm. Nếu để trống hệ thống sẽ tự động tạo từ
khóa cho bài viết của bạn, bạn cũng có thể sử dụng công cụ được cung cấp sẵn bằng
cách copy toàn bộ nội dung bài viết và paste vào – sau đó nhấn vào nút công cụ.
Vào đây để tạo keyword cho bài viết của bạn. Hoặc bạn cũng có thể tự nhập từ khóa
– chú ý mỗi từ khóa phân cách nhau bởi dấu phẩy. (Không bắt buộc – Khuyến khích
dùng nếu các bạn chú trọng đến vấn đề tối ưu hóa bài viết cho bộ máy tìm kiếm).
13. Quyền xem bài viết: Hạn chế 1 hoặc nhiều đối tượng có thể truy cập đến bài
viết của bạn, mặc định hệ thống sẽ để tất cả mọi người có thể xem. Bạn có thể cấu
hình lại bằng cách lựa chọn một trong những cách được cung cấp:
· Tất cả
· Thành viên
· Khách
· Quản trị
· Hoặc một trong những nhóm trong Menu quản trị Nhóm do bạn tạo ra
(Không bắt buộc).
14. Thời gian đăng: Hệ thống sẽ tự động đăng bài viết vào thời gian do bạn lựa
chọn tính theo Ngày – tháng – năm: Giờ - Phút. (Không bắt buộc)
15. Thời gian hết hạn: Hệ thống sẽ tự động khóa bài viết không cho người đọc
xem vào thời gian mà bạn quy định bài viết hết hiệu lực. (Không bắt buộc).
16. Tính năng mở rộng: Cung cấp cho bạn các lựa chọn về :
· Hiển thị trên trang chủ (Mặc định giá trị là: Có)
· Cho phép thảo luận (Mặc định giá trị là: Thành viên, bạn cũng có thể lựa
chọn các giá trị là Không hoặc là Tất cả mọi người đều có thể tham gia thảo luận).
· Cho phép xếp hạng bài viết: Nhằm giúp người đọc đánh giá bài viết theo các
mức yêu thích. Mặc định hệ thống sẽ cho phép người đọc sử dụng chức năng này.
· Cho phép gửi bài viết: Để người đọc có thể gửi bài viết này cho bạn bè qua
email, mặc định hệ thống luôn bật chức năng này.
· Cho phép in bài viết: Mặc định hệ thống sẽ cho phép người đọc sử dụng
chức năng này. Bạn có thể không cho người đọc sử dụng nó bằng cách bỏ lựa chọn
này.
· Cho phép lưu bài viết: Chức năng này phục vụ yêu cầu khi người đọc có nhu
cầu lưu trữ bài viết trên máy để có thể đọc lại mà không cần vào website. Mặc định
hệ thống sẽ bật tính năng này, bạn có thể tắt nó bằng cách bỏ lựa chọn này.
Khi đã hoàn thành 16 bước trên bạn hãy nhấn vào nút Lưu thay đổi để xuất bản
bài viết. Hãy trở lại trang chủ và xem thành quả mà bạn có được.
Sau đó nhìn sang phía menu bên phải, tương ứng với mỗi bài viết đều có menu lựa
chọn với 02 chức năng đó là: Sửa – Xóa. Để sửa bài viết nào bạn hãy nhấn vào menu
Sửa (2) ở bài viết đó.
KẾT LUẬN
NukeViet là phần mềm được người Việt phát triển nên ưu tiên người việt dùng
hàng việt để đưa sản phẩm của người việt ngang tầm thế giới. Thúc đẩy những ý
tưởng phát triển website cũng như mã nguồn mở được phổ biến rộng khắp.
Bằng việc sử dụng các công nghệ web mới nhất hiện nay, thiết kế hệ thống uyển
chuyển và sở hữu những tính năng độc đáo, NukeViet sẽ giúp bạn triển khai các ứng
dụng web từ nhỏ đến lớn một cách nhanh chóng và tiết kiệm: từ các website cá nhân
cho tới các cổng thông tin điện tử; từ các gian hàng trực tuyến cho tới các mạng xã
hội...
Để phát triển hơn nữa website từ mã nguồn mở cũng như tăng thêm vốn hiểu biết
của mình về mã nguồn mở, chúng em sẽ thường xuyên cập nhật các phiên bản mới
của hệ thống core NukeViet để giảm thiểu rủi ro cũng như luôn có công nghệ mới
nhất, tiên tiến nhất với mã nguồn tối ưu nhất.
Cuối cùng chúng em xin một lần nữa chân thành cảm ơn thầy Phạm Đức Hồng
và các thầy cô trong khoa công nghệ thông tin đã giúp đỡ chúng em trong suốt thời
gian qua !
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………