Lưu ý sơ bộ
Tại hệ thống thử nghiệm này, chúng tôi sử dụng OpenSUSE 11.3 server và địa chỉ IP 192.168.0.100
Cài đặt WebDAV
Nếu hệ thống của bạn chưa được cài đặt Apache, hãy sử dụng lệnh sau:
yast2 -i apache2
Sau đó, kích hoạt các module của WebDAV:
a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
Và tạo đường dẫn khởi động cho Apache, đồng thời khởi động luôn dịch vụ này:
chkconfig --add apache2
/etc/init.d/apache2 start
Tạo host ảo
Sau đây, chúng ta sẽ tạo 1 vhost Apache www.example1.com tại thư mục /srv/www/web1/web. Nếu hệ thống của bạn đã có vhost thì chỉ cần chỉnh lại các thông số cho phù hợp với bài thử nghiệm này.
Trước tiên, tạo thư mục /srv/www/web1/web, tạo tài khoản sử dụng Apache (wwwrun) và nhóm (www) để quản lý thư mục đó:
mkdir -p /srv/www/web1/web
chown wwwrun:www /srv/www/web1/web
Thiết lập vhost Apache cho www.example1.com:
vi /etc/apache2/vhosts.d/www.example1.com.conf
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName www.example1.com
ServerAlias example1.com
DocumentRoot /srv/www/web1/web/
<Directory /srv/www/web1/web/>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Mở file cấu hình /etc/apache2/httpd.conf và thêm dòng NameVirtualHost * vào trước Include /etc/apache2/vhosts.d/*.conf:
vi /etc/apache2/httpd.conf
[...]
### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
NameVirtualHost *
Include /etc/apache2/vhosts.d/*.conf
[...]
Khởi động lại Apache:
/etc/init.d/apache2 restart
Thiết lập host ảo đối với WebDAV
Tạo file mật khẩu WebDAV /srv/www/web1/passwd.dav dành cho tài khoản test (tham số -c sẽ chuyển sang bước tạo file nếu file đó chưa có sẵn):
htpasswd2 -c /srv/www/web1/passwd.dav test
Hệ thống sẽ yêu cầu bạn khai báo mật khẩu cho tài khoản test (lưu ý rằng không nên sử dụng -c nếu file /srv/www/web1/passwd.dav đã tồn tại, vì bạn sẽ mất hết dữ liệu thiết lập cho tài khoản trước đó). Thay đổi quyền truy cập tới file /srv/www/web1/passwd.dav thành chỉ có tài khoản root và thành viên của nhóm www mới được phép truy cập và thao tác:
chown root:www /srv/www/web1/passwd.dav
chmod 640 /srv/www/web1/passwd.dav
Chỉnh lại vhost www.example1.com trong file /etc/apache2/vhosts.d/www.example1.com.conf và thêm dòng lệnh sau vào:
vi /etc/apache2/vhosts.d/www.example1.com.conf
[...]
Alias /webdav /srv/www/web1/web
<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /srv/www/web1/passwd.dav
Require valid-user
</Location>
[...]
Khi người sử dụng tiến hành gọi /webdav thì Alias (cùng với <Location>) sẽ trực tiếp thực hiện điều đó, nhưng bạn vẫn có thể truy cập toàn bộ thư mục gốc của vhost, toàn bộ các đường dẫn URL khác vẫn thuộc dạng “normal”. Vhost sau khi chỉnh sửa sẽ trông giống như sau:
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName www.example1.com
ServerAlias example1.com
DocumentRoot /srv/www/web1/web/
<Directory /srv/www/web1/web/>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /webdav /srv/www/web1/web
<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /srv/www/web1/passwd.dav
Require valid-user
</Location>
</VirtualHost>
Chúng ta cần chỉ định chính xác vị trí của WebDAV để hạn chế việc truy cập tùy tiện vào cơ sở dữ liệu. Tại đây chúng ta sẽ áp dụng vào thư mục /var/lib/dav/, do đó tạo thư mục đó bằng lệnh sau:
mkdir /var/lib/dav/
chown wwwrun:www /var/lib/dav/
Mở file cấu hình /etc/apache2/httpd.conf và thêm DAVLockDB vào trước dòng NameVirtualHost *:
vi /etc/apache2/httpd.conf
[...]
### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
NameVirtualHost *
Include /etc/apache2/vhosts.d/*.conf
[...]
Sau đó khởi động lại Apache:
/etc/init.d/apache2 restart
Kiểm tra WebDAV
Để thực hiện bước này, chúng ta cần cài đặt cadaver – ứng dụng WebDAV client với giao diện dòng lệnh:
yast2 -i cadaver
Và kiểm tra lại WebDAV với lệnh sau:
cadaver http://www.example1.com/webdav/
Hệ thống sẽ yêu cầu người sử dụng khai báo tài khoản đăng nhập, ở đây chúng ta điền tên là test và mật khẩu tạo ra ở bước trên. Khi tài khoản đó được gán quyền truy cập nghĩa là quá trình thiết lập của chúng ta đã thành công. Gõ lệnh quit để thoát khỏi WebDAV:
server1:~ # cadaver http://www.example1.com/webdav/
Authentication required for webdav on server `www.example1.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example1.com' closed.
Server1:~ #
Trên đây là 1 số thao tác cơ bản để cài đặt và thiết lập WebDAV với Apache2 trên OpenSUSE 11.3. Chúc các bạn thành công!
Không có nhận xét nào:
Đăng nhận xét