apache安装、配置虚拟主机、配置日志
apache的安装与配置安装
01)下载httpd-2.2.27.tar.gz
02)解压:tar xf httpd-2.2.27.tar.gz
然后进入解压的文件查看INSTALL和RAEDME
03)直接make会出错,然后进行编译(也会有问题,这时候yum -y install zlib zlib-devel即可解决),然后进行编译:
./configure \
--prefix=/application/apache2.2.27 \ 安装路径
--enable-deflate \ 压缩(为了发送给客户端的时候更快一点,但是消耗CPU)
--enable-expires \ 过期
--enable-headers \ 提供对http请求头的控制
--enable-modules=most \ 激活大多数模块
--enable-so \
--with-mpm=worker \ 选择work模式(进程下的线程提供服务)还有profork模式(直接用进程提供服务,更安全稳定,但是消耗内存)
--enable-rewrite 伪静态 04)make&makeinstall
05)ln -s /application/apache2.2.27/ /application/apache
06)/application/apache/bin/apachectl -t
/application/apache/bin/apachectl start
lsof -i :80
Netstat -ntlup|grep 80
Ps -ef |grep httpd
07)curl 本机ip如果不能访问进行下面的检查与操作:
/etc/init.d/iptables stop
setenforce 0
然后看看端口起来没
08)查看配置文件
# cd /application/apache
# ls
binbuildcgi-binconferrorhtdocsiconsincludeliblogsmanmanualmodules
# cd conf/
# ls
extrahttpd.confmagicmime.typesoriginal
# grep -i documentroot httpd.conf
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/application/apache2.2.27/htdocs"
查看主配文件的存放数据的目录(index.html)
# This should be changed to whatever you set DocumentRoot to.
# access content that does not live under the DocumentRoot.
去掉注释查看主配文件
# grep -Ev "#|^$" httpd.conf > httpd.conf.ori
# cd extra/
# ls
httpd-autoindex.confhttpd-info.conf httpd-mpm.conf httpd-userdir.conf
httpd-dav.conf httpd-languages.confhttpd-multilang-errordoc.confhttpd-vhosts.conf
httpd-default.conf httpd-manual.conf httpd-ssl.conf深入解析主配文件
# cat httpd.conf.ori
ServerRoot "/application/apache2.2.27"软件安装路径,也是服务器的根目录
#监听的端口
Listen 80
User daemon
Group daemon
ServerAdmin you@example.com 管理员邮箱
DocumentRoot "/application/apache2.2.27/htdocs"默认站点目录
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
这个配置只对默认站点生效,如果有虚拟主机,需要复制这一段到主配文件最后,进行配置,对于option里面的indexes(没有首页展示的目录,一般去掉,不对外展示目录结构)
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
指定访问首页
DirectoryIndex index.html
文件匹配
Order allow,deny
Deny from all
Satisfy All
ErrorLog "logs/error_log"设置错误日志
LogLevel warn 设置日志级别
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
CustomLog "logs/access_log" common
ScriptAlias /cgi-bin/ "/application/apache2.2.27/cgi-bin/"
AllowOverride None
Options None
Order allow,deny
Allow from all
DefaultType text/plain
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-vhosts.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
01)建立目录配置apache基于域名虚拟主机
# mkdir -p /var/html/{www,blog,bbs}
# touch /var/html/{www,blog,bbs}/index.html
# for name in www blog bbs;do echo "http://$name.my.org" > /var/html/$name/index.html;done
# cat bbs/index.html
http://bbs.my.org
# cat blog/index.html
http://blog.my.org
# cat www/index.html
http://www.my.org
02)在http-vhosts.conf里面配置
# ls
extrahttpd.confhttpd.conf.orimagicmime.typesoriginal
# cd extra/
# ls
httpd-autoindex.confhttpd-info.conf httpd-mpm.conf httpd-userdir.conf
httpd-dav.conf httpd-languages.confhttpd-multilang-errordoc.confhttpd-vhosts.conf
httpd-default.conf httpd-manual.conf httpd-ssl.conf httpd-vhosts-name.conf
# cat httpd-vhosts.conf
#
# Virtual Hosts
#
NameVirtualHost *:80
ServerAdmin 15581737164@163.com
DocumentRoot "/var/html/www"
ServerName www.my.org
ServerAlias my.org
ErrorLog "logs/www-error_log"
CustomLog "logs/www-access_log" common
ServerAdmin 15581737164@163.com
DocumentRoot "/var/html/blog"
ServerName blog.my.org
ErrorLog "logs/blog-error_log"
CustomLog "logs/blog-access_log" common
ServerAdmin 15581737164@163.com
DocumentRoot "/var/html/bbs"
ServerName bbs.my.org
ErrorLog "logs/bbs-error_log"
CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined
#
03)在主配文件中打开虚拟主机
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-vhosts.conf
04)检查语法和发布
/application/apache/bin/apachectl -t
/application/apache/bin/apachectl graceful
注:做以上操作的时候可能会有延迟和报错(fully qualified domian name FQDN),解决如下:
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 httpd
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#
# vim httpd.conf
#ServerName www.example.com:80
ServerName 127.0.0.1:80
05)当访问的时候会报403错误,因为没有dns解析,所以可以进行本地解析
06)之后还是不能访问,因为没有配置虚拟主机访问站点
解决:在主配文件最后加
OptionsFollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
07)到此就可以访问了
08)基于IP的虚机主机、基于不同端口的虚拟主机
配置apache轮询日志
01)安装轮询软件
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make&make install
pwd
02)建立日志目录
mkdir -p /app/logs03)在子配文件中配置
ServerAdmin 15581737164@163.com
DocumentRoot "/var/html/bbs"
ServerName bbs.my.org
ErrorLog "logs/bbs-error_log"
CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined
04)检查语法和发布
/application/apache/bin/apachectl -t
/application/apache/bin/apachectl graceful
05)此时访问网站就会生成日志
06)其他日志轮询工具rotatelog
07)不记录图片的日志
在主配文件中
SetEvn IMAG 1
在虚拟主机配置文件http-vhosts.conf的日志配置中
CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined evn=!IMAG
08)RS服务器不记录负载均衡健康检查日志
在http-vhosts.conf中
SetEvnIf Request_URI “^/check\.txt$” dontlog
CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined evn=!dontlog
09)通过脚本分析日志
统计访问IP
awk '{print $1}' access_bbs_20170608.log |sort |uniq -c |sort -rn -k1|head -10
awk '{++S[$1]} END {for (key in S) print S,key}' access_bbs_20170608.log | sort -rn -k1|head -10
010)安装PHP
=================php=====================
5.3=====>
=============================
./configure \
--prefix=/application/php5.3.27 \
--with-apxs2=/application/apache/bin/apxs \
--with-mysql=/application/mysql \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv \
--enable-short-tags \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir
==========php==========
安装准备
yum install zlib libxml libjpeg freetype libpng gdcurl libiconvzlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel -y
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
cd ../
页:
[1]