Tải bản đầy đủ (.doc) (97 trang)

Website giới thiệu sản phẩm và giao lưu văn hóa cho làng nghề gốm sứ bát tràng

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 (690.68 KB, 97 trang )

MỤC LỤC
2.2.3. GIỚI THIỆU MYSQL...............................................................................40
2.2.4. TRUY CẬP MYSQL TỪ PHP.................................................................46
2.2.5. LÝ DO LỰA CHỌN NGÔN NGỮ...........................................................49
Chương 5. GIAO DIỆN.....................................................................................65
Chương 6. CODE................................................................................................71
Chương 7 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.......................................93

1


LỜI NÓI ĐẦU
______000______
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả
chiều rộng và sâu. Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà
đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con
người, không chỉ ở công sở mà còn ngay cả trong gia đình.
Đứng trước vai trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và
các doanh nghiệp đều tìm mọi biện pháp để xây dựng hoàn thiện hệ thống thông tin
của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị.
Ở Việt Nam cũng có rất nhiều doanh nghiệp đang tiến hành thương mại hóa
trên Internet nhưng do những khó khăn về cơ sở hạ tầng như viễn thông chưa phát
triển mạnh, các dịch vụ thanh toán điện tử qua ngân hàng chưa phổ biến nên chỉ
dừng lại ở mức độ giới thiệu sản phẩm và tiếp nhận đơn đặt hàng thông qua web.
Để tiếp cận và góp phần đẩy mạnh sự phổ biến tin học ở Việt Nam, em đã tìm
hiểu và xây dựng “Website giới thiệu sản phẩm và giao lưu văn hóa cho làng nghề
gốm sứ bát tràng”.
Với sự hướng dẫn tận tình của Thầy Cao Kim Anh em đã hoàn thành cuốn
báo cáo đồ án tốt nghiệp này. Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và
cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót. Em rất mong
nhận được sự thông cảm và góp ý của Thầy. Em xin chân thành cảm ơn.


Sinh viên thực hiện
Phạm Trung Thành

2


Chương 1: GIỚI THIỆU VỀ ĐỀ TÀI
1.1. PHÂN TÍCH YÊU CẦU ĐỀ TÀI
1.1.1. NỘI DUNG CỦA WEBSITE
- Giới thiệu về làng nghề, con người và lịch sử phát triển.
- Văn hóa làng nghề cũng như các lễ hội và các triển lãm sản phẩm.
- Giới thiệu sản phẩm, tiếp nhận các đơn đặt hàng theo yêu cầu.
- Diễn đàn danh cho các doanh nghiệp, khác hàng và những người yêu
gốm sứ.
- Tổ chức các cuộc thi về thiết kế sản phẩm cũng như nghệ thuật trên chất
liệu gốm sứ.
- Phần liên hệ khách hàng, hỗ trợ trực tuyến hoặc qua điện thoại.
1.1.2. CHỨC NĂNG CỦA WEBSITE
Đây là một website nhằm giới thiệu và quảng bá hình ảnh của làng nghề
gốm sứ bát tràng đến người tiêu dùng với các chi tiết mặt hàng, giá cả và những
hình ảnh xinh động về làng nghè này. Ngoài ra còn có thêm những chức năng
sau:
- Cho phép nhập hàng vào CSDL.
- Hiển thị danh sách các mặt hàng theo từng loại ( bao gồm: hình ảnh, giá
cả, thời gian bảo hành, mô tả chức năng).
- Hiển thị hàng hóa mà khách hàng đã chọn để mua.
- Hiển thị đơn đặt hàng của khách hàng.
- Cung cấp khả năng tìm kiếm, khách hàng có thể truy cập từ xa để tìm
kiếm xem mặt hàng đặt mua.
- Tiếp nhận các mẫu thiết kế sản phẩm của khách hàng

- Cho phép quản lý đơn đặt hàng.
- Cập nhập mặt hàng, loại mặt hàng, khách hàng, nhà cung cấp.

3


- Thống kê mặt hàng, khách hàng, đơn dặt hàng, doanh thu.
- Cho phép hệ thống quản trị mạng từ xa.
1.1.3. MỤC TIÊU VÀ YÊU CẦU KHI XÂY DỰNG WEBSITE
+ Nhằm đáp ứng được nhu cầu mở rộng thị trường tiêu thụ hàng hóa.
+ Thông tin luôn được cập nhật mới và luôn đáp ứng được nhu cầu tìm
kiếm thông tin của khách hàng. Bên cạnh đó còn tiết kiệm được thời gian và chi
phí đi lại cho khách hàng.
Những yêu cầu đặt ra cho một hệ thống.
+ Hỗ trợ cho khách hàng :
- An toàn khi mua hàng, quản lý một khách hàng.
- Truy xuất cơ sở dữ liệu thông qua Internet.
- An toàn trên đường truyền.
+ Hỗ trợ cho người quản trị :
Để an toàn cho hệ thống, hệ thống sẽ cấp cho người quản trị một mật khẩu
để người quản trị có thể truy cập vào hệ thống, thao tác trên cơ sở dữ liệu (như
bổ sung, cập nhật dữ liệu,…).

4


