1.在Ubuntu下安装apache2
命令为sudo apt-get install apache2,
apache2是模块化的软件,依靠apache2.conf文件将各模块功能联系起来,
安装完成后可见etc/apache2下的apache2.conf配置文件(在apache2目录下并没有httpd.conf文件),可以打开该文件和sites-available下的000-default.conf文件修改设置网站的根目录。
apache2.conf中设置网站的主目录
000-default.conf中设置网站的主目录
由于我把www目录下的index.html移动到别处了,所以会出现以下的情况
当然如果把上述两个文件的目录改到我的index.html所在目录的话,又或者把index.html放回www目录就会出现以下这种情况了(更改后记得重启apache服务(命令:/etc/init.d/apache2 restart),然后在浏览器输入127.0.0.1测试一下)
2.启用userdir服务并设置个人主页
userdir指令制定了用户宿主目录下的一个实实在在的目录, 存放了该用户提供访问的文档。在ubuntu下apache2的userdir服务是没有启用的,至少我个人的情况是这样,之前讲到apache2的功能是模块化的,所以可在mod-enabled目录下查看是否有启用userdir功能
若在mods-enabled中没看到有userdir的文件,则用命令a2enmod userdir启用,在mods-enabled中建立链接到mods-available,我个人理解为mods-enable是放置能够使用的功能模块和配置文件的文件夹,mods-available是放置能够提供使用的功能模块和配置文件的文件夹。然后建立一个个人用户和密码,再在/home目录下建立某个个人目录如/home/peter,并在个人目录下建立public_html目录,如/home/peter/public_html
再在public_html目录下建立index.html文件,写入内容测试个人主页服务
重启apache2服务,在ubuntu下的火狐浏览器中输入127.0.0.1/~用户目录/,如127.0.0.1/~peter/进行测试,效果如下
在客户机下输入虚拟机ip地址访问个人主页
在ubuntu下,当修改了peter目录的权限为其他用户只有可读权限时会出现这种效果,所以其他用户对peter目录的权限至少是r-x。
3.设置虚拟主机
3.1设置基于域名的访问
打开etc/apache2/sites-available/000-default.conf配置文件,输入网站目录路径及域名,例如:
DocumentRoot指定相应域名的文档存放目录,ServerName指定对应的虚拟主机的域名,NameVirtualHost表示基于名字的虚拟主机,这里基于虚拟机地址。在相应的文档目录下创建index.html文件并写入内容(存放域名文档的目录不一定是var/www/html)
打开客户机下的hosts文件(c:\windows\system32\drivers\etc\hosts),添加虚拟机ip地址和域名并刷新DNS
在客户机下的浏览器输入域名测试。
3.2基于IP不同,端口相同的访问
在主机上配置多个ip地址,在同一个物理网卡上可以绑定多个IP,修改ip地址命令如下:
ifconfig 网卡名称 ip地址
若要绑定多个ip,则命令为:
ifconfig 网卡地址:n ip地址n
例如:
然后打开000-default.conf文件设置ip对应的目录(ip地址的设置必须要和虚拟机的ip地址在同一网段下)
重启apache服务,打开客户机输入ip地址进行测试
3.3基于ip相同,端口不同的访问
这里我们先设置虚拟机的ip为192.168.12.6
打开000-default.conf文件设置监听端口号和ip地址
重启apache服务,在客户机上输入ip地址:端口号进行测试
4.用户认证配置
访问虚拟机下某个目录时进行用户认证。打开apache2.conf,加入如下代码
AllowOverride要设置为All,这样.htaccess文件才生效,AccessFileName.htaccess语句指定配置存取控制权限的文件名称。(百度百科--allowoverride)
然后在var/www/html下新建一个目录为private,在该目录下创建.htaccess文件内容
第一次创建用户密码命令:htpasswd -c 密码文件名 用户名称
由于我们将用户文件放置在secure.user中,所以命令如下:
htpasswd -c /etc/secure.user auth1
(若要向密码文件中添加新的用户,命令如下:
htpasswd 密码文件 用户名)
回车后输入两次密码,然后重启apache服务,在客户机进行测试
5.apache开启/关闭功能模块命令
sudo a2enmod mod_name(开启模块)
sudo a3dismof mod_name (禁止模块)
记得要重启下服务器 /etc/init.d/apache2 restart 或者 service apache2 restart