概述:
常风web服务器(web):
httpd(apache)、nginx
tomcat
win: IIS
客户端:IE、firefox、chrome
官网:http://www.apache.org
工作模式: B/S 模式
端口:
[root@cong11 ~]# vim /etc/services
80: http #不加密的端口
443:https #加密的端口
rpm/yum和源码安装的区别
rpm:安装、部署、管理比较方便,运行稳定;版本较低,功能和性能较差
依赖包如果用yum安装,后期很多东西不支持,像高级应用
源码:安装、部署、管理比较麻烦,运行相对不稳定;版本较新,功能和性能较高
需要的源码编译安装的软件包
httpd-2.4.28.tar.gz #Apache主程序包
apr-1.5.2.tar.gz #Apacche依赖包 #尽量和源码包配套,不用yum安装
apr-util-1.5.4.tar.gz #Apache依赖包 #不然不配套,实现不了apache的高级应用
pcre-8.41.tar.gz #Apache依赖包,apache是依赖这三个包进行开发的
php-5.6.36.tar.gz #如果搭建动态网站,就要安装php,php要和apache安装融合在一起,才能调用动态页面
mysql-boost-5.7.19.tar.gz #这个是用来php连接mysql的,如果不装这个,php和mysql只能装在同一台机器。装了这个软件包,就可以分开装,就是将php连接到mysql的
源码包下载地址:
http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.28.tar.gz
http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
http://archive.apache.org/dist/apr/apr-util-1.5.0.tar.gz
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
安装apache
上传软件包并解压
[root@cong11 ~]# unzip lamp.zip
安装make、gcc、spenssl等编译工具和开发包
root@cong11 ~]# yum -y install make gcc gcc-c++ openssl openssl-devel expat-devel
编译安装依赖包
[root@cong11 ~]# cd lamp
[root@cong11 lamp]# ls
apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz httpd-2.4.28.tar.gz mysql-boost-5.7.19.tar.gz pcre-8.41.tar.gz php-5.6.36.tar.gz
解压apr-1.5.2.tar.gz,预编译并安装
[root@cong11 lamp]# tar zxvf apr-1.5.2.tar.gz
[root@cong11 lamp]# cd apr-1.5.2
[root@cong11 apr-1.5.2]# ./configure --prefix=/usr/local/apr
预编译报错,解决错误,重新执行预编译
解决报错:
[root@cong11 apr-1.5.2]# vim configure
修改
29605 RM=’$RM’
为:
29605 RM=’$RM -f’
[root@cong11 apr-1.5.2]#./configure --prefix=/usr/local/apr
[root@cong11 apr-1.5.2]# echo $? #检测上条命令是否执行成功
编译安装
make && make install
解压apr-util-1.5.4.tar.gz预编译并安装
[root@cong11 lamp]# tar -zxvf apr-util-1.5.4.tar.gz
[root@cong11 lamp]# cd apr-util-1.5.4
预编译
[root@cong11 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/ \
–with-apr=/usr/local/apr/bin/apr-1-config
[root@cong11 apr-util-1.5.4]# echo $?
编译安装
make && make install
[root@cong11 apr-util-1.5.4]# echo $?
解压pcre-8.41.tar.gz预编译并安装
[root@cong11 lamp]# tar -zxvf pcre-8.41.tar.gz
[root@cong11 lamp]# cd pcre-8.41
预编译
[root@cong11 pcre-8.41]# ./configure --prefix=/usr/local/pcre
[root@cong11 pcre-8.41]# echo $?
编译
[root@cong11 pcre-8.41]# make -j 4
[root@cong11 pcre-8.41]# echo $?
安装
[root@cong11 pcre-8.41]# make install
[root@cong11 pcre-8.41]# echo $?
解压apache预编译并安装
[root@cong11 lamp]# tar -zxcf httpd-2.4.28.tar.gz
[root@cong11 lamp]# cd httpd-2.4.28
预编译
1、正常安装(worker模式):[root@cong11 httpd-2.4.28]# ./configure --prefix=/usr/local/apache
–enable-so \
–enable-rewrite \
–enable-ssl \
–with-apr=/usr/local/apr \
–with-apr-util=/usr/local/apr-util/ \
–with-pcre=/usr/local/pcre/
2、安装event模式[root@cong11 ~]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ --enable-charset-lite --enable-cgi --enable-mpms-shared=all --enable-mpm-with=event
注:
–enable-so #支持动态加载模块,安装完成后,还能再扩展,还能再添加功能
–enable-rewrite #支持网站地址重写,就是支持页面跳转,例baidu维修, 然后给你跳转到另一个页面
–enable-ssl #支持ssl加密,就是开启https加密功能,用时能直接用
–with-apr=/usr/local/apr #关联apr
–with-apr-util=/usr/local/apr-util #关联apr-util
–with-pcre=/usr/local/pcre #关联pcre
–libdir=/usr/lib64 #关联库文件
[root@cong11 httpd-2.4.28]# echo $?
编译
[root@cong11 httpd-2.4.28]# make && make install
[root@cong11 httpd-2.4.28]# echo $?
Apache目录的作用
[root@cong11 httpd-2.4.28]# ls /usr/local/apache/
bin 命令 cgi-bin 开发连接文件
error 错误信息
logs 日志文件
bulid 构建信息
conf 主配置文件目录
htdocs 下的index.html里面放的是网站首页的文件,html代码
include 第二个主配置文件,引用文件
man 帮助文档 modules 模块
配置文件
[root@cong11 httpd-2.4.28]# ls /usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/httpd.conf
[root@cong11 ~]# vim /usr/local/apache/conf/httpd.conf
Listen (不写地址的话就是侦听所有地址的) 80 #监听端口
ServerRoot "/usr/local/apache" #配置文件根目录,下面都引用相对路径
ServerAdmin you@example.com #管理员邮箱
ServerName localhost:80 #服务器主机名,域名写到这里
DocumentRoot "/usr/local/apache/htdocs" #网站根木录,下面默认允许所有人访问我的网页跟目录
DirectoryIndex index.html #默认首页打开html文件
LogLevel warn(表示警告/疼痛级别)#错误日志,到什么级别之后放到日志当中
生成启动脚本
[root@cong11 ~]# cp /usr/local/apache/bin/apachectl /etc/init.d/
[root@cong11 ~]# chmod +x /etc/init.d/apachectl
创建软连接
[root@cong11 ~]# ln -s /usr/local/apache/bin/* /usr/local/bin/
apache服务启动脚本,文件的权限为754,并添加开机自启
[root@cong11 ~]# vim /usr/lib/systemd/system/apache.service
[Unit]
Description=apache #名字
After=network.target #在network服务启动完成之后才能启动
[Service]
Type=forking
ExecStart=/etc/init.d/apachectl start
ExecReload=/etc/init.d/apachectl restart
ExecStop=/etc/init.d/apachectl stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@cong11 ~]# chmod 754 /usr/lib/systemd/system/apache.service
#属主7读写执行,属组5读.执行,4其他用户只读
[root@cong11 ~]# systemctl enable apache
启动服务
[root@cong11 ~]# /etc/init.d/apachectl restart
报错:
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using fe80::48aa:e778:8276:5257. Set the ‘ServerName’ directive globally to suppress this message
[root@cong11 ~]# vim /usr/local/apache/conf/httpd.conf
修改192行
192 #ServerName www.example.com:80
为:
192 ServerName localhost:80
重新启动:[root@cong11 ~]# /etc/init.d/apachectl restart
查看端口,客户端测试
[root@cong11 ~]# netstat -antup | grep 80
http://192.168.100.1/
配置apache虚拟主机
没弄虚拟主机访问页面就是is work,弄了虚拟主机访问的页面就是 bbs.bdqn.com/ bdqn.bdqn.com,就是优先访问虚拟主机的配置文件
虚拟主机的三种实现方式:
1、不同ip·,相同端口
2、相同ip,不同端口
3、相同ip,相同端口,不同的域名 #最好
三种都需要把虚拟主机功能打开:
开启虚拟主机功能:
[root@cong11 ~]# vim /usr/local/apache/conf/httpd.conf
#配置文件最下面 启用这一行
475 #Include conf/extra/httpd-vhosts.conf
去掉#号 #因为主配置文件引用了这个文件
475 Include conf/extra/httpd-vhosts.conf
重启服务
[root@cong11 ~]# systemctl restart apache
不同ip,相同端口
新增一个ip
[root@cong11 ~]# ifconfig ens33:1 192.168.1.20
[root@cong11 ~]# ifconfig
创建站点目录
[root@cong11 ~]# mkdir /usr/local/apache/htdocs/bbs
创建站点网页
[root@cong11 ~]# echo “bbs.bdqn.com” > /usr/local/apache/htdocs/bbs/index.html
[root@cong11 ~]# echo “www.bdqn.com” > /usr/local/apache/htdocs/index.html
定义虚拟主机文件
[root@cong11 ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
如果更改虚拟主机网页根目录就要给这个目录权限(在开头添加)
<VirtualHost 192.168.1.11:80>
ServerAdmin root@qiniao.com
DocumentRoot "/usr/local/apache/htdocs/"
ServerName www.bdqn.com
ErrorLog "logs/www.bdqn.com-error_log"
CustomLog "logs/www.bdqn.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.20:80>
ServerAdmin root@qiniao.com
DocumentRoot "/usr/local/apache/htdocs/bbs"
ServerName bbs.baqn.com
ErrorLog "logs/bbs.bdqn.com-error_log"
CustomLog "logs/bbs.bdqn.com-access_log" common
</VirtualHost>
重启服务
[root@cong11 ~]# systemctl restart apache
测试
http://192.168.100.1/
http://192.168.100.2/
相同ip,相同端口,不同的域名
定义虚拟主机文件
[root@cong11 ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost www.bdqn.com:80>
ServerAdmin root@qiniao.com
DocumentRoot "/usr/local/apache/htdocs/"
ServerName www.bdqn.com
ErrorLog "logs/www.bdqn.com-error_log"
CustomLog "logs/www.bdqn.com-access_log" common
</VirtualHost>
<VirtualHost bbs.bdqn.com:80>
ServerAdmin root@qiniao.com
DocumentRoot "/usr/local/apache/htdocs/bbs"
ServerName bbs.baqn.com
ErrorLog "logs/bbs.baqn.com-error_log"
CustomLog "logs/bbs.baqn.com-access_log" common
</VirtualHost>
[root@cong11 ~]# vim /etc/hosts
192.168.100.1 www.bdqn.com
192.168.100.10 bbs.bdqn.com
重启服务
[root@cong11 ~]# /etc/init.d/apache restart
修改电脑host文件
如果在C:\Windows\System32\drivers\etc\目录下无法修改hosts,可以把hosts 拉到桌面,用记事本打开,修改完,放回去,不要另存为
测试
http://www.bdqn.com/
http://bbs.bdqn.com/
相同ip,不同端口
增加监听端口
[root@cong11 ~]# vim /usr/local/apache/conf/httpd.conf
在52行添加监听端口
51 Listen 80
52 Listen 8080
定义虚拟主机文件
[root@cong11 ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin root@qiniao.com
DocumentRoot "/usr/local/apache/htdocs/"
ServerName www.bdqn.com
ErrorLog "logs/www.bdqn.com-error_log"
CustomLog "logs/www.bdqn.com-access_log" common
</VirtualHost>
<VirtualHost *:8080>
ServerAdmin root@qiniao.com
DocumentRoot "/usr/local/apache/htdocs/bbs"
ServerName bbs.baqn.com
ErrorLog "logs/bbs.baqn.com-error_log"
CustomLog "logs/bbs.baqn.com-access_log" common
</VirtualHost>
重启服务
[root@cong11 ~]# /etc/init.d/apache restart
测试
http://192.168.100.1/
http://192.168.100.1:8080/