老铁们,大家好,相信还有很多朋友对于搭建apache服务器和如何在Linux下搭建apache服务器的相关问题不太懂,没关系,今天就由我来为大家分享分享搭建apache服务器以及如何在Linux下搭建apache服务器的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

一、如何配置Apache服务器

1、如何设置请求等待时间

在d.conf里面设置:

TimeOut n

其中n为整数,单位是秒。

设置这个TimeOut适用于三种情况:

2、如何接收一个get请求的总时间

接收一个post和put请求的TCP包之间的时间

TCP包传输中的响应(ack)时间间隔

3、如何使得apache监听在特定的端口

修改d.conf里面关于Listen的选项,例如:

Listen 8000

是使apache监听在8000端口

而如果要同时指定监听端口和监听,可以使用:

Listen 192.170.2.1:80

Listen 192.170.2.5:8000

这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。

当然也可以在d.conf里面设置:

Port 80

这样来实现类似的效果。

4、如何设置apache的最大空闲进程数

修改d.conf,在里面设置:

MaxSpareServers n

其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会*多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。

同时也可以设置:

MinSpareServers n

来限制最少空闲进程数目来加快反应速度。

5、apache如何设置启动时的子服务进程个数

在d.conf里面设置:

StartServers 5

这样启动apache后就有5个空闲子进程等待接受请求。

也可以参考MinSpareServers和MaxSpareServers设置。

二、如何在Ubuntu上搭建一台安全的Apache Web服务器

本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问。

Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。

安装Apache2

使用下面这个命令,安装Apache2及其他库。

$ sudo apt-get-y install apt-get install apache2 apache2.2-mon apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-mon php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby

更新时区(TimeZone)和检查正确时间

为了减小共享数据或镜像数据方面的混淆,所有服务器在运行时都应该尽可能接近同步状态。一些加密密钥管理系统需要准确的时间。最后,就企业服务器而言,《萨班斯-奥克斯利法案》(Sarbanes-Oxley)和《健康保险可携*及责任*法案》(HIPAA)的安全规则要求正确的时间戳机制。

$ sudo apt-get-y install openntpd tzdata

$ sudo dpkg-reconfigure tzdata

$ sudo service openntpd restart

禁止AppArmor冲突

虽然AppArmor这个套件的确提供了一层额外的安全,但在我看来,需要为每个系统创建自定义配置文件。这不是本教程所探讨的内容。所以眼下,我们会禁用AppArmor,防止与任何默认的配置发生冲突。

$ sudo/etc/init.d/armor stop

$ sudo update-rc.d-f armor remove

$ sudo apt-get remove armor armor-utils

注意:如果是生产环境下的Web服务器,不建议禁用AppArmor。如果有些人想创建自定义的AppArmor配置文件,请参阅官方说明文档()。

阻止分布式拒绝服务(DDoS)攻击

DDoS攻击是一种分布式拒绝服务攻击。有一个Apache模块可以阻止这类攻击。

$ sudo apt-get-y install libapache2-mod-evasive

$ sudo mkdir-p/var/log/apache2/evasive

$ sudo chown-R -data:root/var/log/apache2/evasive

把下面这个命令添加到mod-evasive.load的末尾处。

$ sudo nano/etc/apache2/mods-*ailable/mod-evasive.load DOSHashTableSize 2048

DOSPageCount 20#请求同一页面的最大数量

DOSSiteCount 300#同一侦*上同一客户端IP请求任何对象的总数量

搭建apache服务器 如何在Linux下搭建apache服务器

DOSPageInterval 1.0#页面数量阈值的间隔

DOSSiteInterval 1.0#站点数量阈值的间隔

DOSBlockingPeriod 10.0#客户机IP被阻止的时间段

DOSLogDir“/var/log/apache2/evasive”

DOSEmailNotify

阻止Slowloris攻击

