Linux 应用基础教程--CH20_Apache动态站点课件

上传人:我*** 文档编号:144950616 上传时间:2020-09-14 格式:PPT 页数:50 大小:468KB
返回 下载 相关 举报
Linux 应用基础教程--CH20_Apache动态站点课件_第1页
第1页 / 共50页
Linux 应用基础教程--CH20_Apache动态站点课件_第2页
第2页 / 共50页
Linux 应用基础教程--CH20_Apache动态站点课件_第3页
第3页 / 共50页
Linux 应用基础教程--CH20_Apache动态站点课件_第4页
第4页 / 共50页
Linux 应用基础教程--CH20_Apache动态站点课件_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《Linux 应用基础教程--CH20_Apache动态站点课件》由会员分享,可在线阅读,更多相关《Linux 应用基础教程--CH20_Apache动态站点课件(50页珍藏版)》请在金锄头文库上搜索。

1、第20章Apache动态站点,主讲人: 梁如军 2011-05-05,本章内容要点,Linux下的脚本语言 常用的动态网站技术 Apache日志统计分析工具 LAMP的环境配置及应用,2020年9月14日,2,梁如军() Creative Commons License(BY-NC-SA),本章学习目标,熟悉常用的动态网站技术 掌握 Apache 的 CGI 配置 熟悉 Apache 的 FastCGI 配置 掌握 AWStats 的安装和配置 掌握 LAMP(PHP) 的安装和配置 学会安装配置常用的LAMP应用,2020年9月14日,3,梁如军() Creative Commons Lic

2、ense(BY-NC-SA),脚本语言与动态网站技术,2020年9月14日,4,梁如军() Creative Commons License(BY-NC-SA),Linux下的脚本语言,常用的脚本语言 Bash 系统必备 PHP 简明单纯 Perl 凝练晦涩 Python 优雅明晰 Ruby 精巧灵动 脚本语言的主要用途 系统管理的自动化 动态Web编程,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),5,CentOS 下的脚本语言,脚本语言的安装 CentOS 官方仓库提供了 Perl/Python/PHP/Ruby 可以使用 yum

3、安装 脚本语言的模块管理工具 PHP:pear、pecl Perl:cpan Python:easy_install或pip Ruby:gem,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),6,常用的动态网站技术,CGI Apache的第三方脚本语言模块 FastCGI,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),7,CGI 简介,CGI(Common Gateway Interface,通用网关接口) 是一个连接外部应用程序到 HTTP 服务器的标准 CGI 定义了 Web

4、服务器与外部内容生成程序(通常称为 CGI 脚本或 CGI 程序)之间交互的方法,即:一种基于浏览器的输入、在 Web 服务器上运行的程序方法,从而实现动态 Web 的功能,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),8,CGI 程序,CGI 程序可以用任何一种语言编写 只要这种语言具有标准输入、输出和环境变量。 例如:perl、python、ruby、php、bash、C 等 CGI 程序通常是挂平台的 可以运行在类 UNIX 和 Windows 等众多平台的服务器上 实现同一功能的程序在不同平台上可能会有细微差异,2020年9月1

5、4日,梁如军() Creative Commons License(BY-NC-SA),9,CGI 的工作原理,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),10,CGI 的处理步骤,Web 客户端通过网络把用户请求送到服务器 Web 服务器接收用户请求 GET 方法:利用环境变量 QUERY_STRING 接收 POST 方法:利用标准输入接收;环境变量CONTENT_LENGTH记录输入字符长度 Web 服务器交给 CGI 程序处理 CGI 程序把动态处理结果通过标准输出传送给 Web 服务器 服务器把最终的HTML页面送回到 We

6、b 客户端,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),11,Apache 与 CGI,Apache支持CGI的模块 mod_cgi(用于基于进程的 prefork MPM) mod_cgid(用于基于线程的 worker MPM) RHEL/CentOS下Apache默认加载了mod_cgi 配置 Apache 允许执行 CGI 程序有两种方法 将所有的 CGI 程序放在指定的目录中,并使用 ScriptAlias 指令声明 在任意目录中执行 CGI 程序,2020年9月14日,梁如军() Creative Commons Lice

7、nse(BY-NC-SA),12,ScriptAlias,/etc/httpd/conf/httpd.conf 里有如下的配置段 以 /cgi-bin/ 开头的资源都映射到 /var/www/cgi-bin/ 目录 URL为 http:/www.ls-al.me/cgi-bin/test.pl 的请求,Apache 会试图执行 /var/www/cgi-bin/test.pl 文件(CGI程序文件必须存在而且可执行),2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),13,ScriptAlias /cgi-bin/ /var/www/cgi

