cai dat WebDAV cung MySQL tren Apache2

Chia sẻ: TRẨN THỊ THANH HẰNG | Ngày: | Loại File: DOC | Số trang:5

0
52
lượt xem
12
download

cai dat WebDAV cung MySQL tren Apache2

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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 ...

Chủ đề:
Lưu

Nội dung Text: cai dat WebDAV cung MySQL tren Apache2

  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:
  2. 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 * ServerAdmin webmaster@localhost DocumentRoot /var/www/web1/web/ Options Indexes MultiViews AllowOverride None Order allow,deny allow from all 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:
  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;
  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 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 [...] Các chỉ thị Alias (đi kèm với ) 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:
  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 bộ tài khoản