还有一个Apache模块可以阻止Slowloris攻击,不过模块名称取决于你使用的Ubuntu的具体版本。如果是Ubuntu 12.10或以后版本:

$ sudo apt-get-y install libapache2-mod-qos

然后,检查qos.conf中的配置:

$ sudo nano/etc/apache2/mods-*ailable/qos.conf

##服务质量方面的设置

#处理来自多达100000个不同IP的连接

QS_ClientEntries 100000

#只允许每个IP仅50条连接

QS_SrvMaxConnPerIP 50

#活动TCP连接的最大数量限制在256条

MaxClients 256

#当70%的TCP连接被占用时,禁用保持活动连接状态

QS_SrvMaxConnClose 180

#最小请求/响应速度(拒绝阻塞服务器的慢速客户端,即slowloris保持连接开启,不提出任何请求):

QS_SrvMinDataRate 150 1200

#并限制请求标题和主体(注意,这还限制了上传和发帖请求):

# LimitRequestFields 30

# QS_LimitRequestBody 102

注意:如果你运行12.04之前的Ubuntu版本,改而使用下面这个命令:

$ sudo apt-get-y install libapache2-mod-antiloris

检查antiloris.conf中的配置

$ sudo nano/etc/apache2/mods-*ailable/antiloris.conf

#每个IP处于READ状态的最大并行连接数量

IPReadLimit 5

阻止DNS注入攻击

Spamhaus这个模块使用域名系统黑名单(DNSBL),目的是为了阻止通过Web表单实现的垃圾邮件转发,防止URL注入攻击,阻止来自机器人程序的 DDoS攻击,通常保护服务器,远离已知的恶意IP。

$ sudo apt-get-y install libapache2-mod-spamhaus

$ sudo touch/etc/spamhaus.wl Append the config to apache2.conf

$ sudo nano/etc/apache2/apache2.conf

MS_METHODS POST,PUT,OPTIONS,CONNECT

MS_WhiteList/etc/spamhaus.wl

MS_CacheSize 256

重启Apache装入新模块

$ sudo service apache2 restart

现在Web服务器已安装完毕,并在正常运行。将Web浏览器指向你的域,即可看到证明你一切正常的默认消息。作为最后的检查机制,运行下面这个命令,看看你的服务器有没有任何错误信息。要是有错误信息,你需要上谷歌搜索一下,立马解决这些错误。

$ sudo tail-200/var/log/syslog

三、如何在Linux下搭建apache服务器

准备篇:

1、配置防火墙,开启80端口、3306端口

vi/etc/sysconfig/iptables

-A INPUT-m state--state NEW-m tcp-p tcp--dport 80-j ACCEPT#允许80端口通过防火墙

-A INPUT-m state--state NEW-m tcp-p tcp--dport 3306-j ACCEPT#允许3306端口通过防火墙

备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,

正确的应该是添加到默认的22端口这条规则的下面

如下所示:

##############################添加好之后防火墙规则如下所示##############################

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not remended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT-m state--state ESTABLISHED,RELATED-j ACCEPT

-A INPUT-p icmp-j ACCEPT

-A INPUT-i lo-j ACCEPT

-A INPUT-m state--state NEW-m tcp-p tcp--dport 22-j ACCEPT

-A INPUT-m state--state NEW-m tcp-p tcp--dport 80-j ACCEPT

-A INPUT-m state--state NEW-m tcp-p tcp--dport 3306-j ACCEPT

-A INPUT-j REJECT--reject-with icmp-host-prohibited

-A FORWARD-j REJECT--reject-with icmp-host-prohibited

COMMIT

##################################################################################################

/etc/init.d/iptables restart#最后重启防火墙使配置生效

2、关闭SELINUX

vi/etc/selinux/config

#SELINUX=enforcing#注释掉

#SELINUXTYPE=targeted#注释掉

SELINUX=disabled#增加

:wq#保存,关闭

shutdown-r now#重启系统

安装篇:

一、安装Apache

