Tìm hiểu về PHP November 20, 2011
Trang 1
BÁO CÁO THỰC HÀNH
MẠNG MÁY TÍNH
TÌM HIỂU VỀ WEB-PHP
1.PHP là cái gì?
PHP (PHP: Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay
một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy
chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và
có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng
web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây
dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã
nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
2.MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì
MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển,
hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích
rất mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng
dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn
có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành
khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac
OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan
hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó
làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
ngàn cổ sever đặt khắp các nước trên thế giớ và có 1 lượng lớn sever cố định 1
nơi để chạy resource còn lại chạy cache ở mỗi nước. Nếu IP nước nào truy cập
Tìm hiểu về PHP November 20, 2011
Trang 3
vào nó sẽ lưu cache vào sever nước đó và khi đó nó chỉ việc lôi cái cache đó ra
cho người khác sử dụng.
5.Các công cụ sọan thảo php.
File PHP hoàn tòan có thể xem được bằng các trình soạn thảo sẵn có như
notepad (windows) hay gedit(ubuntu)
Nhưng thuận tiện cho việc xây dựng code PHP,dễ dàng phân biệt các tập lệnh
thì nên cài thêm 1 số công cụ hữu ích hỗ trợ đa ngôn ngữ.
Trong windows có notepad++, Dreamweaver – là 1 phần mềm hữu ích để chỉnh
sửa PHP có kết nối Database
Trong linux (cụ thể là ubuntu) dùng gedit – công cụ cài mặc định cũng sử dụng
tương đối tốt cho việc xem code.Còn dùng soạn thảo có thể dùng Eclipse.Hay
gPHPedit
6.phpMyAdmin
Cụ thể mà nói thì phpMyAdmin chỉ là tập hợp nhiều trang php, chứ không hẳn
là một chương trình, nhưng đấy là những trang php đã được lập trình sẵn để
mình sử dụng cho nó tiết kiệm thời gian.
PhpMyAdmin là nơi tạo ra và quản lý danh sách các cơ sở dữ liệu,kết nối tới cơ
sở dữ liệu qua các tập lệnh.Nó dễ dàng thay đổi được database,thêm bớt chỉnh
sửa bằng các giao diện đồ họa.
PhpMyAdmin tích hợp sẵn SQL (điều khiển database bằng dòng lệnh),
Export/Importer (Sao lưu và backup cơ sở dữ liệu).Empty (xóa hết dữ liệu đã
ghi trong các cột database).Drop(Xóa database).
- Kết xuất dữ liệu sang các định dạng file khác: MS Word, HTML, PDF, TXT,
CSV, DBF, XML, …
- Lập lịch cho các tác vụ sao lưu, nhập, xuất, chuyển dữ liệu, lưu truy vấn và dữ
liệu.
Sự đồng bộ hóa
- Gửi e-mail thông báo đối với các tác vụ đã được lập lịch
- Hỗ trợ Backup và phục hồi cơ sở dữ liệu MySQL
- Hỗ trợ chuyển dữ liệu giữa các cơ sở dữ liệu cụ bộ hay từ xa của MySQL
- Đồng bộ hóa dữ liệu và cấu trúc dữ liệu
- Lập báo cáo với tính năng Report Builder ảo.
- Kết xuất báo cáo ra các định dạng như PDF, Excel, HTML…
- Xem báo cáo với tính năng Report Viewer
Tìm hiểu về PHP November 20, 2011
Trang 5
- Quản lý người dùng ảo
- Quản trị Server.
8.Những web server nào hỗ trợ tính năng real time?
9.Cài đặt XAMPP trên windows
Do trên máy quen dùng APPSERV nên cài XAMPP trên máy ảo.
Truy cập trang chủ và chọn bản
XAMPP cho Windows và tải về. Bản hiện tại 1.7.7.
Sau khi tải về cài đặt như các phần mềm thông thường.
Sau đó chương trình cài đặt sẽ cài đặt XAMPP lên máy tính.
Quá trình cài đặt hoàn tất.
Trang 7 Quá trình cài đặt hoàn tất.Thư mục web root nằm trong /var/www.
Muốn truy cập nơi này cần có tài khỏan root (ubuntu).Có thể đổi thư mục
webroot bằng cách thay đổi thông số file /etc/apache2/sites-enabled/000-default
qua lệnh gksu gedit /etc/apache2/sites-enabled/000-default
11.Đưa mã nguồn lên web server.
Nếu cài trên máy tính cá nhân dùng localhost thì ta chỉ việc copy mã nguồn
thẳng vào trong thư mục host (www) rồi chạy theo địa chỉ
http://localhost/thumucmanguon/ thế là Ok.
Trên web server của nhà cung cấp dịch vụ công việc này thực hiện trên trình
duyệt hoặc qua giao thức ftp.
Web sever (hay còn gọi máy phục vụ Web) là máy tính mà trên đó cài đặt phần
mềm phục vụ Web. đôi khi người ta cũng gọi chính phần mềm đó là Web
Server.Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html,
tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn
như IIS của Microsoft dành cho *.asp, *.aspx…; Apache dành cho *.php…; Sun
Java System Web Server của SUN dành cho *.jsp…
Để đưa mã nguồn lên web sever ta truy cập vào trang quản lý mà nhà cung cấp
dịch vụ tạo cho.
Tìm hiểu về PHP November 20, 2011
Trang 8 Truy cập vào phần File Manager và chọn vào thư mục public_html. Upload mã
nguồn vào thư mục này sẽ được hiển thị trên trang web.
Chọn vào nơi Upload,chọn dữ liệu cần Upload và đợi dữ liệu upload lên host.
Tìm hiểu về PHP November 20, 2011
Trang 10
phải lưu backup và thời gian trước sau, Khi lưu từng phiên bản sẽ cho phép
lưu kèm theo các thông tin liên quan như ai là người thay đổi , thay đổi chổ
nào, nội dung giúp cho việc quản lý source nguồn một cách rõ ràng. Việc lưu
trữ version SVN sự dụng các thuật toán so sánh và chỉ lưu trữ các thành phần
khác nhau của mỗi verision nên dung lượng lưu trữ sẽ được tối ưu so với việc
backup từng file.
Ví dụ như trên Google Site :
Cài đặt trên Windows :
- Cài đặt svn server.
Vào trang và tải bản
cài đặt về máy.
Hướng dẫn
Cài đặt SVN client
Eclipse và Zend Studio Notepad++đều có hỗ trợ SVN client dưới dạng
plugin.
Zend Studio thì đã tích hợp sắn.
Với Notepad++ vào phần plugin và thêm vào Tortoise SVN
Eclipse cần phải cài đặt nó bằng cách:
Vào menu Help > Install New Software Chọn repository “Helios –
nếu bạn đang sử dụng
phiên bản Helios. Nó có thể là phiên bản Gallieo hoặc Indigo.
Đợi hệ thống fetching các phần mở rộng.
Tìm hiểu về PHP November 20, 2011
Trang 11
SVNPath /home/phamdinhcuong/svn/example
AuthType Basic
AuthName "subversion repository"
AuthUserFile /etc/subversion/passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user
#</LimitExcept>
Require valid-user
</Location>
Reload lại apache2 server: sudo /etc/init.d/apache2 force-reload
Import project lên subversion:
Vào thư mục chứa thư mục project trong teminal: cd
/home/phamdinhcuong/tmp/
Thực hiện câu lệnh import: svn import myproject/ http://localhost/svn/example
Thực hiện câu lệnh checkout để kiểm tra kết quả: svn co
http://localhost/svn/example
Cài đặt trac tích hợp vào svn
Cài đặt truc vào Ubuntu
Cài đặt Database cho trac với sqlite: sudo apt-get -y install python-pysqlite1.1
Tạo một thư mục: trac-admin /home/phamdinhcuong/trac/example initenv
Điền các thông tin yêu cầu:
- Project Name: example
- Database connection string: <mặc định là sqlite:db/trac.db>
- Repository type: <Lấy giá trị mặc định là svn>
Tìm hiểu về PHP November 20, 2011
Trang 13
- Path to repository: <Đường dẫn đến nơi chứa svn. >
Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào website
trên server. Mỗi website có thể lưu trữ những thông tin khác nhau trong cookie.
Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau
(cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới browser.
Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng của mình, cho
nên 2 browser cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau.
Xử lý cookies trong php
Thiết lập cookie:Thiết lập cookie ta sử dụng:
Setcookie("tên cookies","giá trị", thời gian tồn tại)
Tên cookie là tên mà đặt cho phiên làm việc.
Giá trị là thông số của tên cookie.
Ví dụ: Setcookie("username","admin", time() +3600)
Sử dụng cookie: sử dụng cú pháp:
$_COOKIE["tên cookies"]
Hủy Cookie:Để hủy 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:
setcookie("Tên cookie") - Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi
Setcookie("tên cookies","giá trị"time()-60 - Dùng thời gian hết hạn cookie là thời
điểm trong quá khứ.
15. Session dùng để làm gì?
Session dùng để quản lý người sử dụng trong khoảng thời gian người sử dụng
giao tiếp với 1 ứng dụng. Một session được bắt đầu khi người sử dụng truy cập
vào ứng dụng lần đầu tiên, và kết thúc khi người sử dụng thoát khỏi ứng dụng.
Mỗi session sẽ có được cấp một định danh (ID) khác nhau và nội dung được lưu
trong thư mục thiết lập trong file php.ini (tham số session.save_path).
Thiết lập session: sử dụng cú pháp: session_start()
Đăng ký 1 giá trị session: session_register("Name")
Tìm hiểu về PHP November 20, 2011
Trang 15
- 301 Redirect
Redirect 301 /blog/index.php
http:// cuongphamdinh.tk /home.html
Cách này hỗ trợ cho việc chuyển đổi trang web cũ về trang web mới dễ dàng mà
mọi kết quả tìm kiếm với trang web cũ đều được ghi nhận.
- Chuyển đổi hướng tên miền.
RewriteEngine On
RewriteRule ^(.*)$ [R=301,L]
Cách này,tên miền trang web được thay đổi,nhưng các đường dẫn bên trong
không thay đổi.
- Tạo trang báo lỗi mang tính cá nhân
ErrorDocument 403 /403.html
ErrorDocument 401 /401.html
ErrorDocument 400 /400.html
ErrorDocument 500 /500.html
ErrorDocument 404 /404.html
* 401 - Authorization Required (cần password để truy nhập)
* 400 - Bad request (Lỗi do yêu cầu)
* 403 - Forbidden (không được vào)
* 500 - Internal Server Error (lỗi server)
* 404 - Wrong page (lỗi trang* không tìm thấy )
Khi gặp các tình huống lỗi như Bad Request(400), Is Not Working(401), Access
Forbidden(403),Not page found(404), Internal Server Error(500)…nó sẽ tự
động chuyển sang các trang 404.html….
- Cấm IP truy cập
allow from all //cho phép tất cả các IP
deny from 123.123.123.123 //Cấm Ip 123.123.123.123
Tìm hiểu về PHP November 20, 2011
DirectoryIndex about.html
- Nén file với Gzip
Nén dữ liệu trên sever và tải xuống giúp tăng tốc độ load trang.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml
application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
- Các tính năng với URL
#Thêm / vào cuối URL
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ [L,R=301]
#Có thể đặt .tuyy ở sau địa chỉ trang web trên URL đều được.
#Bỏ hiện .php ở url
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
#Chuyển mọi truy cập từ thành
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ [L,R=301]
Tìm hiểu về PHP November 20, 2011
Trang 19 #Thêm www vào URL
RewriteEngine On
18. Liệt kê các hàm cơ bản của Memcached
19. Mô tả tính ưu việt của cấu trúc MVC (model-view-controller).
Model View Controller (MVC) là tên một phương pháp chia nhỏ một ứng dụng
thành ba thành phần để cài đặt, mỗi thành phần đóng một vai trò khác nhau và
ảnh hưởng lẫn nhau, đó là models, views, và controllers.
Models là những thành phần có nhiệm vụ lưu trữ thông tin, trạng thái của
các đối tượng, thông thường nó là một lớp được ánh xạ từ một bảng trong
CSDL.
Tìm hiểu về PHP November 20, 2011
Trang 21
Views là các thành phần chịu trách nhiệm hiển thị các thông tin lên cho
người dùng thông qua giao diện. Các thông tin cần hiển thị được lấy từ thành
phần Models.
Controllers chịu trách nhiệm xử lý các tác động về mặt giao diện, các
thao tác đối với models, và cuối cùng là chọn một view thích hợp để hiển thị ra
màn hình.
Trong kiến trúc MVC, view chỉ có tác dụng hiển thị giao diện mà thôi, còn điều
kiển dòng nhập xuất của người dùng vẫn do Controllers đảm trách.
Tính ưu việt của MVC
Bắt buộc phải tạo ra một sự rành mạch trong liên kết giữa 3 thành phần
models, views và controllers trong ứng dụng. Duy trì được mối quan hệ rành
mạch rõ ràng này khiến việc kiểm tra ứng dụng trở nên dễ dàng hơn, đồng thời
trách nhiệm của từng thành phần được định nghĩa rõ ràng và cả ba đều làm việc
ăn ý với nhau.
Cho phép sự chia tách rành mạch giữa các thành phần, mỗi thành phần
đều có khả năng được test riêng biệt.Tất cả các mối liên hệ chính yếu trong
MVC đều có giao diện để hiển thị và đều có thể xây dựng thành các mô hình, và
khóa. Những hướng dẫn này có thể là biến, và được định nghĩa bởi dấu ($), các
chức năng, hàm logic hoặc các luồng điều khiển. Smarty cho phép các lập trình
viên có thể tự định nghĩa các chứng năng và truy cập sử dụng các Smarty tag.
Smarty là kết quả của việc tối ưu hóa và phân luồng công việc, cho phép trình
diễn các trang web bằng cách chia nhỏ chúng ở đầu cuối (back-end). Ý tưởng
Tìm hiểu về PHP November 20, 2011
Trang 23
đó đã giúp giảm thiểu rất nhiều giá thành và sự đồ sộ của các phần mềm. Dưới
mỗi một ứng dụng thành công thì luôn phân chia thành 2 mảng là người thiết kế
chính là lá chắn bảo về mã nguồn sau (back-end coding) và người lập trình php
được bảo vệ bới mã trình diễn. Smarty hỗ trợ một vài ngôn ngữ lập trình bậc
cao, bao gồm:
Điều khiển luồng dữ liệu,
Foreach if, elseif, else
Biến thay đổi
Người dùng tạo chức năng
Bên cạnh đó, thì một trong những chức năng nổi bật của các Template Engine là
hệ thống tạo mẫu cho phép thay đổi từ mẫu tới mẫu. Thông thường khi lập trình
PHP bạn hay viết lẫn cả phần HTML với mã lệnh PHP trên một trang. Điều này
sẽ dẫn đến rất rối nhất là khi bảo trì. Tất cả những điều này sẽ làm giảm năng
xuất công việc của bạn đi rất nhiều. Smarty ra đời đã giải quyết được các vấn đề
nêu trên.
Ưu điểm của Smarty:
Tốc độ load trang rất nhanh (do tạo được cache)
Code ứng dụng của bạn trở lên trong sáng, mạch lạc và dễ bảo trì hơn rất nhiều (do
tách biệt phần code và templates).
Hiệu quả công việc đạt tối đa (Người thiết kế và người lập trình làm việc hoàn toàn
độc lập. Thay đổi giao diện website nhanh chóng )
Trang 25
Copy mã nguồn smarty vào thư mục smarty vừa tạo ra và chạy như trên
windows.
Các phần mềm cài đặt được sử dụng trên 2 phiên bản windows là win 7 và win
xp(máy ảo) và trên Ubuntu 10.04