Read without ads and support Scribd by becoming a Scribd Premium Reader.
 
Căn bản về SSI trên Apache :
trang này đã được đọc lầnUsing Server Side Includes Trong khi các file HTML chuẩn dùng cho lưu giữ các trang rất tốt, thì khả năng tạo ramột số nội dung động của nó cũng rất đáng hoan nghênh. Lấy ví dụ, đưa thêm vàomột footer hay một header vào tất cả các file, hoặc là đưa vào thông tin về tài liệu ví như thời gian sửa đổi gần nhất một cách tự động. Điều này có thể thực hiện bằng CGIđược, nhưng nó lại đòi hỏi những kĩ năng lập trình hoặc viết mã kịch bản mà vấn đềđó thì không hề đơn giản. Đối với những trang tài liệu động đơn giản thì chúng ta cómột giải pháp thay thế khác: đó là các nội dung đưa vào từ máy chủ (SSI). Bài này làmột trong loạt bài về SSI do chúng tôi biên soạn, với các mức độ khác nhau về cúpháp. Nếu các bạn muốn theo dõi về chủ đề này xin đến với Diễn dàn Công nghệthông tin VNhttp://cnttvn.cjb.net/SSI cho phép bạn gắn kèm một số câu lệnh đặc biệt vào trong chính trang HTML. Khimà server đọc một tài liệu có chứa SSI, nó sẽ tìm kiếm các câu lệnh này và thực hiệncác hành động cần thiết. Ví dụ, có một câu lệnh SSI thực hiện chức năng nhập vàothời gian sửa đổi gần nhất của tài liệu. Khi server đọc được một file có dòng lệnh nàytrong đó, nó sẽ thay thế dòng lệnh bằng thời gian thích hợp.Apache có chứa một tập hợp các câu lệnh SSI dựa theo một số câu lệnh có trong máychủ NCSA cộng với nhiều câu lệnh mở rộng khác. Điều này được thực hiện với theincludes module (mod_includes). (Bạn có thể hiểu là một chương trình có chức năngtổng hợp) Telling Apache to Use SSI Theo mặc định thì máy chủ không hơi đâu mà đi tìm trong các file HTML xem có cáccâu lệnh SSI hay không. Điều này làm giảm tốc độ mọi lần truy cập đến một fileHTML. Để sử dụng SSI bạn cần báo cho Apache biết là các tài liệu nào thì có chứa cáccâu lệnh SSI.Một cách để làm được điều này là dùng một file có phần mở rộng đặc biệt. Thường thìngười ta dùng .shtml, và nó có thể được lên cấu hình (configured) cùng với cáidirective tức cái lời hướng dẫn này:AddHandler server-parsed .shtmlAddType text/html shtmlChỉ thị AddHandler bảo cho Apache biết cách xử lý mọi file .shtml như là một loại màcó chứa các câu lệnh SSI. Chỉ thị AddType thì thực hiện cái điều là làm cho các nộidung được xử lý ấy được đánh dấu như là HTML để trình duyệt hiển thị nó một cáchchính xác.Một phương pháp thay thế khác để thông báo cho server biết file nào là có chứa cáccâu lênh SSI là sử dụng cái gọi là XBitHack. Cái này liên quan đến việc thiết lập theexecute bit mà tôi tạm dịch là bit thực thi trên các file HTML. Bất cứ một file này cóloại nội dung (content type) là text/html (ví dụ có phần mở rộng là .html) và có chứamột tập hợp bit thực thi thì sẽ được kiểm tra xem có chứa các câu lệnh SSI haykhông. Để làm điều này thì cần phải đưa vào chỉ thị XBitHack .
 
 Trong cả hai phương pháp thì server cũng cần phải được lên cấu hình để cho phépdùng các câu lệnh SSI. Điieù này đượct hực hiện với chỉ thị Options Includes , cái nàycần được đặt trong hoặc là tệp tin toàn cục mang tên access.conf (the globalaccess.conf) hoặc là tệp tin địa phương .htaccess (local .htaccess) (mặc dầu là cái thứ hai bắt buộc phải được enabled bằng chỉ thị AllowOverride Options). Bởi vì một số câulệnh SSI cho phép dùng các chương trình thực thi mà có thể mang tới rủi ro về vấn đềsecurity, nên có một giải pháp thay thế tùy chọn, IncludesNOExec cho phép các câulệnh SSI đều thực hiện được ngoại trừ những câu lệnh nào thực thi một chương trình.SSI Commands Tất cả các câu lệnh SSI được lưu giữ trong file HTML bằng các kí hiệu ghi chú củaHTML. Một câu lệnh SSI bình thường trông giống như thế này: Trong trường hợp này câu lệnh là flastmod, nó có nghĩa là đưa ra thông tin là thờigian sửa đổi gần nhất của file đó. Các đối số (argument) xác định cụ thể file đó là"this.html" (đây là tên của file có chứa câu lệnh này). Toàn bộ phần viết ra câu lệnh,mà được chứa trong kí hiệu đánh dấu phần chú thích ãe được thay thế bằng kết quảcủa câu lệnh này.Nói chung thì tất cả các câu lệnh đều có cái format tức cái công thức như sau:trong đó arg1, arg2, vân vân là các cái tên của các đối số và value1, value2 vân vânlà các giá trị của các đối số đó. Trong ví dụ về flastmod, đối số là 'file' và giá trị của nólà 'this.html'. Thường thì các câu lệnh có thể nhận các tên của đối số khác nhau. Ví dụ, flastmod có thể được trao cho một URL với đối số là virtual, để lấy được thời giancủa lần sửa đổi gần nhất từ server. Ví dụ:để nhận được thời gian sửa đổi gần nhất của trang chủ trên server đó (điều này làhữu ích nếu như trang được truy cập đó có thể có một tên khác, ví dụ là như thế).Bên cạnh flastmod, có các câu lệnh SSI làm chức năng là lấy kích thước (size) củamột file hay một URL, các nội dung của một biến (được máy chủ truyền vào trong),các nội dung của một file khác hay URL khác, hoặc kết quả của việc chạy một localfile tức là một tệp tin trong nội bộ site. Những câu lệnh này được nêu ra trong NCSAtutorial về vấn đề server side includes.Khi các câu lệnh SSI được thực thi, một số các biến môi trường ('environmentvariables') được thiết lập. Điều này hàm chứa các biến CGI (REMOTE_HOST etc), vàthêm một số cái nữa, như là DOCUMENT_NAME và LAST_MODIFIED. Các biến này cóthể là thông tin đầu ra (output) với câu lệnh echo (do vậy cách tốt hơn để lấy ra thờigian sửa đổi gần nhất của file hiện thời sẽ là ).Extended SSIApache mở rộng ngôn ngữ SSI chuẩn (NCSA-compatible) một cách đáng kể. Một sốmở rộng gồm có:Các biến trong các câu lệnh: Apache cho phép các biến được dùng trong bất cứ mộtcâu lệnh SSI nào. Ví dụ, thời gian sửa đổi gần nhất của tài liệu hiện thời có thể lấy ravới Thiết lập các biến: câu lệnh set có thể được dùng bên trong SSI để thiết lập các biến.Các điều kiện: các câu lệnh SSI if, else, elif và endif có thể được dung để đưa cácphần của file vào dựa trên các kiểm tra mang tính điều kiện. Ví dụ, biến
Search History:
Searching...
Result 00 of 00
00 results for result for
  • p.
  • Notes
    Load more