收藏 分享(赏)

Linux-基础教程--Apache动态站点.ppt

上传人:weiwoduzun 文档编号:4174527 上传时间:2018-12-13 格式:PPT 页数:50 大小:955.51KB
下载 相关 举报
Linux-基础教程--Apache动态站点.ppt_第1页
第1页 / 共50页
Linux-基础教程--Apache动态站点.ppt_第2页
第2页 / 共50页
Linux-基础教程--Apache动态站点.ppt_第3页
第3页 / 共50页
Linux-基础教程--Apache动态站点.ppt_第4页
第4页 / 共50页
Linux-基础教程--Apache动态站点.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、第20章 Apache动态站点,本章内容要点,Linux下的脚本语言 常用的动态网站技术 Apache日志统计分析工具 LAMP的环境配置及应用,2018年12月13日,2,本章学习目标,熟悉常用的动态网站技术 掌握 Apache 的 CGI 配置 熟悉 Apache 的 FastCGI 配置 掌握 AWStats 的安装和配置 掌握 LAMP(PHP) 的安装和配置 学会安装配置常用的LAMP应用,2018年12月13日,3,脚本语言与动态网站技术,2018年12月13日,4,Linux下的脚本语言,常用的脚本语言 Bash 系统必备 PHP 简明单纯 Perl 凝练晦涩 Python 优雅

2、明晰 Ruby 精巧灵动 脚本语言的主要用途 系统管理的自动化 动态Web编程,2018年12月13日,5,CentOS 下的脚本语言,脚本语言的安装 CentOS 官方仓库提供了 Perl/Python/PHP/Ruby 可以使用 yum 安装 脚本语言的模块管理工具 PHP:pear、pecl Perl:cpan Python:easy_install或pip Ruby:gem,2018年12月13日,6,常用的动态网站技术,CGI Apache的第三方脚本语言模块 FastCGI,2018年12月13日,7,CGI 简介,CGI(Common Gateway Interface,通用网关

3、接口) 是一个连接外部应用程序到 HTTP 服务器的标准 CGI 定义了 Web 服务器与外部内容生成程序(通常称为 CGI 脚本或 CGI 程序)之间交互的方法,即:一种基于浏览器的输入、在 Web 服务器上运行的程序方法,从而实现动态 Web 的功能,2018年12月13日,8,CGI 程序,CGI 程序可以用任何一种语言编写 只要这种语言具有标准输入、输出和环境变量。 例如:perl、python、ruby、php、bash、C 等 CGI 程序通常是挂平台的 可以运行在类 UNIX 和 Windows 等众多平台的服务器上 实现同一功能的程序在不同平台上可能会有细微差异,2018年12

4、月13日,9,CGI 的工作原理,2018年12月13日,10,CGI 的处理步骤,Web 客户端通过网络把用户请求送到服务器 Web 服务器接收用户请求 GET 方法:利用环境变量 QUERY_STRING 接收 POST 方法:利用标准输入接收;环境变量CONTENT_LENGTH记录输入字符长度 Web 服务器交给 CGI 程序处理 CGI 程序把动态处理结果通过标准输出传送给 Web 服务器 服务器把最终的HTML页面送回到 Web 客户端,2018年12月13日,11,Apache 与 CGI,Apache支持CGI的模块 mod_cgi(用于基于进程的 prefork MPM) m

5、od_cgid(用于基于线程的 worker MPM) RHEL/CentOS下Apache默认加载了mod_cgi 配置 Apache 允许执行 CGI 程序有两种方法 将所有的 CGI 程序放在指定的目录中,并使用 ScriptAlias 指令声明 在任意目录中执行 CGI 程序,2018年12月13日,12,ScriptAlias,/etc/httpd/conf/httpd.conf 里有如下的配置段以 /cgi-bin/ 开头的资源都映射到 /var/www/cgi-bin/ 目录 URL为 http:/www.ls-al.me/cgi-bin/test.pl 的请求,Apache 会

