1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu cai dat WebDAV cung MySQL tren Apache2 doc

5 382 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cài đặt WebDAV cùng MySQL trên Apache2
Thể loại Hướng dẫn
Định dạng
Số trang 5
Dung lượng 48,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cài đặt WebDAV cùng MySQL trên Apache2 Trong bài viết sau, chung tôi sẽ hướng dẫn các bạn cách thiết lập WebDAV sử dụng cơ chế chứng nhận MySQL dựa trên mod_auth_mysql trên nền tảng Apa

Trang 1

Cài đặt WebDAV cùng MySQL trên

Apache2

Trong bài viết sau, chung tôi sẽ hướng dẫn các bạn cách thiết lập WebDAV sử dụng cơ

chế chứng nhận MySQL (dựa trên mod_auth_mysql) trên nền tảng Apache2 và Ubuntu

9.10 server

WebDAV (đầy đủ là Web-based Distributed Authoring and Versioning) với thuộc tính mở rộng,

kế thừa chuẩn HTTP protocol cho phép người dùng trực tiếp chỉnh sửa file lưu trữ trên Apache server, vì vậy hoàn toàn không cần đến giao thức FTP hỗ trợ nữa Và đường nhiên, với khả năng trên thì WebDAV cũng được dùng để upload và download dữ liệu

1 Lưu ý sơ bộ: trong bài viết này sử dụng hệ điều hành Ubuntu 9.10 server với hostname

server1.example.com và địa chỉ IP: 192.168.0.100

2 Hướng dẫn cài đăt Apache2, WebDAV, MySQL, mod_auth_mysql:

Để cài đặt lần lượt Apache2, WebDAV, MySQL, và mod_auth_mysql, gõ câu lệnh sau:

aptitude install apache2 mysql-server mysql-client libapache2-mod-auth-mysql

Bạn sẽ nhận được yêu cầu nhập mật khẩu cho tài khoản MySQL root user – mật khẩu này đều

được sử dụng cho tài khoản user root@localhost cũng như root@server1.example.com, vì vậy

chúng ta không cần phải phân loại mật khẩu MySQL root bằng cách thủ công như sau:

New password for the MySQL "root" user: < mật khẩu tài khoản root

Repeat password for the MySQL "root" user: < mật khẩu tài khoản root

Sau đó, kích hoạt WebDAV và module mod_auth_mysql:

a2enmod dav_fs

a2enmod dav

a2enmod auth_mysql

Khởi động lại Apache

3 Tạo host ảo – Virtual Host:

Tiếp theo, chúng ta sẽ tạo vhost Apache mặc định trong thư mục /var/www/web1/web Để phục

vụ cho mục đích này, cần phải thay đổi thiết lập Apache vhost mặc định trong

/etc/apache2/sites-available/default Trong trường hợp bạn đã có vhost phù hợp, mà chỉ cần kích

hoạt WebDAV, bạn phải điều chỉnh lại sao cho phù hợp với tình huống của bài viết

Trang 2

Trước tiên, tạo thư mục /var/www/web1/web và tài khoản Apache user (www-data):

mkdir -p /var/www/web1/web

chown www-data /var/www/web1/web

Sau đó, cần sao lưu những thiết lập mặc định của Apache vhost

(/etc/apache2/sites-available/default):

mv /etc/apache2/sites-available/default /etc/apache2/sites-available/default_orig

vi /etc/apache2/sites-available/default

NameVirtualHost *

<VirtualHost *>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/web1/web/

<Directory /var/www/web1/web/>

Options Indexes MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

</VirtualHost>

Sau đó nạp lại Apache:

/etc/init.d/apache2 reload

4 Tùy chỉnh Virtual Host dành cho WebDAV:

Bạn có thể tham khảo tài liệu về module mod_auth_mysql trong thư mục

/usr/share/doc/libapache2-mod-auth-mysql, để đọc những tài liệu này, bạn cần phải sử dụng

gunzip thao tác trên 2 file DIRECTIVES.gz và USAGE.gz:

cd /usr/share/doc/libapache2-mod-auth-mysql

gunzip DIRECTIVES.gz

vi DIRECTIVES

gunzip USAGE.gz

vi USAGE

Tiếp theo, tạo cơ sở dữ liệu MySQL tên là webdav, dùng để chứa bảng mysql_auth, có chứa thông tin tài khoản và mật khẩu đăng nhập của các tài khoản Bên cạnh đó, chúng ta phải tạo thêm tài khoản MySQL user webdav_admin – tài khoản này sẽ được sử dụng bởi