Chương 2: CÁC CÔNG CỤ XÂY DỰNG WEBSITE
2.1. GIỚI THIỆU MÃ NGUỒN MỞ VÀ PHẦN MỀM TỰ DO.
2.1.1. MÃ NGUỒN MỞ.
Thuật ngữ “mã nguồn mở” được dùng để chỉ một phần mềm được phát

hành kèm theo mã nguồn tạo ra nó. Người dùng có thể tự do sử dụng, sửa đổi và
hoàn thiện nó mà không phải lo lắng về các vấn đề pháp lý. Phần mềm nguồn
mở cho phép người dùng phân phối lại, tái tạo, sửa đổi nội dung để phù hợp với
yêu cầu công việc đồng thời cải tiến phần mềm.
Tư tưởng phân phối mã nguồn kèm theo chương trình là nhằm khuyến
khích sự hợp tác làm việc và những đóng góp tình nguyện trong việc sửa đổi, cải
tiến phần mềm, phát triển thêm những tính năng mới và chia sẻ thông tin với
mọi người.
Nhờ có sự hợp tác làm việc của các lập trình viên, cũng như sự đóng góp
của những người tình nguyện, phần mềm đến với người dùng ngày càng hoàn
thiện thêm về mặt chất lượng và trở nên tốt hơn các phần mềm nguồn đóng
tương ứng. Người dùng được khuyến khích tùy biến chương trình theo nhu cầu
của bản thân, đây thực sự là một tư tưởng tốt đẹp.
Các dự án mã nguồn mở đã huy động được tài năng của rất nhiều người,
với rất nhiều kỹ năng khác nhau, ngoài kỹ năng lập trình. Rất nhiều dự án mã
nguồn mở đã được xây dựng nhờ các họa sỹ, nhạc sỹ, nhà thiết kế và những
người biên soạn tài liệu nhờ đó đã tạo ra những sản phẩm hoàn chỉnh.
2.1.2. PHẦN MỀM TỰ DO.
Trong những năm 1960 các phần mềm thường được phân phối tự do bởi
các công ty như IBM hoặc được chia sẻ giữa những người sử dụng phần mềm
với nhau. Phần mềm này được cung cấp kèm theo mã nguồn để có thể sửa đổi
và cải tiến; đây chính là hạt giống đầu tiên cho phần mềm nguồn mở. Tuy nhiên,

5


theo thời gian các thiết bị phần cứng trở nên rẻ hơn và lợi nhuận của các công ty
giảm xuống trong những năm 1970 khiến các nhà sản xuất coi phần mềm là sản
phẩm kinh doanh.
Vào thang 9, năm 1983 Richard Matthew Stallman, lập trình viên của

phòng thí nghiệm MIT Artiffical Intelligence đã sáng lập ra dự án GNU để tạo
ra một hệ điều hành miễn phí giống như UNIX. Stallman quan tâm đến sự phát
triển nhanh chóng của các phần mềm sở hữu và việc người dùng không có khả
năng xem và sửa đổi các phần mềm nằm trên máy họ. Những nhà phát triển
cũng bị hạn chế và điều này trái ngược với sự tự do về mã nguồn có trước đó.
Bằng việc sáng lập ra dự án GNU, Stallman đã phát động phong trào phần mềm
tự do và đến tháng 10 năm 1985 ông sáng lập ra Tổ chức phần mềm tự do.
Stallman đã đặt nền móng cho những định nghĩa và tính chất cho phần
mềm nguồn mở, cũng như những khái niệm về “copyleft”. Ông là tác giả chính
cho một số giấy phép “copyleft”, bao gồm GNU/GPL (General Public License),
giấy phép phần mềm tự do được sử dụng rộng rãi nhất hiện nay.
2.1.3. GIỚI THIỆU HỆ ĐIỀU HÀNH UBUNTU (LINUX).
Ubuntu là một hệ điều hành hoàn toàn mở, được xây dựng dựa trên nhân
(kernel) Linux. Cộng đồng người dùng Ubuntu được hình thành bởi những tư
tưởng đã gắn kèm theo triết lý Ubuntu (Ubuntu Philosophy) là : người dùng
được sử dụng phần mềm miễn phí, mỗi một phần mềm đều có thể sử dụng dưới
giao diện ngôn ngữ bản địa của người dùng và quan trọng nhất là người dùng
hoàn toàn tự do chỉnh sửa và thay đổi phần mềm để phù hợp với nhu cầu sử
dụng của mình. Vì những lý do đã nêu trên đây :


Ubuntu sẽ được luôn luôn phân phối miễn phí và cũng chẳng thêm phí

nào cho phiên bản dành cho các công ty, Enterprise edition.


Ubuntu sẽ luôn luôn bao gồm các bản phiên dịch tốt nhất và sẽ luôn

luôn tạo ra một cơ cấu truy cập (accessibility infrastructure) tốt nhất theo khả


6


năng cung cấp của cộng đồng lập trình phần mềm tự do, nhằm mục đích cho
phép càng nhiều người càng có thể sử dụng Ubuntu.


Các phiên bản Ubuntu được công bố đều đặn, với tần xuất định trước;

