Tải bản đầy đủ (.ppt) (50 trang)

Bài giảng về Apache & MySQL & PHP

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 (1.13 MB, 50 trang )

Apache & MySQL & PHP

Đặng Thành Trung


1. Giới thiệu về Apache
• Là một WEB Server miễn phí được phát triển theo
chuẩn mã nguồn mở.
• Apache 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 Apache tại
địa chỉ:
• Các phiên bản 1.x và 2.x (mới nhất) khác nhau về
kiến trúc. Chi tiết xin xem trong feature log.


1.1. Cài đặt Apache 2.x
• Download phiên bản mới nhất
RPM (.rpm)
Linux
Source code (.tar.bz2)
Apache
Program install (.msi)
Windows
Source code (.zip)


1.2. 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.
• Q 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.


1.3. Cấu hình Apache
• Tồ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ị


1.3. Cấu hình Apache (tt)
• Tồn bộ tài liệu về Apache (bao gồm cả các khai báo
cấu hình) đều được cài đặt (mặc định) cùng với
Apache. Có thể truy cập vào tài liệu này thơng qua

URL (có dấu / cuối cùng)
http://<tênmáy | IP>/manual/
• Thơng thường URL trên sẽ bị vơ hiệu hóa (mặc định)
cho đến khi bỏ chú thích dịng “Include
conf/extra/httpd-manual.conf” trong file cấu hình
chính (httpd.conf) và restart lại Apache.


1.3. Cấu hình Apache (tt)
• Sau đây là một số khai báo thường gặp khi cấu hình
Apache:
– Listen: Khai báo web server sẽ được dùng tại IP nào và cổng
nào. Có thể khai báo nhiều lần
– LoadModule: Khai báo các module được nạp vào khi Apache
khởi động. Nên dùng để bỏ bớt các module không cần thiết
hoặc nạp module do người dùng tự viết.
– ServerName: Tên của server. Nếu Apache khơng tìm được
tên của máy tính qua DNS thì khai báo này bắt buộc phải có.
– DocumentRoot: Thư mục gốc của web server. Cần lưu ý đến
quyền của hệ thống gán lên thư mục này đối với account
dùng để chạy Apache.


1.3. Cấu hình Apache (tt)
• một số khai báo thường gặp khi cấu hình Apache:
– DirectoryIndex: Khai báo các file mặc định
– AddDefaultCharset: Khai báo bảng mã mặc định của luồng
siêu văn bản trả về cho client.
– Directory: Là khai báo khối (bên trong chứa các khai báo
con) dùng để định nghĩa quy tắc ứng xử của Apache đối với

từng thư mục.
– VirtualHost: Là khai báo khối, dùng để định nghĩa các web
server ảo theo tên trên một máy tính duy nhất.
– Alias: Dùng để tạo các thư mục ảo.


2. Giới thiệu về MySQL
• Là một hệ quản trị cơ sở dữ liệu miễn phí được phát
triển theo chuẩn mã nguồn mở.
• MySQL 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 MySQL tại
địa chỉ:
• Các phiên bản 3.x, 4x và 5.x (mới nhất) khác nhau về
kiến trúc. Chi tiết xin xem trong feature log.


2.1. Cài đặt MySQL 5.x
• Download phiên bản mới nhất
RPM (.rpm)
Linux
Source code (.tar.gz)
MySQL
Program install (.msi)
Windows
Source code (.zip)


2.2. Cài đặt MySQL 5.x
(Windows)

• Để cài đặt MySQL 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 MySQL.
• Q 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.
• Sau khi cài đặt có thể sử dụng tiện ích cấu hình tự
động để thiết lập các tham số ban đầu cho MySQL.
• Tập tin cấu hình của MySQL có tên là my.ini được
đặt tại thư mục {mysql_dir} là thư mục cài đặt
MySQL.


2.3. Tập lệnh của mysql
• Các lệnh của mysql được lưu trong thư mục
{mysql_dir}\bin
• Nên đưa thư mục trên vào đường dẫn PATH để có
thể sử dụng lệnh trong mọi ngữ cảnh của dịng lệnh.
• Sau đây là một số lệnh thường dùng
– mysqld-nt: Là chương trình server để lắng nghe các yêu cầu
của client.
– mysql: Là chương trình client dùng để kết nối và quản trị
bằng câu lệnh.
– mysqldump: Là chương trình cho phép kết xuất cấu trúc và
dữ liệu của các bảng trong mysql ra luồng dữ liệu dạng text.


2.4. Sử dụng lệnh mysql
• Để sử dụng lệnh mysql kết nối vào một mysql server
ta dùng cú pháp sau:
mysql [–u <user>] [-p] [-h <host>] [-P ]

• Trong đó:
– u: Dùng để chỉ định người dùng khi kết nối. Mặc định trong
Windows là ODBC.
– p: Dùng để chỉ định là người dùng tương ứng có mật khẩu
kết nối hay khơng.
– h: Dùng để chỉ định địa chỉ (Tên hoặc IP) của mysql server
cần kết nối. Mặc định là localhost.
– P: Dùng để chỉ định cổng kết nối. Mặc định là 3306.


2.4. Sử dụng lệnh mysql (tt)
• Sau khi kết nối thành cơng, có thể sử dụng các lệnh
sau (kết thúc lệnh là dấu ;) để quản trị mysql server:








source
<create | drop> database <db name>; show databases
use <db name>; show tables
<create | drop | alter> table; desc <table name>
select, insert, update, delete
grant, revoke, flush, set password