yum install d#根据提示,输入Y安装即可成功安装

/etc/init.d/d start#启动Apache

备注:Apache启动之后会提示错误:

正在启动 d:d: Could not reliably determine the server's fully qualif domain name, using::1 for ServerName

解决办法:

vi/etc/d/conf/d.conf#编辑

找到#ServerName

修改为 ServerName 这里设置为你自己的域名,如果没有域名,可以设置为localhost

:wq!#保存退出

cconfig d on#设为开机启动

/etc/init.d/d restart#重启Apache

二、安装MySQL

1、安装MySQL

yum install mysql mysql-server#询问是否要安装,输入Y即可自动安装,直到安装完成

/etc/init.d/mysqld start#启动MySQL

cconfig mysqld on#设为开机启动

cp/usr/share/mysql/my-medium.f/etc/my.f#拷贝配置文件(注意:如果/etc目录下面默认有一个my.f,覆盖即可)

2、为root账户设置密码

mysql_secure_installation

回车,根据提示输入Y

输入2次密码,回车

根据提示一路输入Y

最后出现:Thanks for using MySQL!

MySql密码设置完成,重新启动 MySQL:

/etc/init.d/mysqld restart#重启

/etc/init.d/mysqld stop#停止

/etc/init.d/mysqld start#启动

三、安装PHP5

1、安装PHP5

yum install php

根据提示输入Y直到安装完成

2、安装PHP组件,使 PHP5支持 MySQL

yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt

这里选择以上安装包进行安装

根据提示输入Y回车

/etc/init.d/mysqld restart#重启MySql

/etc/init.d/d restart#重启Apche

配置篇

一、Apache配置

vi/etc/d/conf/d.conf#编辑文件

ServerTokens OS在44行修改为:ServerTokens Prod(在出现错误页的时候不显示服务器操作系统的名称)

ServerSignature On在536行修改为:ServerSignature Off(在错误页中不显示Apache的版本)

Options Indexes FollowSymLinks在331行修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)

#AddHandler cgi-script.cgi在796行修改为:AddHandler cgi-script.cgi.pl(允许扩展名为.pl的CGI脚本运行)

AllowOverride None在338行修改为:AllowOverride All(允许.htaess)

AddDefaultCharset UTF-8在759行修改为:AddDefaultCharset GB2312(添加GB2312为默认编码)

Options Indexes MultiViews FollowSymLinks在554行修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)

DirectoryIndex index.html index.html.var在402行修改为:DirectoryIndex index.html index.htm Default.html Default.htm

index.php Default.php index.html.var(设置默认首页文件,增加index.php)

KeepAlive Off在76行修改为:KeepAlive On(允许程序*联机)

MaxKeepAliveRequests 100在83行修改为:MaxKeepAliveRequests 1000(增加同时连接数)

:wq!#保存退出

/etc/init.d/d restart#重启

rm-f/etc/d/conf.d/wele.conf/var//error/noindex.html#删除默认测试页

二、php配置

vi/etc/php.ini#编辑

date.timezone= PRC#在946行把前面的分号去掉,改为date.timezone= PRC

disable_functions= passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#在386行列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

expose_php= Off#在432行禁止显示php版本的信息

magic_quotes_gpc= On#在745行打开magic_quotes_gpc来防止SQL注入

short_open_tag= ON#在229行支持php短标签

open_basedir=.:/tmp/#在380行设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php*跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行,或者写上程序的目录/data/.osyunwei./:/tmp/

:wq!#保存退出

/etc/init.d/mysqld restart#重启MySql

/etc/init.d/d restart#重启Apche

测试篇

cd/var//html

vi index.php#输入下面内容

<?php

phpinfo();

?>

:wq!#保存退出

在客户端浏览器输入服务器IP,可以看到如下图所示相关的配置信息!

注意:apache默认的程序目录是/var//html

权限设置:chown apache.apache-R/var//html

至此,CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)教程完成!