8、-bin/ AllowOverride None Options None Order allow,deny Allow from all ,创建CGI脚本并浏览测试,创建 /var/www/cgi-bin/test.pl 添加可执行权限并进行浏览测试,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),14,#!/usr/bin/perl print Content-type: text/htmlnn; print Hello, World. Perl“;,# chmod +x /var/www/cgi-bin/test.pl # elin

9、ks http:/www.ls-al.me/cgi-bin/test.pl # elinks http:/www.olabs.org/cgi-bin/test.pl # elinks ,为虚拟主机配置ScriptAlias,在 VirtualHost 容器中配置 ScriptAlias 指令,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),15, ServerName www.olabs.org DocumentRoot /var/www/vhosts/olabs.org/htdocs/ ScriptAlias /cgi-bin/ /va

10、r/www/vhosts/olabs.org/cgi-bin/ AllowOverride None Options None Order allow,deny Allow from all ,ScriptAlias说明,ScriptAlias指令除了可以映射目录之外,还可以直接映射CGI程序 例如 ScriptAlias /cgit /var/www/cgi-bin/cgit /var/www/cgi-bin/cgit 是一个CGI程序 当访问 http:/xxx.xxx.xxx/cgit 时将直接执行 /var/www/cgi-bin/cgit 程序,2020年9月14日,梁如军() Cr

11、eative Commons License(BY-NC-SA),16,在任意目录中执行 CGI 程序,配置方法 用 AddHandler 或 SetHandler 指令激活 cgi-script 处理器 在目录容器的 Options 指令中启用 ExecCGI 选项 AddHandler / SetHandler 指令 AddHandler cgi-script .cgi .pl 用于在文件扩展名与特定的处理器之间建立映射 告诉服务器哪些文件是 CGI 程序文件,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),17,在任意目录中执行 C

12、GI 程序配置举例,/etc/httpd/conf.d/git.conf 使用别名将 http:/xxx.xxx.xxx/git 的访问映射到磁盘的 /var/www/git 目录 允许执行 /var/www/git 目录下的后缀名为 .cgi 的程序,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),18,Alias /git /var/www/git Options +ExecCGI AddHandler cgi-script .cgi ,CGI的优缺点,优点 安全性好 用C语言写的CGI程序,编译后的运行速度比脚本运行速度要快 缺点

13、需要开独立进程(fork-and-execute 模式)来处理用户请求,密集请求的情况下容易崩溃 维护成本比脚本语言高 通常CGI程序使用Perl编写,其语法相对复杂,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),19,解决CGI的低效率,为了适应密集请求(高负载)型的Web服务器 解决CGI的低执行效率的方法 使用Apache的第三方脚本语言模块 模块当 Apache 运行后就常驻内存 不会像 CGI 那样每次都要花费时间去 fork 一次 使用FastCGI技术 是一种常驻(Long-Live)型的 CGI 类似于系统守护进程 可以

14、一直执行着为来自服务器的请求提供服务 只要激活后,不会每次都要花费时间去 fork 一次,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),20,Apache的脚本语言模块,PHP:mod_php Perl:mod_perl http:/perl.apache.org/ Python:mod_python http:/www.modpython.org/ Ruby:mod_passenger ,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),21,FastCGI的优点,稳定性:Fast

15、CGI 是以独立的进程池运行来 CGI 单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行之 安全性:FastCGI 和宿主服务器完全独立 即使 FastCGI 僵死也不会导致服务器宕机 扩展性:FastCGI是一个中立的技术标准 可以支持任何语言写的处理程序,如:PHP、Perl、Python、Ruby、Java、C/C等,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),22,FastCGI的优点(续),高性能 FastCGI 将动态逻辑的处理从 Web 服务器中分离出来 大负荷的 I/O 处理还是留给宿主服务器 宿主服

16、务器可以一心一意作 I/O 处理 大量的图片等静态 I/O 处理完全不需要逻辑程序的参与 可以让 Web 服务器运行多个 FastCGI 应用程序的副本来提高性能 FastCGI 可以很有效地利用内存来作缓存来提高性能,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),23,Apache 与 FastCGI,Linux下常用的Web服务器均支持FastCGI Apache、Nginx、Lighttpd、Cherokee Apache使用 mod_fcgid 模块实现 由EPEL仓库的mod_fcgid包提供 配置 Apache 允许执行 FastCGI 程序 与允许执行 CGI 程序类似,2020年9月14日,梁如军() Creative Commons License(BY-NC-SA),24,ScriptAlias /fcgi-bin /var/www/fcgi-bin,AddHandler fastcgi-script .php .py .pl .fcgi Opti

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号