如何使用Apache2(Debian Etch)上的MySQL认证设置WebDAV
版本1.0
作者:Falko Timme
本指南介绍如何在Debian Etch服务器上的Apache2上使用MySQL身份验证(使用mod_auth_mysql)设置WebDAV。 WebDAV代表基于Web的分布式创作和版本控制 ,是HTTP协议的一组扩展,允许用户直接编辑Apache服务器上的文件,以便不需要通过FTP下载/上传文件。 当然,WebDAV也可以用来上传和下载文件。
我不会保证这将为您工作!
1初步说明
我正在使用Debian Etch服务器,其主机名为server1.example.com
,IP地址为192.168.0.100
。
2安装Apache2,WebDAV,MySQL,mod_auth_mysql
不幸的是, libapache2-mod-auth-mysql
可用作Debian软件包,仅适用于Debian Lenny(测试)和Sid(unstable),但不适用于Etch。 因此,我们将从Lenny安装libapache2-mod-auth-mysql
包。 为此,打开/etc/apt/sources.list
并添加行deb http://ftp2.de.debian.org/debian/ lenny main
; 您的/etc/apt/sources.list
可能看起来像这样:
vi /etc/apt/sources.list
deb http://ftp2.de.debian.org/debian/ etch main deb-src http://ftp2.de.debian.org/debian/ etch main deb http://ftp2.de.debian.org/debian/ lenny main deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib |
当然(为了不弄乱我们的系统),如果Etch没有适当的软件包,我们希望从Lenny安装软件包 - 如果有Etch和Lenny的软件包,我们要安装Etch软件包。 为了做到这一点,我们在Etch中给/ etc / apt / preferences中
优先级较高的软件包:
vi /etc/apt/preferences
Package: * Pin: release a=etch Pin-Priority: 700 Package: * Pin: release a=lenny Pin-Priority: 650 |
(术语etch
和lenny
参考/etc/apt/sources.list中的适当术语;如果您在那里使用稳定
和测试
,则必须在/ etc / apt / preferences
中使用稳定
和测试,
而不是使用etch
和lenny
好。)
之后,我们更新我们的包数据库:
apt-get update
如果您收到以下错误:
Segmentation faultsts... 96%
或这一个:
E: Dynamic MMap ran out of room
打开/etc/apt/apt.conf
并为APT :: Cache-Limit
添加一行非常高的值,例如:
vi /etc/apt/apt.conf
APT::Cache-Limit "100000000"; |
然后跑
apt-get update
再次升级安装的软件包:
apt-get upgrade
(如果您看到任何问题,您可以接受默认值。)
要安装Apache2,WebDAV,MySQL和mod_auth_mysql,我们运行:
apt-get install apache2 mysql-server mysql-client libapache2-mod-auth-mysql
为MySQL用户root创建密码(将yourrootsql
密码替换为您要使用的密码):
mysqladmin -u root password yourrootsqlpassword
然后检查
netstat -tap | grep mysql
MySQL正在监听哪个地址。 如果输出如下所示:
tcp 0 0 localhost.localdo:mysql *:* LISTEN 2713/mysqld
这意味着MySQL只监听localhost.localdomain
,那么你以前设置的密码是安全的。 但如果输出如下所示:
tcp 0 0 *:mysql *:* LISTEN 2713/mysqld
您也应该为您的主机名设置一个MySQL密码,因为否则任何人都可以访问您的数据库并修改数据:
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
然后启用WebDAV和mod_auth_mysql模块:
a2enmod dav_fs
a2enmod dav
a2enmod auth_mysql
重新加载Apache:
/etc/init.d/apache2 force-reload
3创建虚拟主机
现在我将在目录/ var / www / web1 / web中
创建一个默认的Apache vhost。 为此,我将修改/ etc / apache2 / sites-available / default中
的默认Apache vhost 配置
。 如果您已经拥有要启用WebDAV的虚拟主机,则必须根据您的情况调整本教程。
首先,我们创建目录/ var / www / web1 / web
,并使Apache用户( www-data
)成为该目录的所有者:
mkdir -p /var/www/web1/web
chown www-data /var/www/web1/web
然后我们备份默认的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> |
然后重新加载Apache:
/etc/init.d/apache2 reload