mỗi 6 tháng sẽ ra một phiên bản mới. Bạn có thể dùng phiên bản Ubuntu ổn
định hoặc dùng phiên bản đang phát triển, tùy ý của bạn. Mỗi phiên bản sẽ được
hỗ trợ tối thiểu trong vòng 18 tháng.


Ubuntu hoàn toàn tuân theo những nguyên tắc phát triển phần mềm mã

nguồn mở và khuyến khích mọi người dùng phần mềm mã nguồn mở, cải thiện
chúng và phân phối lại cho những người khác.
Cộng đồng Ubuntu bao gồm người phát triển, lập trình viên, người thử
nghiệm, người soạn tài liệu kỹ thuật, người dùng thử các tài liệu kỹ thuật, người
dịch và, quan trọng nhất, những người dùng Ubuntu hằng ngày.

2.2. APACHE, PHP & MYSQL.
2.2.1. APACHE WEB SERVER:
a. Giới thiệu về Apache Web Server:
Apache là một phần mềm Web server được cung cấp bởi tập đoàn Apache
Group. Đây là một Web server được hỗ trợ để chạy chủ yếu trên UNIX va
LINUX và rất được phổ biến bởi tính chặt chẽ, uyển chuyển và linh hoạt. Hiện
nay Apache là một Web server đang quản lý hơn 50% số Web site đang có trên
thế giới.

b. Tổ chức Web site:
Trước khi bắt đầu xây dựng một Web site, người sử dụng có thể muốn tìm
hiểu tổ chức của nó. Khi có nhiều hơn các khả năng suy nghĩ về các cách tổ
chức cấu trúc một Web site, người sử dụng có thể suy nghĩ về nó như một viễn
cảnh đi lại. Trong những suy nghĩ thêm của nó về khía cạnh này, sẽ nảy sinh ra

7


những câu hỏi: Người sử dụng có thể làm gì để dễ dàng giữ gìn Web site của
mình? Các quy ước nào sẽ làm đơn giản Web site của họ?
c. Cài đặt Apache.
Để cài đặt Apache trên Ubuntu, từ giao diện Terminal gõ:
$sudo apt-get install apache2
Hệ thống sẽ tự động kết nối đến kho phần mềm, download về và cài đặt.
Sau khi cài đặt thông thường Apache sẽ được cấu hình tự động kết nối qua cổng
80 và tiến hành chạy như một dịch vụ mặc định của hệ điều hành.
Trường hợp Apache chưa được khởi động, bạn có thể khởi động Apache
bằng lệnh sau trong giao diện Terminal:
$ sudo /etc/init.d/apache2 start
Để kiểm tra xem Apache đã hoạt động hay chưa, bạn mở trình duyệt lên
và gõ vào địa chỉ URL: http://localhost
Nếu thành công, bạn sẽ nhận được lời chào từ Apache như sau:

Nếu không người sử dụng sẽ nhận được một thông báo lỗi, có thể xem lại
file error.log trong thư mục log. Một khi các cài đặt cơ sở đang làm việc, người

8



sử dụng phải cấu hình các thuộc tính của nó bằng cách sửa đổi nội dung các file
trong thư mục conf.
d. Virtual Host:
Vitual Host là một sức mạnh thật sự của Apache. Virtual Host cho phép
Apache Web Server chạy cùng lúc nhiều Web site. Apache là một HHTP server
đầu tiên cung cấp các hỗ trợ cho việc xây dựng một virtual site. Trong khi các
server của NCSA và các server khác cũng cung cấp sự hỗ trợ virtual site nhưng
Apache cung cấp một khả năng thi hành tốt hơn và có nhiều điểm đặc trưng hơn
các server khác.
Chỉ mới nhìn qua, dường như sự thuận lợi chính của virtual site là chỉ để
tô điểm, nó cho phép nhiều Web site được đánh địa chỉ tên miền của nó trên các
máy đơn đã được chia sẻ. Tuy nhiên sự thuận lợi của nó nhiều kết quả rõ ràng
nằm trong cách quản trị Web site và cách những máy khác sử dụng nó. Một
Virtual host thường được tạo ra nhằm mục đích như sau:
-

Khách hàng có thể dễ dàng truy cập các Web site của mình trên các

server cho thuê. Từ khi người thuê server có thể sử dụng tên miền của chính
mình, các địa chỉ có khuynh hướng ngắn đi. Điều này đã giúp đỡ việc đưa ra
tính chuyên nghiệp đồng nhất trên thế giới. Những người sử dụng thích nhớ
những địa chỉ ngắn hơn từ khi tên miền có một vài sự thích hợp với tên của các
tập đoàn công ty.
-

Rút gọn tối đa các máy tính và phần cứng mạng, nhiều site tốc độ

chậm có thể nằm ở tại một máy đơn, điều này làm giảm bớt giá thành của việc
đưa một site lên mạng.
-


Giảm bớt giá thành về con người kết hợp với các hệ thống quản trị.

Thay cho việc quản lý và cấu hình một server chuyên dụng cho các tên miền.
Một Web server chỉ cần duy trị vài file cấu hình và một số các box. Điều này sẽ
dẫn đến việc giảm một số hệ thống cần để duy tu nó, như vậy việc duy trị một
mảng sẽ đơn giản hơn và ít tốn kém hơn.
9


