如何在Linux下搭建apache服务器
下载httpd-226tarbz2 把httpd-226tarbz2放到/soft 下
[root@localhost ~]#cd /soft
[root@localhost soft]#tar jxvf httpd-226tarbz2 //解压apache的压缩包
[root@localhost soft]#cd httpd-226 //定位到httpd-226 文件夹下
[root@localhost httpd-226]#ls //查看显示httpd-226 文件夹下内容
[root@localhost httpd-226]#/configure --help | more //查看安装apache配置参数
[root@localhost httpd-226]#/configure --prefix=/usr/local/apache --enable-so // 配置apache路径
[root@localhost httpd-226]#make //编译apache
[root@localhost httpd-226]#make install //安装apache
[root@localhost httpd-226]#cd /usr/local/apache //进入apache的目录
[root@localhost apache]# cd conf/
[root@localhost conf]#cp -a httpdconf httpdconf- //备份apache配置文件
[root@localhost conf]#chkconfig --list httpd //查看httpd服务是否已存在
[root@localhost conf]#chkconfig httpd off //关闭系统自带了httpd的服务,如果存在httpd服务
[root@localhost conf]#service httpd status //查看自带httpd服务状态
[root@localhost conf]#/usr/local/apache/bin/apachectl -k start //linux启动apache命令
[root@localhost conf]#netstat -an | grep :80 //查看linux80端口是否开启
[root@localhost conf]#ps -aux | grep httpd //linux下查看apache进程
[root@localhost conf]#cd /
[root@localhost local]#cp /usr/local/apache/bin/apachectl /etc/rcd/initd/apache //拷贝apache启动脚本
[root@localhost local]#vi /etc/rcd/initd/apache // 这里是编辑apache启动脚本
在开头的#!/bin/sh 下面加上
#chkconfig: 2345 85 15
[root@localhost local]#chkconfig --add apache //添加apache服务
[root@localhost local]#chkconfig --list apache //列出apache服务
[root@localhost local]#service apache stop //停止apache服务
[root@localhost local]#netstat -an | grep :80 //查看linux的80端口是否关闭
[root@localhost local]#ps -aux | grep httpd //查看是否存在httpd服务,若果之前自带httpd服务启动的话会导致新添加的apache服务启动失败
[root@localhost local]#service apache start //启动apache服务
打开你的服务器ip地址,看看是否出现了tomcat的默认首页,如果出现的话,那么恭喜你
linux下安装apache已经成功了
本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问。
Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。
安装Apache2
使用下面这个命令,安装Apache2及其他库。
$ sudo apt-get -y install apt-get install apache2 apache22-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common 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/initd/apparmor stop
$ sudo update-rcd -f apparmor remove
$ sudo apt-get remove apparmor apparmor-utils
注意:如果是生产环境下的Web服务器,不建议禁用AppArmor。如果有些人想创建自定义的AppArmor配置文件,请参阅官方说明文档(http://wikiapparmornet/indexphp/Documentation)。
阻止分布式拒绝服务(DDoS)攻击
DDoS攻击是一种分布式拒绝服务攻击。有一个Apache模块可以阻止这类攻击。
$ sudo apt-get -y install libapache2-mod-evasive
$ sudo mkdir -p /var/log/apache2/evasive
$ sudo chown -R www-data:root /var/log/apache2/evasive
把下面这个命令添加到mod-evasiveload的末尾处。
$ sudo nano /etc/apache2/mods-available/mod-evasiveload DOSHashTableSize 2048
DOSPageCount 20 # 请求同一页面的最大数量
DOSSiteCount 300 # 同一侦听器上同一客户端IP请求任何对象的总数量
DOSPageInterval 10 # 页面数量阈值的间隔
DOSSiteInterval 10 # 站点数量阈值的间隔
DOSBlockingPeriod 100 # 客户机IP被阻止的时间段
DOSLogDir “/var/log/apache2/evasive”
DOSEmailNotify admin@domaincom
阻止Slowloris攻击
还有一个Apache模块可以阻止Slowloris攻击,不过模块名称取决于你使用的Ubuntu的具体版本。如果是Ubuntu 1210或以后版本:
$ sudo apt-get -y install libapache2-mod-qos
然后,检查qosconf中的配置:
$ sudo nano /etc/apache2/mods-available/qosconf
## 服务质量方面的设置
# 处理来自多达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 102400
注意:如果你运行1204之前的Ubuntu版本,改而使用下面这个命令:
$ sudo apt-get -y install libapache2-mod-antiloris
检查antilorisconf中的配置
$ sudo nano /etc/apache2/mods-available/antilorisconf
# 每个IP地址处于READ状态的最大并行连接数量
IPReadLimit 5
阻止DNS注入攻击
Spamhaus这个模块使用域名系统黑名单(DNSBL),目的是为了阻止通过Web表单实现的垃圾邮件转发,防止URL注入攻击,阻止来自机器人程序的http DDoS攻击,通常保护服务器,远离已知的恶意IP地址。
$ sudo apt-get -y install libapache2-mod-spamhaus
$ sudo touch /etc/spamhauswl Append the config to apache2conf
$ sudo nano /etc/apache2/apache2conf
MS_METHODS POST,PUT,OPTIONS,CONNECT
MS_WhiteList /etc/spamhauswl
MS_CacheSize 256
重启Apache装入新模块
$ sudo service apache2 restart
现在Web服务器已安装完毕,并在正常运行。将Web浏览器指向你的域,即可看到证明你一切正常的默认消息。作为最后的检查机制,运行下面这个命令,看看你的服务器有没有任何错误信息。要是有错误信息,你需要上谷歌搜索一下,立马解决这些错误。
$ sudo tail -200 /var/log/syslog
WampServer 给电脑搭建apache服务器和php环境
前端不仅要做页面展示层,还负责着数据交互的部分,不要等到后端人员做好工作了前端才开始对接,那样太被动了。
前端在完成静态页面的编码后,就要进行数据交互的模拟,比如ajax的数据交互,模拟跟后台对接。
到真正前后端联调的时候,才能更方便。
1要进行数据交互,就得有后台吧。后台可以用php,java也可以呀,不过对比起来就稍微复杂了,配这配那的(又比如想放到新浪云上面调试,java相对来说代价高出许多)
2数据库随意,mysql很普遍
3既然要模拟,就得有访问,不能仅仅本地访问就行,搭个服务器,从别的终端上访问看正不正常?
(有时做手机页面的时候,虽然chrome上面的手机模拟器效果正确了,但放到手机浏览器上看,又有问题了所以搭个服务器,时不时用手机访问一下,让页面更好地展现出来。
一种方法是放到新浪云,放到公网去,就直接都能访问了;另外一种就是在电脑配服务器,比如说有个wifi热点,电脑和手机都连上这个wifi了,就属于局域网之内了,手机就能进行对电脑服务器的访问了。)
4怎么搭建好呢?
LAMP -- Linux,Apache,MySQL,PHP 是个很好的选择,但也许前端很少用到Linux,那选用WAMP也是不错的
WAMP搭建起来也很简单,有一个wampserver软件包,一键安装,方便快捷。
不同版本的也许会有差异,去 官网 下载最新版吧
或者直接搜索下载就行
接下来就直接点击安装吧,不说了,一路下去,用它默认的就行了(它默认装C盘,你可以换为D盘)
最后的最后,安装完了之后,默认已经帮你做完了基础配置。
试用一下
首先,要开启服务。直接在开始菜单那里找wampserver,类似这个图标,点击它
然后就是服务开启阶段,看电脑右下角图标信息,有三种颜色
红色代表服务未开启状态,橙色代表开启中(或者有些模块不正常),绿色表示开启成功(三个模块都正常)
服务开启成功了,要怎么访问呢?
注意一下刚才wampserver的安装路径,如果是D盘的那就在D盘根目录下找wamp文件夹,在里边再找到www文件夹,www文件夹就是项目的默认访问路径了。
怎么说呢,默认情况下www下面只有这两个文件
indexphp就是默认初始文件。
浏览器地址栏输入location就能访问到indexphp,默认是使用:80端口号的,有些电脑可能会出错,就像这样
这是因为默认的80端口被占用了呗,我们配置一下Apache的端口就行了
点击右下角那个绿色图标,然后检测一下80端口占用状态,显示被占用了
可以把80端口改为88或者8080或者其他都行,我记得要改三个地方(一个是注释的,两个不是注释)
为了方便,直接ctrl+F把80全部替换为8080就行
改了之后重启wampserver--点击绿色图标,Restart all services
浏览器输入localhost:8080就能访问了
当然也可以直接点击这个localhost检测是否成功访问,点击phpMyAdmin可以进入mysql的可视化数据管理,试试吧
来点实的,现在在www里面新建个项目文件夹myTest,浏览器输入localhost:8080/myTest就会默认访问此文件夹下面的indexphp文件,在index里面写个代码试试
浏览器访问成功了,127001:8080/myTest也一样,同样的道理。
现在是本地访问,如果其他终端访问呢?
没问题,局域网下面能互相访问
假设电脑现在的ip地址是abcd
手机上(要连wifi,3G网不是局域网)ip是abcd1
手机访问abcd:8080/myTest就行了
不过很多时候会碰到下边的问题,无法访问
"You don't have permission to access / on this server"
其实也是跟wampserver的配置有关了,还是httpdconf
网上查到的很多人都说是把这里的Deny改为Allow就行了
很多学习网站的或者计算机的人都想有一个自己的网站,但是网上的一些空间都是收费的且环境不能自己随意搭配不利于学习,所以很多朋友都有使用自己电脑搭建web服务器的想法,但是环境搭建很简单,难点就是自己的电脑搭建的web服务器只能在本机或者局域网内访问,外网的用户访问不到,这确实是一个很大的问题,解决的方法有很多种,下面和大家分享一下:
1、付费买固定ip,这个当然不推荐,或者一直保持动态ip不被收回。
我们都知道我们家里的宽带上网一般都是拨号上网,在我们使用电脑或者路由器拨号成功后运营商会随机的分给我们一个公网ip地址,但是这个ip地址不是固定的而是随机,当我们关闭电脑或者路由器的时候,该ip地址会被运营商的DHCP服务器收回给其他人使用,我们再拨号成功后DHCP服务器分给我们的ip地址可能就不是这个了,这就导致了我们的可以使用这个ip地址,但是必须保证我们电脑或者路由器不重启或者重新拨号,这样我们可以暂时一直使用该ip地址作为外网访问我们的地址,你也可以花钱购买申请一个固定的ip地址一直使用,但是这个价格是十分昂贵的且需要备案。
暂时使用运营商分配给我们的ip地址方法如下:如果电脑没有使用路由器直接拨号,那么在我们搭建好web服务器后并且启动后,其他人就可以直接通过该ip地址访问到门的web根目录了,如果使用路由器可能需要做一些端口映射,一般路由器里都是有设置的,我在此不再详细说明,如下图:
2、使用一些动态域名转换的软件实现。
当然这些软件有很多,具体的品牌我就不说了,大家可以自行百度,这类软件一般有免费的,当然免费的速度慢一些,付费的速度快一些,但是对于我们学习测试来说,免费的已经是基本够用。这类软件的工作原理大致如下:我们下载其程序安装,申请其账号(类似与QQ号),在本机上登录申请的账号,此时安装到你电脑上的程序就可以和其服务器通讯了,然后它会给你一个免费的二级域名,当我们访问这个域名的时候,其服务器就会将你电脑上的80端口的资源转发给请求者进而实现外网访问你电脑web服务器的目的,但是你要保持其软件在线,此类软件的大致配置如下:
具体可以自行百度此类软件查看其详细教程。
总结:免费的方案大致就有这两种方案,其中第二种方案是人们经常使用的,关于学习和测试我们也可以去网上找一些免费的空间或者虚拟主机使用,这个也是不错的选择。当然如果你想发布自己的网站要求稳定建议还是付费买空间。
0条评论