• Tập đầy đủ các lệnh mysql có thể được download và

tra cứu tại trang chủ của MySQL.


2.5. Bảo mật trong MySQL
• Để kết nối được với mysql server, client cần có ít nhất 1
account đã được khai báo trong csdl người dùng & phân quyền
của mysql server. Đây là một csdl ẩn, không được phép hiển thị
trong mọi lệnh của mysql.
• Tất cả dữ liệu nằm trong csdl có tên là mysql chính là ánh xạ
của csdl người dùng & phân quyền.
• Lưu ý, ánh xạ trên là một chiều. Tức là chỉ có chiều từ csdl
mysql sang csdl người dùng & phân quyền . Tuy nhiên, khơng
phải mỗi khi csdl mysql thay đổi thì csdl kia thay đổi theo.
• Để có quyền thay đổi (thực hiện ánh xạ), người dùng cần phải
có 2 quyền: grant và reload.


2.5. Bảo mật trong MySQL (tt)
• CSDL mysql chứa nhiều bảng bên trong, trong đó chỉ có bảng
user chứa định nghĩa về người dùng mysql.
• Bảng user có khóa chính là user và host




nếu host = ‘’ nghĩa là user được phép đăng nhập từ mọi host
nếu host = ‘%’ nghĩa là user được phép đăng nhập từ mọi host trừ localhost
giá trị của host là khác nhau với tên và IP (nghĩa là ‘localhost’ <> 127.0.0.1)

• Mật khẩu của người dùng được lưu dưới dạng kết quả của hàm

băm password. Để đổi mật khẩu cần dùng lệnh set password.
• Bảng user cũng chứa các quyền toàn cục của người dùng.
• Các bảng khác: db, tables_priv, columns_priv chứa các quyền
của người dùng đối với các csdl, bảng và cột trong bảng (Sử
dụng lệnh desc để biết thêm chi tiết).


2.6. Người dùng và phân quyền
• Sử dụng lệnh grant để tạo người dùng:
GRANT priv_type [(column_list)] ...
ON [TABLE] {tbl_name | * | *.* | db_name.*}
TO user@host [IDENTIFIED BY [PASSWORD] 'password'] ...
[WITH GRANT OPTION...]

– priv_type gồm các quyền:







ALL [PRIVILEGES]
ALTER
<CREATE | DROP> <DATABASE | TABLE>
SELECT,INSERT,UPDATE, DELETE

trong đó cần lưu ý: ALL khơng chứa quyền grant.



2.6. Người dùng và phân quyền
(tt)
• Sử dụng lệnh grant (tt):
– ‘password’ là mật khẩu thô, không cần dùng hàm password.
Nếu là dạng băm thì có thể dùng với từ khóa PASSWORD.
– Để có thể phân quyền cho một người dùng khác, người
dùng đang thi hành lệnh phải có quyền grant (global) và
quyền insert,update trên bảng user trong csdl mysql.
– Thơng thường, nếu người dùng chưa tồn tại thì grant tạo
ln người dùng mới, nếu khơng nó sẽ cấp quyền cho
người dùng đã có (nhưng khơng xóa các quyền khác, để
xóa cần dùng lệnh REVOKE có cú pháp như GRANT).
– Một số phiên bản install của MySQL bắt buộc phải tạo người
dùng bằng CREATE USER trước mới cho grant.


2.6. Người dùng và phân quyền
(tt)
• Sử dụng lệnh grant (tt):
– Cũng trong một số phiên bản MySQL, sau khi thi hành xong
lệnh grant, chỉ có csdl mysql là được cập nhật. CSDL người
dùng & phân quyền thực sự của MySQL vẫn chưa được
ánh xạ từ csdl mysql sang.
– Để thực hiện ánh xạ trên, người dùng cần thực hiện lệnh
flush privileges và phải có quyền reload.


2.6. Người dùng và phân quyền
(tt)
• Cập nhật trực tiếp vào csdl mysql:

– Như đã nói, csdl người dùng & phân quyền của MySQL là
ánh xạ trực tiếp từ csdl mysql sang. Do đó, nếu có đủ
quyền, người dùng có thể insert,update,delete trực tiếp lên
các bảng trong csdl mysql. Sau đó, thực hiện việc ánh xạ
bằng lệnh flush privileges.
– Hiệu quả của các thao tác trên tương ứng với lệnh grant.

• Lưu ý:
– Nếu quên mật khẩu của tài khoản root, có thể reset lại thơng
qua hướng dẫn về phần này tại mục “Appendix A.4.1 How to
reset the root password” trong tài liệu do MySQL cung cấp
tại địa chỉ


2.7 Ví dụ
• u cầu:
– Cài đặt MySQL phiên bản 5.x vào hệ điều hành Windows
– Dùng chương trình Install Wizard để thiết lập MySQL chạy
như một service và đặt mật khẩu của tài khoản root là ‘root’.

• Thực hành:
– Gõ lệnh mysql –u root –p tại dấu nhắc lệnh của cửa sổ
DOS, sau đó nhập mật khẩu ‘root’ để đăng nhập vào cửa sổ
lệnh của MySQL và thực hiện những lệnh sau
– show databases;
// Xem các csdl hiện có
– create database mydb;
// Tạo csdl mydb
– use mydb;
// Đặt csdl hiện hành là mydb



2.7. Ví dụ (tt)
• Thực hành (tt):
– create table `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.sql


3. Giới thiệu về PHP

• Là 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ỉ:
• Các 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.


×