mod_auth_mysql để kết nối đến MySQL sau này:

Trang 3

mysqladmin -u root -p create webdav

mysql -u root -p

GRANT SELECT, INSERT, UPDATE, DELETE ON webdav.* TO

'webdav_admin'@'localhost' IDENTIFIED BY 'webdav_admin_password';

GRANT SELECT, INSERT, UPDATE, DELETE ON webdav.* TO

'webdav_admin'@'localhost.localdomain' IDENTIFIED BY 'webdav_admin_password'; FLUSH PRIVILEGES;

(Thay thế giá trị webdav_admin_password với mật khẩu tùy chọn của bạn)

USE webdav;

create table mysql_auth (

username char(25) not null,

passwd char(32),

groups char(25),

primary key (username)

);

Tiếp theo, thêm tài khoản người dùng test vào bảng mysql_auth, mật khẩu test (mã hóa MD5), tài khoản này nằm trong nhóm testgroup:

INSERT INTO `mysql_auth` (`username`, `passwd`, `groups`) VALUES('test', MD5('test'), 'testgroup');

Sau này bạn có thể sử dụng đường dẫn http://192.168.0.100/webdav để kết nối tới WebDAV

Nếu làm việc này trên Windows XP client, khi gõ tên đăng nhập test, Windows sẽ dịch địa chỉ thành 192.168.0.100\test Do đó ta phải tạo tài khoản thứ 2 ngay bây giờ:

INSERT INTO `mysql_auth` (`username`, `passwd`, `groups`)

VALUES('192.168.0.100\\test', MD5('test'), 'testgroup');

(chúng ta phải sử dụng dấu gạch chéo ngược thứ 2 trong trường tên đăng nhập để “thoát khỏi” tên thứ nhất)

Thực ra, bạn không phải làm bước này nếu đã chỉ định trước cổng kết nối trong đường dẫn

WebDAV, ví dụ như http://192.168.0.100:80/webdav – trong trường hợp này, Windows sẽ chỉ

để ý đến tài khoản test, không còn là 192.168.0.100\test như trên.

Sau đó, thoát khỏi MySQL:

quit;

Trang 4

Tiếp theo, chúng ta phải chỉnh sửa vhost trong /etc/apache2/sites-available/default và thêm dòng

sau:

vi /etc/apache2/sites-available/default

[ ]

Alias /webdav /var/www/web1/web

<Location /webdav>

DAV On

AuthBasicAuthoritative Off

AuthUserFile /dev/null

AuthMySQL On

AuthName "webdav"

AuthType Basic

Auth_MySQL_Host localhost

Auth_MySQL_User webdav_admin

Auth_MySQL_Password webdav_admin_password

AuthMySQL_DB webdav

AuthMySQL_Password_Table mysql_auth

Auth_MySQL_Username_Field username

Auth_MySQL_Password_Field passwd

Auth_MySQL_Empty_Passwords Off

Auth_MySQL_Encryption_Types PHP_MD5

Auth_MySQL_Authoritative On

require valid-user

</Location>

[ ]

Các chỉ thị Alias (đi kèm với <Location>) khi bạn tiến hành gọi /webdav, WebDAV có được

gọi, nhưng bạn vẫn có thể truy cập đến toàn bộ tài liệu root của vhost Và tất cả các đường dẫn vhost khác vẫn chỉ là HTTP bình thường

Cú pháp AuthBasicAuthoritative Off và AuthUserFile /dev/null tồn tại để ngăn chặn khi bạn nhận được những lỗi tương tự như thế này trong file log ghi lại lỗi của Apache

(/var/log/apache2/error.log):

[Wed Jun 11 17:02:45 2008] [error] Internal error: pcfg_openfile() called with NULL filename

[Wed Jun 11 17:02:45 2008] [error] [client 127.0.0.1] (9)Bad file descriptor: Could not open password file: (null)

Nếu bạn có những trường khác trong bảng MySQL, chỉ định người dùng nào đó có được phép truy cập hay không (trường dữ liệu gọi là active), bạn có thể thêm lệnh chỉ định

Auth_MySQL_Password_Clause:

Trang 5

Auth_MySQL_Password_Clause " AND active=1"

[ ]

Điều quan trọng là các chuỗi giá trị trong dấu ngoặc kép đều phải bắt đầu bằng khoảng trống

Ngày đăng: 25/01/2014, 23:20

TỪ KHÓA LIÊN QUAN

w