Apache
开一台主机安装即可:
源码安装apache
需要源码编译安装的软件包
httpd-2.4.28.tar.gz #Apache主程序包
apr-1.5.2.tar.gz #Apache依赖包
apr-util-1.5.4.tar.gz #Apache依赖包
pcre-8.41.tar.gz #Apache依赖包
准备安装包:
、
安装make、gcc、openssl等编译工具和开发包
[root@localhost ~]# yum -y install make gcc gcc-c++ openssl openssl-devel expat-devel
编译安装依赖包
编译安装依赖包apr-1.5.2.tar.gz
[root@localhost ~]# cd lamp
[root@localhost 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@localhost lamp]# tar zxvf apr-1.5.2.tar.gz
[root@localhost lamp]# cd apr-1.5.2
预编译指定安装路径
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
解决报错:
[root@localhost apr-1.5.2]# vim configure
修改
29605 RM=‘KaTeX parse error: Unexpected character: '' at position 5: RM' ̲ 为: 29605 …RM -f’
预编译报错,解决错误,重新执行预编译
[root@localhost apr-1.5.2]# echo $? #检测上条命令是否执行成功
0
开始编译
[root@localhost apr-1.5.2]# make && make install
[root@localhost apr-1.5.2]# echo $?
0
编译安装依赖包apr-util-1.5.4.tar.gz
[root@localhost lamp]# tar -zxvf apr-util-1.5.4.tar.gz
[root@localhost lamp]# cd apr-util-1.5.4
预编译
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/bin/apr-1-config
[root@localhost apr-util-1.5.4]# echo $?
0
编译安装
[root@localhost apr-util-1.5.4]#make && make install
[root@localhost apr-util-1.5.4]# echo $?
0
3.编译安装依赖包pcre-8.41.tar.gz
[root@localhost lamp]# tar -zxvf pcre-8.41.tar.gz
[root@localhost lamp]# cd pcre-8.41
预编译
[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.41]# echo $?
编译并安装:
[root@localhost pcre-8.41]# make && make install
[root@localhost pcre-8.41]# echo $?
0
4编译安装Apache
[root@localhost lamp]# tar -zxcf httpd-2.4.28.tar.gz
[root@localhost lamp]# cd httpd-2.4.28
预编译
[root@localhost 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/
--libdir=/usr/lib64
注:
--enable-so #支持动态加载模块
--enable-rewrite #支持网站地址重写
--enable-ssl #支持ssl加密
--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@localhost httpd-2.4.28]# echo $?
0
编译安装
[root@localhost httpd-2.4.28]# make && make install
[root@localhost httpd-2.4.28]# echo $?
0
配置文件
[root@localhost httpd-2.4.28]# ls /usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/httpd.conf
[root@localhost ~]# 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文件
网站根目录
[root@localhost httpd-2.4.28]# ls /usr/local/apache/htdocs/
index.html
[root@localhost ~]# cat /usr/local/apache/htdocs/index.html
It works!
生成启动脚本
[root@localhost ~]# cp /usr/local/apache/bin/apachectl /etc/init.d/
[root@localhost ~]# chmod +x /etc/init.d/apachectl
[root@localhost ~]# ll /etc/init.d/apachectl
-rwxr-xr-x. 1 root root 3434 4月 23 03:17 /etc/init.d/apachectl
写个apache系统服务脚本, 以754的权限保存此文件
[root@localhost ~]# vim /usr/lib/systemd/system/apache.service
[Unit]
Description=apache
After=network.target
[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@localhost ~]# chmod 754 /usr/lib/systemd/system/apache.service
添加开机自启动
[root@localhost ~]# systemctl enable apache
Created symlink from /etc/systemd/system/multi-user.target.wants/apache.service to /usr/lib/systemd/system/apache.service.
启动服务
[root@localhost ~]# /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@localhost ~]# vim /usr/local/apache/conf/httpd.conf
修改192行
192 #ServerName www.example.com:80
为:
192 ServerName localhost:80
重新启动:
[root@localhost ~]# /etc/init.d/apachectl restart
或者:
[root@localhost ~]# systemctl restart apache
查看端口
[root@localhost ~]# netstat -antup | grep 80
tcp6 0 0 :::80 ::😗 LISTEN 100326/httpd
客户端测试
配置apache虚拟主机
apache虚拟主机实现有三种方法:
1、通过不同的IP地址
2、通过不同的域名
3、通过不同的端口号
三种都需要把虚拟主机功能打开:
开启虚拟主机功能:
[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf
#配置文件最下面 启用这一行
475 #Include conf/extra/httpd-vhosts.conf
去掉#号
475 Include conf/extra/httpd-vhosts.conf
重启服务
[root@localhost ~]# systemctl restart apache
通过不同的IP地址,解析不同的域名
给服务器增加IP(另一个域名解析)
[root@localhost ~]# ifconfig ens33:1 192.168.100.66
[root@localhost ~]# ifconfig
创建站点目录
[root@localhost ~]# mkdir /www/html/{web1,web2} -p
创建站点网页
[root@localhost ~]# echo “www.baidu.com” > /www/html/web1/index.html
[root@localhost ~]# echo “www.bdqn.com” > /www/html/web2/index.html
定义虚拟主机文件:
[root@localhost ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.100.101:80>
ServerAdmin root@baidu.com
DocumentRoot “/www/html/web1/”
ServerName www.baidu.com
ServerAlias www.dummy-host.example.com
ErrorLog “logs/dummy-host.example.com-error_log”
CustomLog “logs/dummy-host.example.com-access_log” common
<VirtualHost 192.168.100.66:80>
ServerAdmin root@bdqn.com
DocumentRoot “/www/html/web2/”
ServerName www.bdqn.com
ErrorLog “logs/dummy-host2.example.com-error_log”
CustomLog “logs/dummy-host2.example.com-access_log” common
重启服务
[root@localhost ~]# systemctl restart apache
测试
通过不同的域名配置虚拟主机
定义虚拟主机文件
[root@localhost ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
[root@localhost ~]# vim /etc/hosts
192.168.100.101 www…baidu.com
192.168.100.66 www.bdqn.com
重启服务
[root@localhost ~]# systemctl restart apache
修改电脑hosts文件C:\Windows\System32\drivers\etc\hosts作解析
测试:
通过不同的端口配置虚拟主机
增加监听端口
[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf
在52行添加监听端口
51 Listen 80
52 Listen 8080
定义虚拟主机文件:
[root@localhost ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin root@baidu.com
DocumentRoot “/www/html/web1/”
ServerName www.baidu.com
ServerAlias www.dummy-host.example.com
ErrorLog “logs/dummy-host.example.com-error_log”
CustomLog “logs/dummy-host.example.com-access_log” common
<VirtualHost *:8080>
ServerAdmin root@bdqn.com
DocumentRoot “/www/html/web2/”
ServerName www.bdqn.com
ErrorLog “logs/dummy-host2.example.com-error_log”
CustomLog “logs/dummy-host2.example.com-access_log” common
重启服务
[root@localhost ~]# systemctl restart apache
验证