apache编译安装
tar jxvf httpd-2.4.29.tar.bz2 -C /opt
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl apr-util-devel apr-util-devel apr-devle
cd /opt/httpd-2.4.29/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
make -j2
make install
systemctl start httpd
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
\# chkconfig: 35 85 21 #35级别自动运行 第85个启动 第21个关闭
chkconfig --add httpd
chkconfig --list httpd
systemctl stop firewalld
systemctl start httpd
apache访问控制
vi /usr/local/httpd/conf/httpd.conf
ServerName www.kgc.top:80 #修改server名,并将#去掉
<Directory "/usr/local/httpd/htdocs"> #指定目录区域
AuthName "welcome to dsb" #界面提示词
AuthType Basic #基本认证类型
AuthUserFile /usr/local/httpd/conf/.awspwd #用户数据文件
Require valid-user #设置授权用户登陆
</Directory>
cd /usr/local/httpd/
bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin #创建授权账户并设置密码,c是创建新文件.awspwd时用
systemctl restart httpd
可以用浏览器测试下httpd服务了,此时需要输入账户密码才能访问了
基于域名的虚拟主机
mkdir -p /var/www/html/web1
mkdir -p /var/www/html/web2
echo "<h1>web1</h1>" > /var/www/html/web1/index.html
echo "<h1>web2</h1>" > /var/www/html/web2/index.html
vim /etc/httpd.conf
Include conf/extra/httpd-vhosts.conf 前面的#去掉
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@web1.com
DocumentRoot "/var/www/html/web1" #指定apache服务器网页(文档)根目录
ServerName www.web1.com #服务器域名
ErrorLog "logs/www.web1.com.error_log"
CustomLog "logs/www.web1.com.access_log" common
<Directory "/var/www/html/web1"> #受限制区域目录
Require all granted #允许所有访问
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin admin@web2.com
DocumentRoot "/var/www/html/web2"
ServerName www.web2.com
ErrorLog "logs/www.web2.com.error_log"
CustomLog "logs/www.web2.com.access_log" common
<Directory "/var/www/html/web2">
Require all granted
</Directory>
</VirtualHost>
systemctl restart httpd
在客户机上做域名映射,将域名www.web1.com和www.web2.com映射到web服务器ip
在用浏览器访问www.web1.com 显示web1的页面
在用浏览器访问www.web2.com 显示web2的页面
基于端口的虚拟主机
修改
<VirtualHost 20.0.0.11:80>
ServerAdmin admin@web1.com
DocumentRoot "/var/www/html/web1"
ServerName www.web1.com
ErrorLog "logs/www.web.com.error_log"
CustomLog "logs/www.web1.com.access_log" common
<Directory "/var/www/html/web1">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 20.0.0.11:8080>
ServerAdmin admin@web2.com
DocumentRoot "/var/www/html/web2"
ServerName www.web2.com
ErrorLog "logs/www.web2.com.error_log"
CustomLog "logs/www.web2.com.access_log" common
<Directory "/var/www/html/web2">
Require all granted
</Directory>
</VirtualHost>
vim /usr/local/httpd/conf/httpd.conf
Listen 20.0.0.11:80
Listen 20.0.0.11:8080
systemctl restart httpd
在用浏览器访问20.0.0.11:80 显示web1的页面
在用浏览器访问20.0.0.11:8080 显示web2的页面