Bởi vì hầu hết các Web site khi tạo ra đều không đủ đường truyền lưu
thông để sử dụng hết các tài nguyên trên một máy đơn, điều đó là sự khát khao
từ một người quản trị cá nhân cho phép một server đơn giản trên mạng và chạy
như nhiều máy khác nhau thay vì dành cho phần cứng và tiền bạc để mỗi site
được đưa lên, một vài server cấu hình các lệnh để đưa ra các kết quả như nhau:
một virtual site. Bởi vì phí tổn để cài đặt một server có thể chia xẻ cho nhiều
site, thời gian để cấu hình và quản lý Web site được giảm đi rất nhiều.
Virtual host đã đem lại một khía cạnh chắc chắn của việc tạo ra một trang
Web di động. Khi một site là ảo, nó dễ dàng di chuyển đến một Web server
khác trong cùng một mạng hoặc ở một nơi nào khác. Đây chính là vấn đề của
việc chuyển chỗ các trang HTML của các site đến một máy mới và điều chỉnh
các thông tin DNS (Domain Name Server) của site đưa lên một server mới. Để
việc thích nghi với DNS được cập nhật, đơn giản chỉ cần tạo ra sự đổi hướng
trên server cu? . Điều này cho phép sự lưu thông được trôi chảy mà không có sự
sai sót, đó là một vấn đề quan trọng với các site đang lớn mạnh đang được lưu
thông để tạo ra kinh doanh.
Về mặt lịch sử, khi người sử dụng muốn một site đang host sử dụng tên
miền của họ, sự lựa chọn có thể được là mua hoặc thuê một máy tính và dùng nó
để cấu hình như một Web server. Phải chịu các phí tổn để tiêu tốn cho việc quản
lý server này. Các phí tổn này dễ thường là rất lớn, việc này đã thúc đẩy các nhà

cung cấp dịch vụ Internet (ISP) thêm vào các cách để hỗ trợ nhiều Web site trên
một host, điều này dẫn đến một vài giải pháp gần đây, chẳng hạn như Home
Page Approach.
Home Page Approach tạo ra một địa chỉ giống như:
/>Home Page Approach là một cách thích hợp để phục vụ các trang người
dùng cục bộ. Nhưng khi dùng nó để phục vụ cung cấp thông tin lớn và đang
được truy cập thường xuyên bởi một số lớn người sử dụng thì việc này sẽ tạo ra

10


một địa chỉ tồi mà rất khó nhớ, tên nhập vào dài, dễ xảy ra sai sót phía người sử
dụng và trông không được chuyên nghiệp lắm.

Xây dựng một virtual host:
Các phạm vi liên quan của virtual host, virtual site và multihomed server
thông thường được sử dụng thay thế cho nhau. Để dễ hie?u hơn, chỉ cần suy
nghĩ chúng như sau:
Để tạo một virtual site, thì cần phải cấu hình một virtual host, để virtual
host làm việc cần phải tạo một mutihomed server, như vậy rõ ràng là có sự khác
nhau giữa chúng.
Một máy tính multihomed là môt máy tính có thể trả lời cùng một lúc đến
nhiều địa chỉ IP. Một máy tính mày có thể được truy cập bởi nhiều tên (chẳng
hạn như www.mailhost.foo.com và www.foo.com) mà nó thi hành cho các địa
chỉ IP như nhau không thể là một máy tính Multihomed.
Việc đặt bí danh, một khả năng cung cấp bởi DNS trong một bảng ghi tài
nguyên CNAME , hoặc liệt kê các tên máy tính trên etc/host/file đằng sau các
địa chỉ IP thị chỉ tiện lợi cho người sử dụng đang truy cập vào một tài nguyên
trên mạng. Thông thường người ta mất nhiều thời gian để nhớ tên, và một vài
tên chẳng hạn như WWW hoặc FTP thì là tiêu chuẩn đặc trưng cho các máy tính

mà nó đưa lên mạng các dịch vụ với tên tương tự. Người sử dụng chỉ cần nhớ
tên miền nơi các tài nguyên nơi các tài nguyên đó sử dụng tên truyền thống
(chẳng hạn www.aple.com, www.mailhost.com hoặc ftp.aple.com ) Một máy
Multihomed cần nhiều hơn thế, nó phải trả lời cho cùng lúc hai hoặc nhiều địa
chỉ IP chẳng hạn địa chỉ IP 1.2.3.4 là địa chỉ được ấn định bởi mạng làm việc
Internet của người sử dụng cung cấp khi họ sign up với chúng.
e .Virtual site:
Virtual site là một Web site mà nó cùng nằm trên một server với các Web
site khác. Mỗi Web site thị được truy cập bằng tên của chúng và chia xẻ tất cả
11