6、试图执行 /var/www/cgi-bin/test.pl 文件(CGI程序文件必须存在而且可执行),2018年12月13日,13,ScriptAlias /cgi-bin/ “/var/www/cgi-bin/“AllowOverride NoneOptions NoneOrder allow,denyAllow from all ,创建CGI脚本并浏览测试,创建 /var/www/cgi-bin/test.pl添加可执行权限并进行浏览测试,2018年12月13日,14,#!/usr/bin/perl print “Content-type: text/htmlnn“; print “Hel

7、lo, World. Perl“;,# chmod +x /var/www/cgi-bin/test.pl # elinks http:/www.ls-al.me/cgi-bin/test.pl # elinks http:/www.olabs.org/cgi-bin/test.pl # elinks http:/ VirtualHost 容器中配置 ScriptAlias 指令,2018年12月13日,15,ServerName www.olabs.orgDocumentRoot “/var/www/vhosts/olabs.org/htdocs/“ScriptAlias /cgi-bin/

8、 “/var/www/vhosts/olabs.org/cgi-bin/“AllowOverride NoneOptions NoneOrder allow,denyAllow 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 程序,2018年12月13日,16,在任意

9、目录中执行 CGI 程序,配置方法 用 AddHandler 或 SetHandler 指令激活 cgi-script 处理器 在目录容器的 Options 指令中启用 ExecCGI 选项 AddHandler / SetHandler 指令AddHandler cgi-script .cgi .pl 用于在文件扩展名与特定的处理器 之间建立映射 告诉服务器哪些文件是 CGI 程序文件,2018年12月13日,17,在任意目录中执行 CGI 程序 配置举例,/etc/httpd/conf.d/git.conf使用别名将 http:/xxx.xxx.xxx/git 的访问映射到磁盘的 /var

10、/www/git 目录 允许执行 /var/www/git 目录下的后缀名为 .cgi 的程序,2018年12月13日,18,Alias /git /var/www/gitOptions +ExecCGIAddHandler cgi-script .cgi ,CGI的优缺点,优点 安全性好 用C语言写的CGI程序,编译后的运行速度比脚本运行速度要快 缺点 需要开独立进程(fork-and-execute 模式)来处理用户请求,密集请求的情况下容易崩溃 维护成本比脚本语言高 通常CGI程序使用Perl编写,其语法相对复杂,2018年12月13日,19,解决CGI的低效率,为了适应密集请求(高负载

11、)型的Web服务器 解决CGI的低执行效率的方法 使用Apache的第三方脚本语言模块 模块当 Apache 运行后就常驻内存 不会像 CGI 那样每次都要花费时间去 fork 一次 使用FastCGI技术 是一种常驻(Long-Live)型的 CGI 类似于系统守护进程 可以一直执行着为来自服务器的请求提供服务 只要激活后,不会每次都要花费时间去 fork 一次,2018年12月13日,20,Apache的脚本语言模块,PHP:mod_php http:/ Perl:mod_perl http:/perl.apache.org/ Python:mod_python http:/www.mod

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

13、一意作 I/O 处理 大量的图片等静态 I/O 处理完全不需要逻辑程序的参与 可以让 Web 服务器运行多个 FastCGI 应用程序的副本来提高性能 FastCGI 可以很有效地利用内存来作缓存来提高性能,2018年12月13日,23,Apache 与 FastCGI,Linux下常用的Web服务器均支持FastCGI Apache、Nginx、Lighttpd、Cherokee Apache使用 mod_fcgid 模块实现 由EPEL仓库的mod_fcgid包提供 配置 Apache 允许执行 FastCGI 程序 与允许执行 CGI 程序类似,2018年12月13日,24,Script

14、Alias /fcgi-bin /var/www/fcgi-bin,AddHandler fastcgi-script .php .py .pl .fcgi Options +ExecCGI,动态网站数据库,动态Web站点并非一定要有数据库支持,但大多数应用需要数据库支持 动态网站常用的开源数据库 关系型数据库(Relational database) MySQL:http:/ PostgreSQL:http:/www.postgresql.org/ SQLite:http:/sqlite.org/ 面向文档的数据库(Document-oriented database) mongoDB:ht

