1、Linux实用教程,第7章 Web应用服务,本章学习目标 本章主要让读者了解有关Red Hat Linux上如何安装和设置Web服务器、如何使用Web的程序设计语言-PHP和数据库服务器-MySQL。通过对本章的学习,读者应该掌握以下主要内容:,主要内容:,Apache安装、启动与配置Apache虚拟主机的建立与站点的管理 MySQL服务器的安装与使用方法PHP程序设计语言PHP连接MySQL数据库的方法,7.1 Apache服务器,7.1.1 Apache服务器简介 Apache服务器一个主要的特点是完全免费,并且完全公开其源代码,由此用户可根据自身的需要去进行相关模块的开发。 Apache
2、服务器另一个主要的特点是其跨平台性,其可在UNIX、Windows、Linux等多种操作系统上运行。如果需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。,7.1.2 安装和启动Apache服务器,1. 检测与安装Apache在Red Hat Linux 9中自带了以下两个Apache2.0的安装文件: httpd:Apache 2.0 httpd-manual:Apache2.0手册检测Linux系统中是否已经安装了Apache服务器可以使用下面的命令:# rpm qa | grep httpd,7.1.2 安装和启动Apache服务器,1. 检测与安装Apache如
3、果确认在Linux系统中没有安装Apache,可将Red Hat Linux 9的三张安装光盘的第一张放入光驱,然后执行下面的命令:# rpm ivh httpd-2.0.40-21.i386.rpm# rpm ivh httpd-manual-2.0.40-21.i386.rpm,2. Apache服务器的启动和停止,当安装完Apache服务器后,如果想让其提供Web服务还必须启动它。下面的命令用来查看Apache服务器是否启动:# pstree | grep httpd可以使用如下命令查看Apache服务器的运行状态:# service httpd status可以使用下面的命令来启动或重
4、新启动Apache服务器:# service httpd start# service httpd restart,7.1.3 Apache服务器的配置,打开HTTP 配置工具的方法有两种:(1)依次单击“主菜单系统设置服务器设置HTTP服务器”。(2)在终端提示中键入 下面的命令。# redhat-config-httpd,7.1.3 Apache服务器的配置,使用 HTTP 配置工具来配置 Apache HTTP 服务器的一般步骤如下: (1)在“主”标签下配置基本设置。(2)在“虚拟主机”标签下来配置默认设置。(3)在“虚拟主机”标签下,配置默认的虚拟主机。如果要为多个 URL 或虚拟主
5、机提供服务,则添加额外的虚拟主机。,7.1.3 Apache服务器的配置,(4)在“服务器”标签下配置服务器设置。(5)在“调整性能”标签下配置连接设置。(6)把所有必要的文件复制到 DocumentRoot 和 cgi-bin 目录中。(7)保存设置并退出HTTP 配置工具。,1. 基本设置,(1)服务器名称 (2)网主电子邮件地址 (3)可用地址 (4)单击“添加”按钮,用来定义接受请求的其它端口。,2. 默认设置,(1)站点配置(2)记录日志(3)环境变量(4)目录,3. 服务器设置,4. 调整性能,7.1.4 配置虚拟主机,虚拟主机是在一台Web服务器上为多个单独的域名提供Web服务,
6、每个域名具有特定的目录和配置,相当于将一台主机分为多台主机,虚拟主机技术对于主机数量不足,但又想为不同的用户提供独立的Web服务的需求非常有效。 Apache有两种方式支持虚拟主机:基于IP的虚拟主机基于名字的虚拟主机。,1. 基于名字的虚拟主机,假设某一学院按照系部或者职能部门组建基于名字的虚拟主机。有一台Apache服务器和一个IP地址:211.85.203.22,假设有两个单位需要建立网站,一个为办公室网站,域名为 ,另一个为计算机系网站,域名为,(1)基于名称的虚拟主机的DNS配置,现在想要创建一个名为 和的虚拟主机,并使用同一个 Apache服务器。所需要进行的工作仅仅是在提交的 D
7、NS配置文件中,为创建如下的别名: IN CNAME IN CNAME或者officeINCNAMEwwwcomputerINCNAMEwww,在上面的配置中,在提交的DNS配置文件以及返回的配置文件中,已经具有如下的A记录和PTR记录,分别为:wwwINA211.85.203.22 1PTRCNAME,(2)修改配置文件,NameVirtualHost 211.85.203.22 ServerName DocumentRoot /var/www/html/office ServerName DocumentRoot /var/www/html/computer ,2. 基于IP的虚拟主机,
8、(1)基于IP虚拟主机的DNS配置如果用户想要创建二个基于IP的虚拟主机,、。这二个虚拟主机站点的共同域名是 。用户可以按照如下所示在DNS配置文件中进行配置:computerINA211.85.203.2officeINA211.85.203.1另外,还需要在DNS的配置文件中添加以下的PTR记录:1INPTR2INPTR,(2)修改配置文件, ServerAdmin DocumentRoot /var/www/html/computer ServerName ErrorLog /var/www/html/computer/logs/error_log TransferLog /var/
9、www/html/computer/logs/access_log ,(2)修改配置文件, ServerAdmin DocumentRoot /var/www/html/office ServerName ErrorLog /var/www/html/office/logs/error_log TransferLog /var/www/html/office/logs/access_log ,7.2 数据库服务器My SQL,1. 什么是MySQL MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
10、MySQL 主要的目标是快速、稳定和容易使用。,2. MySQL的主要特点,使用核心线程的完全多线程。有多种编程接口(API)支持不同的平台,MySQL几乎提供了现存的所有操作系统的对应版本。支持多种字段类型一个非常灵活且安全的权限和口令系统,并且允许基于主机的认证。,7.2.2 安装和启动MySQL,1. 安装当无法确认Red Hat Linux 9系统中是否安装了MySQL,可以使用下面的命令来确认:# rpm qa | grep mysql如果确认没有安装MySQL,在Red Hat Linux 9的第2张安装光盘中提供了MySQL的RPM安装包,这些安装RPM包有:mysql-2.23
11、.54a-11.i386.rpmmysql-server-2.23.54a-11.i386.rpmmysql-devel-2.23.54a-11.i386.rpm,在使用MySQL数据库之前,必须要先启动MySQL服务,可以通过以下两个命令来启动该服务:(1)使用命令:# service mysqld start(2)使用命令:# /etc/init.d/mysqld start另外,可以通过下面的命令来检查MySQL是否被启动。# service mysqld status或者# pstree | grep mysqld,(11)防火墙配置:,若要重新启动MySQL服务,可使用如下命令之一:
12、# service mysqld restart# /etc/init.d/mysqld restart 如果需要停止服务,可使用下面的命令之一:# service mysqld stop# /etc/init.d/mysqld stop# mysqladmin shutdown,7.2.3 MySQL基本操作,1. 连接与断开MySQL服务器 当使用mysql命令来连接MySQL服务器时,通常需要提供一个MySQL用户名和密码。如果MySQL服务器运行在不是用户所登录的计算机上时,还将需要指定主机名。连接MySQL服务器的语句格式如下:# mysql -h host -u user -pEn
13、ter password: *,7.2.3 MySQL基本操作,1. 连接与断开MySQL服务器,调用mysql命令与该服务器连接,命令格式如下: # mysql 如果成功地连接后,用户可以在“mysql”提示符下输入QUIT随时断开:(也可以键入control-D断开)。 mysql QUITBye,2. 数据库的创建与删除,创建该数据库可使用下面的命令:mysql CREATE DATABASE lbuser;把新创建的数据库作为当前数据库,命令如下:mysql USE lbuser;Database changed 当用户的数据库建立成功之后,可以使用下面的命令来查看数据库是否建成:my
14、sql show databases;当建立的数据库没有用时,可使用下面的命令来删除它:mysql DROP DATABASE lbuser;,3. 数据表的创建与删除,使用下面的命令CREATE TABLE语句来创建数据表:mysql CREATE TABLE user (ID int primary key,name VARCHAR(20) not null,- password VARCHAR(20),- sex VARCHAR(2),email VARCHAR(50), - birthday DATE, city VARCHAR(20);,3. 数据表的创建与删除,使用SHOW TAB
15、LES命令来查看在数据库是不是真的建立了user数据表:mysql SHOW TABLES; DESCRIBE语句命令来显示user表的字段结构:mysql DESCRIBE user;,4. 数据记录的增加、删除与修改,在MySQL中可使用LOAD DATA和INSERT语句来增加数据记录。 其中,LOAD DATA语句可允许用户一次增加多条记录。但在使用该语句之前,必须首先创建一个文本文件“user.txt”, 其格式如下:1liubing12345男 1968-04-03武汉2lyd12345女 N武汉可使用下面的命令来装载文本文件“user.txt”到user表中: mysql LOA
16、D DATA LOCAL INFILE user.txt INTO TABLE user;,另一种向数据表中增加记录的方法是用INSERT语句 ,下面的命令是使用INSERT语句增加一条新记录: mysql INSERT INTO user - VALUES (3, jiangli, 12345, 女, , 1972-10-18, 武汉); 用户可以使用下面的命令来显示user表中的所有数据记录信息。mysql SELECT * FROM user;,下面这条指令删除数据表中的所有记录:mysql DELETE FROM user; 删除在数据表user中新增加的“ID=2”的数据记录,语句如
17、下:mysql DELETE FROM user WHERE ID=2; 要修改user数据表中的用户名为liubing的用户密码,可使用下面的语句:mysql UPDATE user SET password = 567890 WHERE ID=1;,5. 数据表记录的查询,mysql SELECT * FROM user WHERE sex= “男”;mysql SELECT * FROM user WHERE sex= 男 and ID SELECT name,birthday,sex FROM user WHERE sex= 男 ORDER BY birthday DESC;mysql
18、 SELECT * FROM user WHERE name LIKE j%;mysql SELECT sex, COUNT(*) FROM user GROUP BY sex;,7.2.4 MySQL数据库的用户权限,1. 用户权限概述 MySQL权限系统的主要功能是控制某个用户是否能够连接到指定的MySQL数据库,以及控制该用户是否具有在一个数据库中进行查询(select)、增加(insert)、更新(update)和删除(delete)的权限。,2. 建立初始的MySQL权限,为root用户增加口令: # mysql -u root mysqlmysql UPDATE user SET
19、Password=PASSWORD(new_password) WHERE user=root;mysql FLUSH PRIVILEGES;,删除匿名用户可使用下面的命令:# mysql u root pcrq mysqlmysql DELETE from user WHERE user= ;,7.2.5 MySQL数据库的备份与恢复,1. 使用mysqldump备份和拷贝数据库 mysqldump语句的命令格式如下:# mysqldump OPTIONS database tables 例如,把数据库lbuser备份到/home/lb目录。可使用如下命令:# cd /var/lib/mys
20、ql# mysqldump u root pcrq opt lbuser /home/lb/lbuser040403.sql,2. 使用直接拷贝数据库的备份和拷贝方法,下列命令给出如何将整个lbuser数据库备份到/home/lb:# cd /var/lib/mysql# cp -r lbuser /home/lb/ lbuser040403,7.3 Web程序设计语言(PHP),7.3.1 PHP简介 PHP 是一种服务器内置式的Script 语言,它的出现使得在UNIX上快速地开发动态Web网页成为现实,PHP代表的是超文本预处理器。 PHP3大量采用了C、Java和Perl语言的语法,并
21、加入了各种PHP的特征。它与JavaScript等语言的一个区别就是PHP3是在服务器端执行,客户机所看到的是其在服务器上运行的结果. PHP支持面向对象的编程,即PHP提供了类和对象,同时PHP还支持构造器、提取类等。基于Web的编程工作非常需要面向对象编程能力。,7.3.2 PHP的基础HTML语言,1. HTML 语言的结构 HTML(超文本标记语言)是一种描述文档结构的标注语言,它使用一些约定的标记对WWW上的各种信息进行标注。 HTML文件是标准的ASCII文件,且其后缀名为htm或html的文件。HTML文件看起来像是加入了许多被称为链接签(tag)的特殊字符串的普通文本文件。,武
22、汉工业学院这是一HTML的测试文件,链接签的格式为: 内容 元素名也叫链接签名。需要注意的是:(1)“)、取 1 的补()。(4)逻辑运算 逻辑运算 (logical operators) 通常用来测试真假值。小于()、小于等于(=)、等于 (=)、不等于(!=)、与(and)、或(|)、异或 (xor)、非(!)。,6. 流程控制(1)if条件语句If (expr) code_block1 elsecode_block2,(2)switch语句,switch (表达式) case 值1:code_block1 break; case 值2:code_block2 break; case 值3
23、:code_block3 break;default: code_blockn,(2)循环语句, for语句for语句用来产生一段程序循环,其语法格式如下:for ( init; test; incre)code_block, while 语句while (expr) code_block; dowhile 语句docode_block while (expr) ;,texthello;?,7.3.4 PHP连接MySQL的方法,(1)与MySQL服务器建立连接。(2)选择准备操作和使用的指定数据库。(3)发出SQL命令。用一个函数向MySQL服务器发出SQL的查询指令语句字符串。发出的字符串
24、可以是 SQL的任何 DML查询指令,包括 INSERT、DELETE等,但是要取得数据应使用SQL查询语句SELECT。查询函数会返回一个查询结果指针。(4)取得结果。上一个步骤返回的是查询的结果指针,用这个指针值就可以从查询结果中,返回特定的数据。通常会返回一笔记录,返回的类型为数组或对象。(5)关闭链接,关闭与数据库的链接。,1. 与MySQL的连接与关闭int mysql_connect(hostname:port,username,password),当要关闭MySQL连接时,可以使用mysql_close()函数。当关闭成功会返回“True”,否则返回“Flase”。语法如下:my
25、sql_close(变量),2. 数据库的选择,mysql_select_db()主要是选取所要使用的数据库,如果能成功选取数据库则返回“True”,若找不到数据库或选取失败则返回“False”。语法如下: mysql_select_db(数据库名称), 数据库的选择 ,3. 发送SQL命令,在读取数据库中的数据表之前,先要用Mysql_query()函数来将SQL命令传给MySQL来处理。该函数的语法如下:mysql_query(SQL命令或变量 , 链接指针)读取数据表可使用Mysql_fetch_field()函数,该函数的语法如下:Mysql_fetch_field(数据查询结果),
26、数据库的选择 name ;echo 所属数据表:$field-table ;echo 数据类型:$field-type ;echo 字段最大长度:$field-max_length ;elseecho 没有相关信息;?,4. 取得数据,下面的示例是在数据表中读取三条记录,并把读取结果的两个字段在浏览器中显示。, 从数据库中取打开的当前记录 ?php$dbname=lbuser;$dbtable=user;$myconn=mysql_connect(localhost,root,);mysql_select_db(lbuser);$SQL_String=Select * from user or
27、der by id ;$Exec=mysql_query($SQL_String,$myconn);mysql_close($myconn); for ($i=1;$i,本章小结本章主要讲解在Linux操作系统中如何架设与Web应用相关的服务器及程序设计语言,主要包括:Apache服务器、数据库服务器MySQL、Web程序设计语言(PHP)。在Apache服务器一节中着重介绍了Apache服务器的安装与启动方法、Apache服务器的配置方法;在数据库服务器一节中,着重介绍了MySQL的启动与安装方法、如何建立数据库、如何新建一个数据表、如何对数据表中的记录进行添加、删除、修改,如何设置数据库的存取权限、如何对数据库进行备份;在Web程序设计语言一节中,对PHP的语法、与ySQL数据库的连接方法都做了十分详细的说明。通过对本章的学习,读者应该熟练掌握以下Apache服务器地安装、启动与配置方法、MySQL服务器的安装与使用方法、P程序设计语言.,