tài nguyên phần cứng với các virtual site khác. Mặc dù tất các yêu cầu đều được
trả lời bằng các xử lý như nhau trên HTTP server, nhưng các trang chủ khác
nhau được trả về cho mỗi site phụ thuộc vào tên hoặc địa chỉ IP sử dụng khi truy
cập các thông tin.
Một vấn đề về mạng khác là việc phải đánh địa chỉ trước khi có thể
multihome là DNS. DNS cung cấp một tên máy đến dịch vụ chuyển sang IP.
Khi tên máy được đánh số, con người thích sử dụng tên máy hơn. DNS chuyển
các tên sang số và các số sang tên. Sự thay đổi này có ý nghĩa là nếu người sử
dụng kết nối với Internet, và đang chạy với một tên server . Nếu không thị
ngược lại không một ai khác chạy nó. Nếu người sử dụng không phải đang chạy
với DNS của chính mình, họ sẽ cần phải ngang hàng với quyền quản trị mạng
của chính mình để thi hành bất kỳ sự thêm vào hoặc thay đổi DNS.
f. Cấu hình Apache:
Web server sẽ đọc 3 file chứa các chỉ thị cấu hình. Bất kỳ một chỉ nào nào
được hiển thị trong các file này đều sẽ được thực hiện.
Conf/httpd.conf: Chứa các chỉ thị mà nó điều khiển sự thi hành của
server. Tên file có thể được lướt qua với ký hiệu khả chuyển -f.
Conf/srm.conf: Chứa các chỉ thị mà nó điều khiển sự chỉ định các

tài liệu mà server cung cấp cho các client. Tên file có thể được lướt qua với chỉ
thị ResourceConfig.
Conf/access.conf: Chứa các chỉ thị mà nó điều khiển sự truy cập
các tài liệu. Tên file có thể được bỏ qua với chỉ thị AccessConfig.
g. Apache và các dịch vụ hỗ trợ:


HTTPD:

Tên dòng lệnh:
httpd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f config]
[ -C directive ] [ -c directive ] [ -D parameter ]

12


Mô tả:
Là một chương trình HTTP server. Nó được thiết kế để chạy như một tiến
trình deamon một mình. Khi dùng đến dịch vụ này, nó sẽ tạo ra một nhóm các
tiến trịnh con để đáp ứng các yêu cầu. Để ngừng dịch vụ này, nó sẽ gửi một tín
hiệu TERM đến tiến trình cha. PIG của tiến trình này sẽ ghi lên một file và dưa
vào file cấu hình. HTTPD sẽ được gọi bởi Internet deamon inetd mỗi khi có một
kết nối đến dịch vụ HTTP đã được thiết lập.
Các đối số cụ thể của dòng lệnh
-R libexecdir: Tham số này chỉ có hiệu lực nếu Apache được cài đặt với tập
SHARED_CORE cho phép, nó tác động đến nhân nhị phân của Apache để thay
thế vào trong một file đối tượng chia xẻ động (DSO). File này được dò tìm trên
một đường dẫn hardcoded bên dưới ServerRoot mặc định
-d serverroot: Thiết lập giá trị ban đầu của chỉ thị ServerRoot đến serverroot.
Chức năng này có thể bị bỏ qua bởi dòng lệnh ServerRoot trong file cấu hình.

Mặc định server root là usr/local/apache.
-f : Thực thi các lệnh trong file config khi Startup. Nếu file config không bắt đầu
với a/, lúc đó nó sẽ lấy một một đường dẫn có liên quan đến ServerRoot. Mặc
định của nó là conf/httpd.conf.
-C directive: Thực hiện cấu hình các chỉ thị trước khi đọc file config.
-c directive: Thực hiện cấu hình các chỉ thị sau khi đọc file config.
-D parameter: Thiết lập một thông số cấu hình mà nó có thể sử dụng với cặp thẻ
<IfDefine> … </IfDefine> trong các file cấu hình để bỏ qua có điều kiện hoặc
thực hiện các lệnh.


APACHECTD:

Tên dòng lệnh:
apachectl command [...]
13


ơ

Mô tả:
Là một đầu vào các HTTP server. Nó được thiết kế để giúp người quản trị
điều khiển các chức năng của Apache HTTPD deamon.
Với các lệnh:
Start: Khởi động Apache deamon. Đưa ra một thông báo lỗi nếu chương trình
đang chạy.
Stop: Ngừng dịch vụ Apache deamon.
Restart: Khởi động lại Apache deamon bằng cách gửi cho nó một SIGHUP.
Lệnh này tự động kiểm tra các file cấu hình qua văn bản cấu hình trước khi bắt
đầu khởi động lại để chắc chắn rằng Apache vẫn còn đang hiện diện trong máy.

Fullstatus: Hiển thị đầy đủ các báo cáo trạng thái từ mod_status. Để lệnh này
được thi hành, cần phải cho phép mod_status trên server và một trịnh duyệt
text_based chẳng hạn như Lynx có sẵn trong hệ thống. URL sử dụng nó để truy
cập bản báo cáo trạng thái có thể được thiết lập bằng giá trị STATUSURL có
sẵn trong script.
Status: Hiển thị ngắn gọn bảng trạng thái giống như chức năng fullstatus trừ phi
danh sách các yêu cầu phục vụ thời bị bỏ quên.
Configtest: Chạy một đoạn văn bản các cụ pháp của file cấu hình. Nó phân tích
các file cấu hình và các bảng Syntax Ok hoặc thông tin chi tiết về các lỗi cú
pháp đặt biệt.
Help: Hiển thị các thông báo lỗi được sắp xếp.


