Bài giảng Apache & MySQL & PHP - Đặng Thành Trung

Cài đặt Apache 2.x (Windows)

Để cài đặt Apache trong Windows bằng chương trình cài đặt tự động, cần download chương trình này về từ website của Apache. Thông thường những chương trình dạng này sẽ không hỗ trợ giao thức https.

Quá trình cài đặt sẽ tự động sao chép tất cả các file cần thiết vào thư mục chỉ định.

Có thể sử dụng chương trình quản lý ở mức dịch vụ để start, stop, restart, reload Apache hoặc khởi động bằng tay.

. Cấu hình Apache

Toàn bộ cấu hình của Apache đều được lưu dưới dạng text.

File cấu hình chính là httpd.conf nằm trong thư mục {apache_dir}\conf. Trong file này có thể chứa các khai báo include đến những file cấu hình khác.

Mỗi dòng trong file cấu hình đều mang 1 ý nghĩa

Là khoảng trắng

Là chú thích (bắt đầu bằng ký tự #)

Là khai báo (gồm từ khóa và giá trị). Từ khóa và giá trị

 

ppt50 trang | Chia sẻ: hienduc166 | Lượt xem: 588 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Apache & MySQL & PHP - Đặng Thành Trung, để xem tài liệu hoàn chỉnh bạn click vào nút TẢI VỀ ở trên
able `mytable` (`field1` char(10) collate utf8_unicode_ci not null,`field2` int unsigned default 0,`field3` datetime,primary key (`field1`, `field2`),index (`field1`),unique (`field3`)) engine=myisam default charset=utf8 collate=utf8_bin;show tables;desc mytable;insert into mytable set field1 = ‘abc’, field2 = 1, field3 = now();2.7 Ví dụ (tt)Thực hành (tt):use mysql;show tables;desc user;insert into user set user = ‘u1’, host = ‘localhost’,	 password = password(‘test’);create user u2@localhost identified by ‘test’;create user u3@localhost identified by password‘*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29’;grant all on *.* to u1@localhost with grant option;grant select,insert on mydb.* to u2@localhost;2.7. Ví dụ (tt)Thực hành (tt):insert into mysql.tables_priv set	host = ‘localhost’, user = ‘u3’,	db = ‘mydb’, table_name = ‘mytable’,	table_priv = ‘Select,Insert,Update’;flush privileges;set password = password(‘abc’);Copy các lệnh cần thiết vào file c:\mysql.sql sau đó chạy lệnh sau tại dấu nhắc lệnh của MySQL: source c:\mysql.sql; Sau đó thoát khỏi dấu nhắc lệnh của MySQL và thi hành lệnh sau:mysqldump –u root –p --all-databases > c:\all.sql3. Giới thiệu về PHPLà một ngôn ngữ lập trình server-side miễn phí được phát triển theo chuẩn mã nguồn mở. PHP ra đời từ sự viết tắt của cụm từ Personal Home Page. Nhưng hiện nay PHP được coi là sự chơi chữ của việc viết tắt đệ quy cụm từ PHP: Hypertext Preprocessor.PHP chạy được trong cả hai môi trường Linux và Windows. Có thể download phiên bản mới nhất của PHP tại địa chỉ:  phiên bản 4x và 5.x (mới nhất) khác nhau về kiến trúc. Chi tiết xin xem trong feature log.3.1. Cài đặt PHP 5.xDownload phiên bản mới nhất	RPM (.rpm)	Linux	Source code (.tar.bz2)	 PHP	Installer (.exe, .zip)	Windows	Source code (.tar.gz)3.2. Cài đặt PHP 5.x (Windows)Để cài đặt PHP trong Windows bằng chương trình cài đặt tự động, cần download chương trình này về từ website của PHP.Lưu ý là bản cài đặt PHP dạng tự động sẽ không có các thư viện mở rộng (đặc biệt là hai thư viện php_mysql và php_mbstring). Để có các thư viện này cần sử dụng bản cài đặt thủ công (.zip).File cấu hình của PHP có tên là php.ini nằm trong thư mục C:\WINDOWS3.3. Kết nối PHP - ApacheSau khi cài đặt PHP xong, cần thực hiện các bước đúng như chỉ dẫn trong file install.txt nằm tại thư mục {php_dir}Các chỉ dẫn trên vẫn thiếu một bước quan trọng là thêm các khai báo sau vào file cấu hình của Apache:AllowOverride NoneOptions NoneOrder allow,denyAllow from all Kết nối PHP – MySQLXóa bỏ chỉ dẫn chú thích (;) trong file cấu hình của php tại dòng “extension=php_mysql.dll” và tại dòng “extension=php_mbstring.dll” sau đó khởi động lại Apache. Chú ý giá trị của extension_dirNếu mọi việc thành công, trình duyệt sẽ hiển thị chính xác các thông tin khi duyệt địa chỉhttp:///info.phpVới file info.php có nội dung như sau:4. Ngôn ngữ lập trình PHPLà ngôn ngữ lập trình dạng server-side, vì vậy PHP ngoài các khả năng của một ngôn ngữ lập trình thuần túy còn có đầy đủ các chức năng cần thiết của một CGI chuẩn như: Lấy dữ liệu từ form, sinh các trang web động, gửi nhận cookie, hỗ trợ session, thao tác với biến của WEB Server.PHP cũng có hệ thống thư viện hàm đồ sộ giúp cho các lập trình viên có nhiều lựa chọn trong việc sửa dụng PHP để kết nối với nhiều phần mềm khác nhau như: Oracle, MySQL, ODBC, LDAP, Mail (SMTP, POP3), COM, .Net4.1. Cú pháp cơ bảnPHP mỗi khi thông dịch một file sẽ chỉ thi hành những khối lệnh nằm giữa 2 cặp thẻ Mọi ký tự nằm ngoài các cặp thẻ trên đều được giữ nguyên và thêm vào trong luồng siêu văn bản trả về cho môi trường bên ngoài theo đúng thứ tự ban đầu.Nói chung, cú pháp trong PHP được thừa kế từ cú pháp của C, C++ và Perl. Tuy nhiên, cũng có một số kết hợp và thay đổi từ các cú pháp gốc tạo ra nét đặc thù riêng cho PHP.4.1. Cú pháp cơ bản (tt)Để tạo ra các kết xuất trả về cho môi trường bên ngoài (trình duyệt) ta có thể sử dụng các cách sau:Viết kết xuất bên ngoài cặp thẻ Dùng lệnh echo hoặc printĐể tạo ra chú thích, có thể dùng cú pháp dạng C như sau:// 	Để chú thích dòng/* */ 	Để chú thích khốiLệnh của PHP kết thúc bởi dấu chấm phẩy (;) và có thể viết nhiều lệnh trên một dòng.Lưu ý không giống C, C++ trình thông dịch của PHP chỉ phân biệt hoa thường với tên biến, tên hằng. Còn tên hàm (có sẵn hoặc do người dùng định nghĩa) và từ khóa thì không phân biệt.4.2. Biến4.2.1 Định nghĩa biếnBiến trong PHP được bắt đầu bởi ký tự $, sau đó là tên biến được định nghĩa theo văn phạm sau:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* Tên biến có phân biệt hoa thường. Có thể gán giá trị vào biến mà không cần khai báo. Nhưng chỉ có thể truy cập nội dung biến đã có giá trị.Để xác định biến tồn tại hay không có thể dùng hàm isset() và để hủy biến có thể dùng hàm unset()Để xác định kiểu hiện tại của biến có thể sử dụng hàm gettype(), var_dump() hoặc các hàm is_var_type().4.2. Biến (tt)4.2.2 Phạm vi truy cập biến:Biến cục bộ hàm: Chỉ được sử dụng trong thân các hàm do người dùng định nghĩaBiến toàn cục: Được sử dụng bên ngoài thân các hàm do người dùng định nghĩa. Để truy cập được các biến này trong thân các hàm, cần phải dùng từ khóa global để khai báo hoặc thông qua biến mảng siêu toàn cục $GLOBALS.Biến siêu toàn cục: Là các biến được định nghĩa trước của PHP có thể được truy cập tại mọi nơi, mọi ngữ cảnh.Biến tĩnh: Được sử dụng như biến tĩnh trong C++. Biến tĩnh có thể được định nghĩa trong hàm và lớp.4.2. Biến (tt)4.2.3 Truy cập giá trị biến:Để truy cập giá trị biến chỉ cần dùng cú pháp $var_name. Biến kiểu mảng cần thêm cặp ký tự [ ] để truy cập vào giá trị các phần tử trong mảng.Tuy nhiên trong nhiều trường hợp phải sử dụng thêm cặp ngoặc nhọn { } hoặc ký tự & để có thể xác định chính xác tên biến cần truy cập$a = ‘hello’;	$b = ‘every’;$c = &$b;	$d = ‘b’;echo “$a $bone.”;	echo “$a ${b}one.”;echo “$a {$c}one.”;	echo “$a $$d”;echo “$a {$$d}one.”;	echo “$a ${$d}one.”;4.2. Biến (tt)4.2.4 Biến bên ngoài PHP:Biến form: Được truy cập thông qua các biến mảng siêu toàn cục được định nghĩa trước là $_POST, $_GET, $_COOKIE, $_REQUEST, $_FILES. Nếu khai báo register_global được bật trong php.ini thì tự động các biến có tên tương ứng cũng được tạo ra.Biến session: Được truy cập thông qua các biến mảng siêu toàn cục được định nghĩa trước là $_SESSION.Biến server: Được truy cập thông qua các biến mảng siêu toàn cục được định nghĩa trước là $_SERVER, $_ENV.4.3. Kiểu dữ liệu PHP hỗ trợ nhiều kiểu dữ liệu phổ thông như các ngôn ngữ lập trình khác (được liệt kê bên phải). Trên thực tế, PHP không định kiểu tuyệt đối cho các biến mà tùy vào từng ngữ cảnh, biến sẽ được quyết định là có kiểu nào tương ứng. Để ép kiểu có thể dùng cú pháp như của C hoặc dùng hàm settype(). Kiểu vô hướngbooleanintergerfloatstring Kiểu có cấu trúcarrayobject Kiểu đặc biệtresourceNULL 4.3. Kiểu dữ liệu (tt)Kiểu booleanTập xác định: { true, false }Toán tử liên quan: = == != === !== && || and or xor (bool)Kiểu intergerTập giá trị: { (-231)  (231 – 1) }Văn phạm:decimal: [1-9][0-9]* | 0 hexa: 0[xX][0-9a-fA-F]+ octal: 0[0-7]+ integer: [+-] 4.3. Kiểu dữ liệu (tt)Kiểu intergerToán tử liên quan:& | ^ ~ + - * / % ++ -- > &= |= ^= += -= *= /= %= >= (int)Kiểu floatTập xác định: { (-1,8 x 10308)  (1,8 x 10308) }Văn phạm:lnum: [0-9]+dnum: ([0-9]*[.]{lnum}) | ({lnum}[.][0-9]*)float: (({lnum} | {dnum}) [eE][+-] {lnum}) 4.3. Kiểu dữ liệu (tt)Kiểu floatToán tử liên quan: Giống kiểu intergerKiểu stringCách xác địnhĐặt trong cặp nháy đơn ‘ ’: Các ký tự giữa hai dấu nháy đơn được xử lý như văn bản thuần túy, chỉ có duy nhất 1 ký tự metacharacter có hiệu lực là ký tự \Đặt trong cặp nháy kép “ ”: Các ký tự giữa hai dấu nháy kép được tiền xử lý trước khi được coi như một xâu thực sự. Ví dụ “this is a new paragraph \n and this is character A: \x41”Đặt trong cặp cú pháp heredoc array(6 => 5, 13 => 9, "a" => 42));echo $arr["test"][6]; // 5echo $arr["test"][13]; // 9echo $arr["test"]["a"]; // 424.4. HằngĐược định nghĩa bởi cấu trúc define.Tên hằng phân biệt hoa thường.Phạm vi sử dụng giá trị của hằng là siêu toàn cục.Giá trị của hằng phải là kiểu vô hướng.Ví dụdefine("CONSTANT", "Hello world.");echo CONSTANT; // outputs "Hello world."4.5. Cấu trúc điều khiển Rẽ nhánh với if  elseif ($a > $b) { echo "a > b";	 $a = $b;} else { echo "a $b): echo "a > b"; $a = $b;else: echo "a $value) { echo "Key: $key; Value: $value";}4.5. Cấu trúc điều khiển (tt)Các khai báo khácinclude: Xác định đoạn mã được thi hành tiếp theo nằm trong file nào (hoặc URL nào). Nếu có nhiều khai báo include đến một file (URL) duy nhất hoặc khai báo này được đặt trong 1 vòng lặp thì khai báo sẽ được sử dụng nhiều lần.include_once: Giống include nhưng chỉ cho phép include mỗi file một lần.require: Giống include nhưng sẽ trả về lỗi nếu k0 thấy file hoặc URL.require_once: Giống include_once và require kết hợp lại.try { ... } catch;4.6. HàmKhai báo hàm trong PHP gần giống như khai báo trong C. Hàm trong PHP cũng cho phép đệ quy, lồng nhau. Tuy nhiên, cũng có một số điểm khác biệt:Định nghĩa hàm trong PHP thay kiểu trả về khi khai báo bằng từ khóa function.Tên hàm không phân biệt hoa thường khi gọi. Phạm vi truy cập là siêu toàn cục. Tham số trong lời gọi hàm có thể có giá trị mặc định. Giá trị được truyền vào theo dạng ByVal, để tham số được truyền vào theo dạng ByRef cần dùng ký tự &4.6. Hàm (tt)Ví dụ:	function foo() { 	echo "In foo() ";	}function bar($arg = '') {	echo "In bar(); argument: '$arg'";}function echoit($string) {	echo $string;}$func = 'foo';	 $func(); 	// This calls foo()$func = 'bar';	 $func('test');	// This calls bar()$func = 'echoit';	 $func('test');	// This calls echoit()4.7. Kết nối với MySQL	$db = mysql_connect('localhost', 'root', 'root') or die(‘Can not connect to server’);	mysql_query("SET NAMES 'utf8'");	mysql_query("SET CHARACTER SET 'utf8'");	mysql_select_db(‘mydb’, $db) or die(‘DB not found’);	$sql = ‘SELECT * FROM mytable WHERE field2 < 100’; 	$rs = mysql_query($sql);	for ($i = 0; $i < mysql_num_rows($rs), $i++) {	$rc = mysql_fetch_array($rs);	echo $rc[‘field1’];	echo $rc[1];	echo $rc[‘field3’];	}

File đính kèm:

  • pptApache MySQL PHP.ppt