httpd是Apache 超文本传输协议 (HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。20世纪90年代初,国家超级计算机应用中心NCSA开发,1995年开源社区发布apache(a patchy server)
2 httpd特性:
.高度模块化:core + modules
.DSO: Dynamic Shared Object动态加/卸载
.MPM:multi-processing
module多路处理模块
3 httpd功能特性
.虚拟主机:基于IP、Port、FQDN来创建虚拟主机,可以在一台物理服务器上搭建多个网站
.CGI:Common
Gateway Interface,通用网关接口
网关解决了不同的网络或者不同的协议之间的通信,相当于是翻译的作用,这里是一个通用的概念
正向代理:为客户端访问外部网络提供服务,主要是提供了缓存,同时也可以进行用户行为控制
反向代理:起到了调度的作用,同时也可以做行为控制,nginx可以作为反向代理服务器,haproxy是专业的反向代理服务器
.负载均衡:根据用户的访问量来控制将请求分发到哪一台服务器上
.路径别名
.丰富的用户认证机制:如打开页面后d出用户名和密码,一般不用web提供的,都是公司自己定制实现
basic
digest
.支持第三方模块
4 Httpd安装
.版本
CentOS6: 2.2
CentOS7: 2.4
.安装方式:
rpm:centos发行版,稳定,建议使用
编译:定制或特殊需求,如软件版本有漏洞,要通过源码编译安装实现,或者定制自己的特定需求功能
.CentOS 6程序环境:httpd-2.2
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
/etc/httpd/conf/httpd.conf配置了Include
conf.d/*.conf这句话,表示模块可以单独写在/etc/httpd/conf.d/这个路径下,写出独立的配置文件,也可以加载出模块这里也可以看出,如果要额外添加配置,增加功能,可以直接写在/etc/httpd/conf.d/这个路径下的模块,这样要删除也比较好删。当主配置文件和子配置文件都有相同的配置是,如果同一字段的配置有冲突,默认是以主配置文件生效的,原因是在主配置文件中include的子配置文件这句配置在配置DocmentRoot"/app/website"之前,默认是后面的配置生效,所以DocmentRoot"/app/website"这行配置比子配置优先,覆盖了前面的配置
检查配置语法:
httpd –t
service httpd configtest
5 httpd自带的工具程序
.httpd自带的工具程序
htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具
apachectl:httpd自带的服务控制脚本,支持start和stop
这个工具类似dns的rndc这个工具
apachectl这是一个脚本
apxs:httpd-devel包提供,扩展httpd使用第三方模块工具
rotatelogs:日志滚动工具
access.log -->access.log,access.1.log -->access.log, acccess.1.log, access.2.log依次增加log,最新的log放在文件access.log里,旧的log会依次备份
suexec:访问某些有特殊权限配置的资源时,临时切换至指定用户身份运行
6 httpd的压力测试工具
.httpd的压力测试工具.ab来自httpd-tools服务包
.ab, webbench, http_load, seige
.Jmeter开源
.Loadrunner商业,有相关认证
.tcpcopy:网易,复制生产环境中的真实请求,并将之保存
.ab [OPTIONS] URL
来自httpd-tools包
ab测试的是最大性能,所以实际情况下,可能不是最大性能在处理http请求
-n:总请求数
-c:模拟的并行数
-k:以持久连接模式测试
ulimit –n #调整能打开的并发文件数,例子ulimit -n 2048 调整为2048.ulimit -a可以查看所有参数
7 CentOS 6 httpd程序环境
.服务脚本:/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd
.服务控制和启动:
chkconfighttpdon|off
service{start|stop|restart|status|configtest|reload}httpd
端口号默认是80
.站点网页文档根目录:
/var/www/html
.模块文件路径:其中/etc/httpd下的modules是软链接的关系
modules ->../../usr/lib/httpd/modules
/etc/httpd/modules
/usr/lib64/httpd/modules
CentOS 6 httpd程序环境
.主程序文件:
/usr/sbin/httpd,默认用的是httpd
/usr/sbin/httpd.worker
/usr/sbin/httpd.event
.主进程文件:
/etc/httpd/run/httpd.pid
这个是服务启动的时候才会生成,服务器停止的时候就删掉,如果已经存在同名文件,启动时候就会覆盖掉这个进程
.日志文件目录:
/var/log/httpd
access_log:访问日志
error_log:错误日志
.帮助文档包:
httpd-额外的文档包,建议要安装,否则要到官网上才能看到
yum install httpd-manual,然后要重启服务或者重新加载配置才能使用
service httpd reload然后在自己搭建的apache就可以直接访问,如 http://172.18.50.75/manual/
你想问得是php如何执行shell命令把?\x0d\x0a\x0d\x0a可以用system(),exec(),passthru()这三个函数实现\x0d\x0a虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:\x0d\x0asystem() 输出并返回最后一行shell结果。\x0d\x0aexec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。\x0d\x0apassthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。\x0d\x0a 相同点:都可以获得命令执行的状态码\x0d\x0a例子:system("ls -al")\x0d\x0a【使用之前要在php.ini中把safe_mode关闭】httpd: Could not reliably determine the server\'s fully qualified domain name, using 127.0.0.1 for ServerName***********************************************vi /etc/httpd/conf/httpd.conf查找ServerName 在IP地址那栏把前边的#去掉重新启动APACHE service httpd restart 查看原帖>>希望采纳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)