APXS

Tên dòng lệnh:
apxs -g [ -S variable=value ] -n name
apxs -q [ -S variable=value ] query ...
apxs -i [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ...

14


apxs -e [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ...
Mô tả:
Là một công cụ để xây dựng và các đặt các mô đun mở rộng cho Apache
HTTP server. Được thực hiện bằng cách cài đặt một DSO từ một hay nhiều
nguồn hoặc đối tượng file mà sau đó nó có thể nạp vào Apache trong thời gian
chương trịnh đang chạy qua chỉ thị LoadModule từ mod_so.
Để sử dụng kỹ thuật mở rộng này, máy tính của người sử dụng phải hỗ trợ

DSO và Apache HTTPD nh? phân phải được xây dựng với mô đun mod_so.
Công cụ apxs sẽ tự động nhắc nhở nếu là các trường hợp ngược lại. Ta cần phải
kiểm tra việc này bằng dòng lệnh:
$ httpd -l
mô đun mod_so phải có trong danh sách được hiển thị. Nếu các yêu cầu này
được thỏa mãn, thị có thể dễ dàng mở rộng các chức năng của Apache server
bằng cách cài đặt các mô đun của mình với kỹ thuật DSO bằng công cụ apxs
này.
Ví dụ:
$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/libexec/mod_foo.so
chmod 755 /path/to/apache/libexec/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module
foo_module

15


/path/to/apache/sbin/apachectl restart: httpd started
Các đối số File có thể là bất kỳ một file nguồn c (.c), file đối tượng (.o)
hoặc ngay cả một thư việc lưu trữ (.a). Công cụ apxs tự động công nhận các
phần mở rộng này và tử động sử dụng các file nguồn C cho việc biên dịch trong
khi nó chỉ sử dụng các file đối tượng và lưu trữ cho giai đoạn liên kết. Nhưng
khi sử dụng nhiều đối tượng trước biên dịch , phải chắc chắn rằng chứng được
liên kết cho PIC để có thể sử dụng chúng cho một DSO. Cho ví dụ với GCC,

người sử dụng luôn chỉ phải sử dụng -fpic. Đối với các các biên dịch C khác yêu
cầu phải tham khảo tài liệu hướng dẫn của nó hoặc chờ đợi các cờ apxs, để biên
dịch các file đối tượng.
Các đối số cụ thể của dòng lệnh:
- n name: Thiết lập tên mô đun cho chức năng -i (cài đặt) và -g (tạo khuôn mẫu).
Sử dụng nó để chỉ ra tên mô đun. Chức năng -g là bắt buộc, chức năng -I thị có
tác dụng khiến công cụ apxs cố gắng xác định tên từ nguồn hoặc ít nhất cũng
đoán được từ tên file.
-q : Thực hiện truy vấn cho apxs về các cài đặt nào đó. Tham số truy vấn có thể
là một hoặc nhiều các giá trị:
CC

TARGET

CFLAGS

SBINDIR

CFLAGS_SHLIB

INCLUDEDIR

LD_SHLIB

LIBEXECDIR

LDFLAGS_SHLIB

SYSCONFDIR


LIBS_SHLIB

PREFIX

Sử dụng các chức năng này để hướng dẫn xác định các thông số cài đặt:
INC = I 'apxs -q INCLUDEDIR'
bên trong các Makefile nếu cần hướng dẫn các truy cập đến các file tiêu đề của
Apache.

16


-S variable = value: Chức năng này thay đổi các cài đặt apx đi kèm với các giá
trị đặc biệt theo sau như:
" Chức năng tạo ra một khuôn mẫu:
-q: chức năng tạo ra một thư mục con và 2 file trong đó: Một file nguồn ví dụ
mô đun tên là mod_name.c mà nó có thể sử dụng như một khuôn mẫu cho việc
tạo các mô đun của chính người sử dụng hoặc như một quá trịnh khởi động
nhanh cho việc chạy các kỹ thuật apxs. Và một mẫu thư Makefile với mục đích
là dễ tạo và cài đặt các mô đun này.
" Chức năng biên dịch DSO:
-c : Chức năng này chỉ ra thao tác biên dịch. Đầu tiên nó biên dịch các file
nguồn C (.c) của files vào trong các file đối tượng tương ứng (.o) và sau đó cài
đặt một DSO vào trong dsofile bằng cách liên kết các file đối tượng này cùng
với các file đối tượng còn lại (.o và .a) của files.
-o dsofile: Chỉ ra tên file của file DSO đã tạo. Nếu không có sự chỉ định và tên
file không thể đoán được từ bảng liệt kê các file, tên dự phòng mod_unknow.so
được sử dụng.
" Chức năng cài đặt và định dạng DSO:
-i : Chức năng này để chỉ thao tác cài đặt và cài đặt một hoặc nhiều hơn các

DSO vào trong thư mục libexec của server.
-a : Chức năng này để chỉ thao tác kích hoạt đến mô đun bằng cách tự động
thêm vào một dòng LoadModule đến file cấu hình httpd.conf của Apache hoặc
cho phép nó thực thi nếu đã tồn tại.
-A : Chức năng này cũng giống như -a nhưng nó tạo một chỉ thị LoadModule
được đặt thêm vào một dấu (#), có nghĩa là mô đun chỉ cho phép cho các thi
hành ngay sau đó còn lúc đầu thị bị cấm.
-e : Chức năng này dành cho thao tác hiệu chỉnh, có thể sử dụng kèm với chức
năng -a và -A, cũng giống như chức năng -I: Thao tác hiệu chỉnh file cấu hình
httpd.conf của Apache mà không cố găng cài đặt các mô đun.

17


Ví dụ:
Giả sử người sử dụng đã có sẵn một mô đun Apache tên là mod_foo.c mà nó sẽ
mở rộng chức năng server của Apache. Để làm việc đó, trước hết cần phải biên
dịch một nguồn C vào trong một DSO phù hợp cho việc nạp vào trong Apache
server. Có thể sử dụng lệnh sau:
$ apxs -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
$_
Sau đó tiến hành cập nhật cấu hình Apache bằng cách chắc chắn rằng một
chỉ thị LoadModule được đưa ra để nạp DSO này. Để đơn giản bước này, apxs
cung cấp một cách tự động cách cài đặt DSO vào trong thư mục libexec và cập
nhật file httpd.conf.
Bằng cách sử dụng các lệnh:
$ apxs -i -a mod_foo.c
cp mod_foo.so /path/to/apache/libexec/mod_foo.so

chmod 755 /path/to/apache/libexec/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$_
Cách này là một dòng lệnh có tên:
LoadModule foo_module libexec/mod_foo.so
được thêm vào để cấu hình file nếu vẫn chưa được đưa ra. Nếu muốn cấm thao
tác này sử dụng thêm vào chức năng -A.
18


$ apxs -i -A mod_foo.c
Để kiểm tra nhanh apxs, người sử dụng tạo ra một mẫu ví dụ mô đun
Apache cùng với một thư từ Makefile bằng cách:
$ apxs -g -n foo
Creating [DIR] foo
Creating [FILE] foo/Makefile
Creating [FILE] foo/mod_foo.c
$_
Sau đó có thể biên dịch ngay mô đun ví dụ này vào một DSO và nạp nó
lên Apache server:
$ cd foo
$ make all reload
apxs -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
apxs -i -a -n "foo" mod_foo.so
cp mod_foo.so /path/to/apache/libexec/mod_foo.so
chmod 755 /path/to/apache/libexec/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
apachectl restart

/path/to/apache/sbin/apachectl restart: httpd không chạy,cố gắng khởi động
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): nạp foo_module
/path/to/apache/sbin/apachectl restart: httpd khởi động
$_
19


Người sử dụng có thể sử dụng apxs để biên dịch các mô đun phức tạp bên
ngoài cây nguồn Apache, cũng như PHP bởi vì apxs tự động chấp nhận nguồn C
và các file đối tượng.

2.2.2 GIỚI THIỆU PHP:
Cùng với Apache, PHP và MySQL đã trở thành chuẩn trên các máy chủ
Web. Rất nhiều phần mềm Web mạnh sử dụng PHP và MySQL (PHP Nuke,
Post Nuke, vBulletin…).
PHP là ngôn ngữ có cú pháp gần giống Perl nhưng tốc độ dịch của nó được các
chuyên gia đánh giá là nhanh hơn ASP 5 lần, chạy trên nhiều hệ điều hành như
Unix, Window, Linux nó hỗ trợ kết nối các hệ cơ sở dữ liệu lớn như MySQL,
ngoài ra nó còn được Apache hỗ trợ như là một modul cơ bản.
a. PHP là gì?
PHP (Personal Home Page hay PHP Hypertext Preprocessor) được giới
thiệu năm 1994 bởi R.Lerdoft, như một bộ sưu tập của một ngôn ngữ chưa chặt
chẽ dựa vào Perl và các công cụ của trang chủ. Vì quá trình xử lý dựa trên máy
chủ nên các trang Web được viết bằng PHP sẽ dễ nhìn hơn ở bất cứ hệ điều
hành nào. Nói một cách ngắn gọn: PHP là một 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. Xu hướng sử dụng PHP
trong việc thiết kế Web đang ngày càng phát triển trong giai đọan hiện nay và
trong tương lai.
Tới năm 1998, việc công bố phiên bản 3 thị PHP mới chính thức phát
triển theo hướng tách riêng của mình. Giống như C và Perl, lúc này nó đã là

một ngôn ngữ lập trịnh có cấu trúc và tính năng đa dạng, chính vì thế đã khuyến
khích các nhà thiết kế Web sử dụng PHP. Nó có thể cung cấp một lượng cơ sở
dữ liệu khá đồ sộ gồm cả MySQL, mSQL, dbm, Hyperwave, Informix, Ocracle,

20


nó cũng có thể làm việc với các hình ảnh, các file dữ liệu, FTP, XML, và host
của các kỹ thuật ứng dụng khác.
Mã PHP được đặt trong một kiểu tag đặc biệt cho phép ta có thể vào họăc
ra khỏi chế độ PHP, cú pháp của PHP cơ bản cũng giống như một số ngôn ngữ
lập trịnh khác, đặc biệt là C và Perl.

PHP được nhận dạng dưới 4 dạng phiên bản:
a.Ví dụ:

//bắt đầu php

echo"Hello World";
?>

//Kết thúc php

b.Ví dụ:
<script language="php">
Echo"Hello,World";
</script>
c.Ví dụ:

Echo"Hello,World";
?>
d.Ví dụ:
<%
echo "Hello,World";
21


%>
Tuy nhiên phiên bản đầu tiên vẫn được ưa chuộng và dùng phổ biến hơn.
b. Cài đặt và cấu hình PHP
Việc cài đặt PHP trên Ubuntu vô cung đơn giản, trên cửa sổ Terminal bạn
gõ:
$ sudo apt-get install php5
Tất cả chỉ có vậy, hệ thống sẽ tự động kết nối với kho phần mềm và tự
động cài đặt và cấu hình cho bạn.
c. Các kiểu dữ liệu:


Số nguyên:

Được khai báo và sử dụng giá trị giống như C:
VD: $a=1234; $a = -123;


Số thực:

VD: $a= 1.323; $a=1.2e3;
Chú ý: Khi sử dụng các số thực tế để tính toán, có thể làm mất giá trị của
nó. Vì vậy, nên sử dụng các hàm toán học trong thư viện chuẩn để tính toán.



Xâu:

22


Có 2 cách để xác đinh 1 xâu: Đặt giữa 2 dấu nháy kép("") hoặc giữa 2 dấu
nháy đơn ('').Chú ý là các biến giá trị sẽ không được khai triển trong xâu giữa 2
dấu ngoặc đơn.


Mảng:

Mảng thực chất là gồm 2 bảng: Bảng chỉ số và bảng liên kết
a. Mảng 1 chiều: Có thể dùng hàm list(), array() để liệt kê ca(c giá trị của từng
phần tử trong mảng để tạo mảng. Có thể thêm các giá trị vào mảng để tạo thành
1 mảng --> Dùng giống trong C.
Có thể dùng các hàm asort(), arsort(), ksort(), rsort(), sort(), uasort(),
usort(), and uksort() để sắp xếp mảng. Tùy thuộc vào việc sắp xếp theo kiểu gì.
b.Mảng nhiều chiều: Tương tự như C, có thể dùng như VD sau:
$a[1] = $f;
$a["foo"] = $f;
$a[1][0] = $f;
$a["foo"][2] = $f;
$a[3]["bar"] = $f;
PHP không yêu cầu phải khai báo trước kiểu dữ liệu cho các biến, kiểu dữ
liệu của biến sẽ phụ thuộc vào kiểu dữ liệu mà bạn gán cho nó.
VD :
$foo = "0"; // $foo là ký tự ASCII 48

$foo++; // $foo là xâu "1" (ASCII 49)
$foo += 1; // $foo là số nguyên (2)

23


$foo = $foo + 1.3; // $foo là số thực (3.3)
$foo = 5 + "10 Little Piggies"; // $foo là số nguyên (15)
d. Biến - giá trị
PHP quy định một biến được bắt đầu bằng dấu $, sau đó là một chữ cái
hoặc dấu gạch dưới.


Một số biến đã được tạo sẵn.

ARGV: Mảng tham số truyền cho Script. Khi đọan Script chạy bằng dòng
lệnh, tham số này sẽ được dùng giống như C để truy nhập các tham số dòng
lệnh.
ARGC: Số các tham số được truyền, dùng chung với ARGV.
PHP_SELF: Tên của đoạn mã Script đang thực hiện. Nếu PHP đang được
chạy từ dòng lệnh thị tham số này không có giá trị.
HTTP_COOKIE_VARS: Một mảng các giá trị được truyền tới Script hiện
tại bằng

HTTP COOKIE. Chỉ có tác dụng nếu "track_vars" trong cấu hình

được đặt hoặc chỉ dẫn <?php_track_vars?>.
HTTP_GET_VARS: Một mảng các giá trị được truyền tới Script hiện tại
bằng HTTP GET. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt
hoặc chỉ dẫn <?php_track_vars?>.

HTTP_POST_VARS: Một mảng các giá trị được truyền tới Script hiện tại
bằng HTTP POST. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt
hoặc chỉ dẫn <?php_track_vars?>.


Phạm vi giá trị:

PHP coi 1 biến có một giới hạn. Để xác định một biến toàn cục (global)
có tác dụng trong một hàm, ta cần khai báo la?. Nếu không giá trị của biến sẽ
được coi như là cục bộ trong hàm.

24


VD :
$a = 1;
$b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;
}
Sum ();
echo $b;
Khi có khai báo global ở trên, $a và $b được cho biết đó là những biến
toàn cục. Nếu không có khai báo global, $a và $b chỉ được coi là các biến bên
trong hàm Sum(). Điều này khác với C. Một cách khác để dùng biến toàn cục
trong một hàm là ta dùng mảng $GLOBAL cuả PHP.Ví dụ trên có thể viết như
sau:
$a = 1;
$b = 2;

Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum ();
echo $b;
Một chú ý khác là khai báo static. Với khai báo này bên trong một hàm
với một biến cục bộ, giá trị của biến cục bộ đó sẽ không bị mất khi đi ra khỏi
hàm.
25


×