15、tp:/www.mongodb.org/ CouchDB:http:/couchdb.apache.org/,2018年12月13日,25,LAMP简介,LAMP是首字母缩略语(Acronym) L:Linux 操作系统 A:Apache Web 服务器 M:MySQL 数据库 P:PHP 、Perl 、Python 或 Ruby 脚本语言 LAMP的特点 开放灵活、开发迅速、部署方便 高可配置、安全可靠、成本低廉等 与Java平台和.NET平台鼎足三分 尤其受中小企业的欢迎,2018年12月13日,26,狭义LAMP,Linux+Apache+MySQL+PHP 是最常用的开源平台组合,20

16、18年12月13日,27,基于脚本语言的 知名Web框架,2018年12月13日,28,Apache日志统计分析工具,2018年12月13日,29,AWStats简介,AWStats(Advanced Web Statistics)是一个免费的功能强大的服务器日志分析工具 AWStats 的功能 提供访问量,访问次数,访问者IP,访问者国家或地区、页面浏览量,点击数,高峰时段、访客持续时间,数据流量等 提供精确到每月、每日、每小时的统计数据 提供访客操作系统、浏览器版本的统计信息 提供Robots/Spiders 机械访问的统计、无效连接等 搜索引擎、关键字、以及对不同文件类型的统计信息,20

17、18年12月13日,30,CentOS下的AWStats,安装AWStats # yum -enablerepo=epel install awstats 重要文件说明 配置文件模板 /etc/awstats/awstats.model.conf 每个虚拟主机的配置文件(*为虚拟主机名) /etc/awstats/awstats.*.conf 每小时生成一次AWStats 数据库的cron脚本 /etc/cron.hourly/awstats 用于执行awstats.pl的Apache的CGI配置文件 /etc/httpd/conf.d/awstats.conf,2018年12月13日,31,

18、AWStats的配置文件,AWStats在生成其统计数据库时需要其配置文件 AWStats 为不同的站点使用不同的配置文件 配置文件的命名规则awstats.SITENAME.conf 例如:站点名为 ,则配置文件名为 .conf 常用配置语句 SiteDomain= HostAliases= LogFile=,2018年12月13日,32,更新AWStats的统计数据库,生成指定站点的日志统计数据库 # /usr/share/awstats/wwwroot/cgi-bin/awstats.pl-config=SITENAME生成所有虚拟主机的统计数据库 对指定配置文件目录下的每个配置文件生成

19、统计数据库 /usr/share/awstats/tools/awstats_updateall.pl AWStats 的cron脚本使用了 awstats_updateall.pl,2018年12月13日,33,AWStats 的 Apache 配置文件,/etc/httpd/conf.d/awstats.conf 此配置文件是被主配置文件包含的,是全局配置,所有的虚拟主机都将继承这个配置,2018年12月13日,34, ScriptAlias /awstats/ “/usr/share/awstats/wwwroot/cgi-bin/“Options NoneAllowOverride N

20、oneOrder allow,denyAllow from 127.0.0.1,AWStats配置举例,为虚拟主机配置AWStats 在Apache中为AWStats的访问配置主机访问控制、认证授权 生成虚拟主机的AWStats配置文件 更新指定配置文件的AWStats的统计数据库 访问CGI脚本获得AWStats的统计输出,2018年12月13日,35,参见教材的操作步骤,LAMP的环境配置及应用,2018年12月13日,36,安装配置LAMP环境,安装配置MySQL服务 安装配置PHP 安装和测试phpMyAdmin,2018年12月13日,37,MySQL服务概览,类型:系统 V(Sys

21、tem V)管理的服务 软件包: mysql-server, mysql, mysql-libs, mysql-manual 守护进程: /usr/bin/mysqld_safe 启动脚本: /etc/init.d/mysqld 端口: 3306 配置: /etc/f 相关软件包: mysqlclient、php-mysql、perl-DBD-mysql,2018年12月13日,38,安装配置MySQL服务,安装 # yum install mysql mysql-server mysql-manual 启动 # chkconfig -levels 35 mysqld on # service

22、 mysqld start 设置MySQL的root用户口令 # /usr/bin/mysqladmin -u root password new-password # /usr/bin/mysqladmin -u root -h $(hostname) new-password,2018年12月13日,39,安装PHP,安装PHP及其相关的软件包查看PHP的配置文件,2018年12月13日,40,# yum install php php-pear # yum install php-mysql php-odbc php-pdo # yum install php-gd php-mcrypt

