软件包: httpd、httpd-manual、httpd-devel
配置文件目录: /etc/httpd/conf.d
主配置文件 /etc/httpd/conf/httpd.conf
----------------
apache服务根路径
ServerRoot "/etc/httpd"
------------------
PidFile run/httpd.pid
------------------
<IfModule prefork.c>
StartServers 8 启动后默认进程数
MinSpareServers 5 每次增加子进程数
MaxSpareServers 20 最大增加子进程数,实际总进程数要加下启动的默认进程数 这里应该是28
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000 每个进程允许连接的用户数量
</IfModule>
适用于单处理器多核情况
----------------------
<IfModule worker.c>
……
---------------------------
Listen 80
httpd默认端口
example:
Listen 192.168.73.170:80
表示为apache指定IP地址和端口,而不是用系统默认的ip和80端口来访问web服务
[root@j071 conf]# ip addr add 192.168.73.170/24 dev eth0:170添加192.168.73.170到eth0这个网卡
--------------------------
模块
LoadModule auth_basic_module modules/mod_auth_basic.so
------------------------------
Options Indexes FollowSymLinks
Indexes 如果目录中没有index.则列出所有文件,FollowSymLinks 如果目录中有链接,允许直接转到链接指向的目录(比较危险,要禁用)
---------------------------
权限设置
AllowOverride None #是否允许额外的配置文件 ( AccessFileName .htaccess )
ALL:全部的权限均可被覆写;
AuthConfig:仅有网页认证 (账号密码) 可覆写;
Indexes:仅允许 Indexes 方面的覆写;
Limits:允许使用者利用 Allow, Deny 与 Order 管理可浏览的权限;
None:不可覆写,亦即让 .htaccess 档案失效!
Order allow,deny #次序 先允许,后拒绝,如果没有明确指定允许范围,则全部拒绝
#Order deny,allow #次序 先拒绝,后允许,如果没有明确指定禁止范围,则全部允许
这两个访问权限主要看后面那个选项是什么
Allow from all 允许任何访问
example:
<Directory "/var/www/html"> #Options Indexes FollowSymLinks Options Indexes AllowOverride None Order allow,deny #Allow from all Allow from 192.168.73.0/255.255.255.0 Allow from 192.168.0.0/255.255.255.0 </Directory>
----------------------------------
Alias 用别名的方式访问documentroot以外的目录
Alias /ftp/ "/var/ftp/" <Directory "/var/ftp"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>在客户端访问 http://192.168.73.173/ftp/pub/
-------------------
UserDir
<IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # #UserDir disabled 注释此行 开启 用户家目录web访问 # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disabled" line above, and uncomment # the following line instead: # UserDir myhtml 在用户家目录新建名为myhtml的文件夹,即客户端看到的web页面就是些目录下的 </IfModule>
设置目录权限 <Directory /home/*/myhtml> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
-------------------------------------
DirectoryIndex index.html index.html.var 默认主页文件名设置
AccessFileName .htaccess 额外的配置文件名称
------------------------
虚拟主机
---------------------
配置文件 .htaccess
example: 建立受密码保护的目录 ,只有授权的用户才能访问
1、 在网站根目录下建立 centosaa 的目录 ,并建立 .htaccess 文件 ,文件内容如下
AuthType Basic AuthName "Password Required" AuthUserFile /etc/httpd/password.file Require User xianglou #AuthGroupFile /www/passwords/group.file #Require Group
AuthName:在要你输入账号与密码的对话窗口中,出现的 提示字符
AuthUserFile 受 保护目录使用的账号密码配置文件,账号和密码可以自己设置,不一定要是/etc/passwd里面的帐户,这个文件可以自由设置,但不要放在apache浏览得到的目录内
require:后面接可以使用的账号,如果要让该密码文件内的用户都能够登入,就改成 require valid-user 即可啊!
设置好后立即生效,不需要重新启动
2、建立密码文件 htpasswd 命令
apache 会从指定的地方读取账号信息
htpasswd -cm /etc/httpd/password.file username
选项与参数:
-c :建立后面的密码文件。如果该档案已经存在,则原本的数据会被删除! 第二次添加账户时,不要再使用 -c 选项新建文件,会把前面的账户全部删除!
所以如果只是要新增使用者(档案已存在时),不必加上 -c 的参数!
-m :不使用预设的 CRYPT 加密,改用 MD5 方式加密密码!
-d :使用更复杂的 SHA 方式来加密!
-D :删除掉后面接的那个使用者账号
这个文件一定要与 .htaccess 内的 AuthUserFile 相同,且不要放在浏览器可以浏览到的目录
test
test
test
vvtestv