安装httpd
1:安装
[root@localhost ~]# yum -y install gcc* apr-devel apr-util-devel pcre-devel //安装开发包
[root@localhost ~]# tar zxvf httpd-2.4.25.tar.gz //解压缩
[root@localhost ~]# cd httpd-2.4.25
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi //配置
注释:
--prefix:制定程序的安装目录
--enable-so:启用动态加载模块DSO的支持,使httpd具备进一步扩展功能的能力
--enable-rewrite:启用网页地址重写功能,用于网站优化
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页
--enable-cgi:启用cgi脚本程序支持,扩展网站的应用访问能力
DSO是Dynamic SharedObjects(动态共享目标)的缩写,它是现代Unix派生出来的操作系统都存在着的一种动态连接机制。它提供了一种在运行时将特殊格式的代码,在程序运行需要时,将需要的部分从外存调入内存执行的方法。
[root@localhost httpd-2.4.25]# make //编译
[root@localhost httpd-2.4.25]# make install //编译安装
[root@localhost httpd-2.4.25]# ls /usr/local/httpd //查看安装后的文件
[root@localhost httpd-2.4.25]# /usr/local/httpd/bin/apachectl start //启动httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看监听的端口
[root@localhost httpd-2.4.25]# /usr/local/httpd/bin/apachectl stop //停止httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看监听的端口
2:优化执行路径
[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ //做软连接,方便快速启动
[root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl //查看软连接
[root@localhost httpd-2.4.25]# httpd -v //查看httpd的版本
[root@localhost httpd-2.4.25]# apachectl start //启动httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看监听的端口
[root@localhost httpd-2.4.25]# apachectl stop //停止httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看监听的端口
3:添加httpd系统服务
(1)使用chkconfig添加为系统服务
[root@localhost httpd-2.4.25]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //复制配置文件
[root@localhost httpd-2.4.25]# vi /etc/init.d/httpd //编辑配置文件
添加:
#!/bin/sh \\原来就有
#chkconfig:35 85 21 \\没有这一行,chkconfig --add httpd无法执行
#description:httpd server
[root@localhost httpd-2.4.25]# chkconfig --add httpd //加入系统服务,开机启动
[root@localhost httpd-2.4.25]# chkconfig --list httpd //查看启动
[root@localhost httpd-2.4.25]# service httpd start //启动httpd
(2)建立.service配置文件
[root@localhost ~]# vi /lib/systemd/system/httpd.service //编辑文档
[Unit] //单元
Description=the apache http server //描述信息
After=network.target //启动顺序
[Service] //服务
Type=forking //类型
PIDFile=/usr/local/httpd/logs/httpd.pid //进程文件
ExecStart=/usr/local/bin/apachectl $OPTIONS //启动命令
ExecReload=/bin/kill -HUP $MAINPID //重新加载命令
KillMode=process //杀死进程的模式:杀死主进程
Restart=on-failure //异常退出时重启
RestartSec=42s //重启等待时间
[Install] //安装
WantedBy=graphical.target //图形模式
[root@localhost ~]# systemctl start httpd.service //启动httpd
[root@localhost ~]# systemctl enable httpd.service //开机自启动
三:httpd服务器的基本配置
1:确定网站的名称、ip地址和域名
2:配置并启动httpd
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
修改(前面的数字是行号):
ServerName www.bdqn.com ##200行 //网站域名,做域名解析
[root@localhost ~]# apachectl -t //检测配置文件语法
2:启动httpd服务
[root@localhost ~]# systemctl start httpd //启动httpd
[root@localhost ~]# netstat -anpt | grep httpd //查看端口
3:部署网页
[root@localhost ~]# vi /usr/local/httpd/htdocs/index.html //编辑主页
<html><body><h1>It works!</h1></body></html>
[root@localhost ~]# service httpd restart //重启httpd服务
4:测试
打开网站
http://192.168.10.101
5:查看站点访问情况
[root@localhost ~]# tail /usr/local/httpd/logs/access_log //查看访问日志
[root@localhost ~]# tail /usr/local/httpd/logs/error_log //查看错误日志
四:httpd.conf配置文件
1:全局配置项
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
ServerRoot "/usr/local/httpd"
Listen 80
User daemon
Group daemon
ServerAdmin you@example.com
ServerName www.bdqn.com
DocumentRoot "/usr/local/httpd/htdocs"
DirectoryIndex index.html
ErrorLog "logs/error_log"
LogLevel warn
CustomLog "logs/access_log" common
Include conf/extra/proxy-html.conf
2:区域配置项
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
五:虚拟目录的设置(www.dbqn.com/xuni)
alias /xuni "/var/xuni"
<Directory "/var/xuni">
Options None
AllowOverride None
Require all granted
</Directory>
五:符号链接
web网站经过一段时间的运行,网站的内容会越来越多,这时文档根目录的空间会不足;另外希望在文件移动位置之后使得用户仍然能够访问该文件。这两种情况可以通过在文档目录下使用符号链接使文档目录之外的内容被访问。
(1)编辑配置文件
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymlinks
AllowOverride none
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
(2)创建符号链接
[root@localhost ~]# ln -s /usr/share/man /var/www/html/man
(3)客户端访问
六:网页重定向
在apache服务器中,通过使用网页重定向可以使得用户在访问URL地址时,apache服务器将自动重定向到另外一个URL网址。
(1)编辑配置文件
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
<IfModule alias_module>
Redirect 302 /foo http://www.benet.com/xuni
。。。。。。略。。。。。。
</IfModule>
注释:
302为错误代码,当遇到指定的错误是重定向
301:被请求的url已经永久的移动到新的url
302:被请求的url临时移动到新的url
303:被访问的页面已经被替换
410:被访问的页面已经不存在,使用此代码时不应该使用重定向url参数
(2)重启服务
[root@localhost ~]# systemctl restart httpd
(3)客户端访问
当访问http://www.benet.com/foo时,会被重定向到http://www.benet.com/xuni