23、 php-mbstring # yum install php-imap php-xml php-xmlrpc # yum install php-pecl-apc php-pecl-memcached,# less /etc/php.ini # ls /etc/php.d apc.ini json.ini mysql.ini pdo_sqlite.ini xmlwriter.ini curl.ini mbstring.ini odbc.ini phar.ini xsl.ini ,配置mod_php模块运行PHP,/etc/httpd/conf.d/php.conf,2018年12月13日,4

24、1,LoadModule php5_module modules/libphp5.soLoadModule php5_module modules/libphp5-zts.soAddHandler php5-script .php AddType text/html .php DirectoryIndex index.php,测试PHP和MySQL,重新启动Apache # service httpd restart 在/var/www/html目录下编写一个测试脚本 # echo /var/www/html/info.php 使用浏览器进行测试 # elinks http:/www.ls-a

25、l.me/info.php,2018年12月13日,42,phpMyAdmin,phpMyAdmin 是一个用PHP编写的基于Web的Mysql管理工具 phpMyAdmin 界面友好,操作简单 phpMyAdmin的主页 http:/ phpMyAdmin的安装和配置,2018年12月13日,43,参考教材操作步骤,常用的LAMP应用,Portal CMS LMS/LCMS Wiki BLOG Forum Groupware WebMail BugTrackers phpDBadmin Web Hosting Control Panel,2018年12月13日,44,常用的LAMP应用软件,

26、Moodle Wordpress Drupal phpBB ,2018年12月13日,45,Moodle 简介,Moodle为远程教育提供了一种优秀的开源解决方案 是使用PHP编写的面向对象的模块化动态教学环境 是由澳大利亚教师Martin Dougiamas基于建构主义教育理论而开发的免费、开源的课程管理系统(Course Management System,CMS) 具有内容管理、学习管理和课程管理三大功能 包含论坛、测验、资源、投票、问卷、作业、聊天和博客等模块 具有大量功能丰富的第三方插件 是目前全球范围内应用最广泛的在线教学平台之一,2018年12月13日,46,Moodle配置举例

27、,下载最新版Moodle 配置MySQL服务的InnoDB存储支持 配置Apache 运行Moodle的安装配置脚本 或使用浏览器实现交互式安装 安排Moodle的cron任务,2018年12月13日,47,参考教材操作步骤,本章思考题,Linux环境下常用的脚本语言有哪些?各自有何特点? 常见的动态网站技术有哪些?与CGI相比FastCGI有哪些特点和优势? 什么是AWStats?AWStats提供了哪些功能? 什么是LAMP?LAMP的常见应用有哪些? 什么是Portal CMS、LMS/LCMS、Wiki、BLOG、Forum、Groupware、WebMail、BugTrackers、

28、phpDBadmin、Web Hosting Control Panel?,2018年12月13日,48,本章实验,学会配置AWStats访问Apache的访问日志统计信息。 学会配置基于Apache动态语言模块的LAMP环境。 学会安装和配置常见的LAMP应用软件 如:Drupal、Joomla、MediaWiki、Wordpress、phpBB和Moodle等 学会安装和配置常见的国产LAMP应用软件 如:康盛公司(http:/ SupeSite、Discuz!X 等产品,2018年12月13日,49,进一步学习,学习配置Apache+FastCGI+PHP5 (包括 PHP-FPM)+M

29、ySQL 环境。 学习配置Apache+FastCGI+Perl(包含spawn-fcgi)+MySQL 环境。 学习配置Apache+FastCGI+Python(包含python-flup)+MySQL 环境。 学习配置Apache+mod_wsgi+Python+MoinMoinWiki。 学习配置Apache+Tomcat的Java环境。 学习配置Nginx+FastCGI+PHP5 (包括 PHP-FPM)+MySQL 环境。 学习配置Nginx+FastCGI+RubyOnRails环境。 学习 ISPConfig(http:/www.ispconfig.org/)的安装和配置。,2018年12月13日,50,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报