4.Apache服务器工作机制分析
7.虚拟主机的配置
1.搭建php开发环境。
apache默认情况下不会处理php页面,需要搭建php开发环境。
a.套件安装 appserver、wmap这些软件将所需软件打包 缺点是不灵活,升级困难。
b.自定义安装
注意这里安装版本为apache2.2 php-5.3.5-Win32-VC6-x86 版本,不同版本安装方法有区别,特别是win7系统下 安装可能不成功。
step1:安装 apache
apache安装界面如下图所示:
安装完毕后需要配置环境变量,环境变量设置后可以在任意路径后使用。配置环境变量如下图所示:
a.开启或者关闭apache服务
(1)通过用户界面控制 在Window中通过[管理]-->服务来管理或者通过apache自带用户界面管理.
Window中通过[管理]开启服务如下图所示:
通过apache自带用户界面管理开启服务如下图所示:
step1:进入控制台后运行httpd.exe程序
step2:httpd -k start[shutdown][restart]启动
b.浏览器中输入http://localhost测试,测试成功时效果如下图所示:
step2:安装php
解压php-5.3.5-Win32-VC6-x86(注意vc6版本适合apache和php
a.将以下代码复制到apache中:
#让apache载入php处理模块
LoadModule php5_module c:\myenv\php\php5apache2_2.dll
#指定php的ini文件 该文件保存php配置
PHPIniDir "c:\myenv\php"
#配置表示*.php文件由php处理
AddType application/x-httpd-php .php
b.将php.ini-development文件改成php.ini
c:测试apache与php整合成功
测试文件test.php代码如下:
<?php
phpinfo();
?>
测试成功时效果如下图所示:
MySQL安装界面如下图所示:
![](https://img-my.csdn.net/uploads/201205/20/1337509007_4082.jpg)
![](https://img-my.csdn.net/uploads/201205/20/1337509025_1748.jpg)
MySQL安装成功与否的测试文件test.php,代码如下:
- <?php
- $conn=mysql_connect("localhost","root","root");
- if($conn)
- {
- echo "连接mysql数据库成功!";
- }
- else
- {
- echo "连接数据库失败!";
- }
- ?>
在没有配置时提示错误:Fatal error: Call to undefined function mysql_connect() in C:\myenv\Apache\htdocs\test.php onlini文件中关于 php_mysqli.dll和php_mysql.dll两个动态链接库.
补充:如果机器,由于先前某些安装不正确,安装不正确的服务如下图所示:
要删除一些服务方法有两种:
a.运行sc.exe 在上面运行 sc delete 服务名
如下图所示:
(1)web开发分为:
a.静态web开发(html页面) 一个页面始终是一成不变的,则属于静态web开发,利用html技术就好。
b.动态web开发() 比如网站上要发帖、网上支付、发短信、发邮件等功能,就需要数据交互,属于动态web开发。动态页面的数据由后台程序产生的,不同时间点访问网站看到不同内容。
(2)动态页面技术 php、jsp、asp--->asp.net 、cgi(linux)
(3)动态网页技术发展历程 html在1993年出现后为了弥补其不能和用户进行交互,陆续出现了下列网页技术:
a.cgi技术 是最早动态网页技术,发展比较成熟且功能强大。但是cgi语言效率比较低,编程比较困难。现在应用较少,主要用于linux/unix 下.
b.微软asp asp是html+javascrip(vbscript)+com组件形式asp的功能强大,但是其需要com组件支持,而开发com组件开发比较困难的,另外asp是与windows系统和iis一起工作的,安全性较低,跨平台性差,实现企业级的功能困难。
c.sun公司 (后被oracle收购)jsp jsp=html+java片段+jsp语法+js
一次编写,到处运行,良好的跨平台性;但是jsp产品的复杂度高,jsp运行要求机器配置高.
d.php 目前由Zend管理www.php.net
跨平台性良好,多种数据库支持 效率较高,具有良好的安全性,免费使用成本低,开放源代码,上手快,面向对象程序设计。缺点是安装复杂,配置比较多;数据类型太灵活,解释执行,所以有些错误到运行时才会暴露。
(4)php 最早用户维护个人主页Personal HomePage, php Hyperttext Preprocessor,php是一种html内嵌语言,是一种在服务器端执行的嵌入html(<?php //php 代码 ?>)文档的脚本语言,语言风格类似于c语言,被广泛的运用,php目前的开发和商业化由Zend公司负责。
(5)开发工具 EditPlus Zend Studio PHP Coder phpedit easyeclipse dw
补充:软件开发的一个原则:编译环境和运行环境要一致。
3.B/S和C/S结构的比较
服务器在这里是指安装了服务器程序的计算机
(1)B/S Browser浏览器/Server服务器
B/S结构如下图所示:
b.成本低,管理维护简单,升级产品便利
c.用户使用方便,对用户培训费用低。
缺点:安全性不足,客户端不能随心变化,受浏览器的限制。
(2)C/S Client客户端/Server服务器
C/S结构如下图所示:
4.apache工作机制分析
apache基于模块化设计的,总体上看起来代码的可读性高于php的代码。
apache启动阶段:
开始--》解析配置文件--》加载静态/动态模块--》系统资源初始化--》结束
apache模块化设计如下图所示:
5.端口
(1)实际开发中,我们经常使用 netstat -an 来查看哪些端口在监听,如果发现异常端口在监听,则可以关闭该端口 使用命令netstat -anb 查看那个进程在监听,然后使用taskkill关闭该进程。
netstat -an命令使用如下图所示:
netstat -anb命令使用如下图所示:
(3)端口占用时可以通过修改apache的监听端口来解决。
apache软件的配置是在httpd.conf文件中进行相应的配置,默认端口号为80,如下图所示:
修改默认端口为81后,测试如下图所示:
补充:apache可以监听多个端口.
6.apache目录、虚拟目录apache目录文件说明如下图所示:
虚拟目录问题由来:假设apache的安装目录磁盘空间不够,而D盘空间足够,如何将d盘中的文件作为站点文件访问。
(1)虚拟目录配置两个步骤:step1:配置虚拟目录在apache的conf目录下httpd.conf的<ifModule dir_module>节点后添加如下代码:
#添加虚拟目录
<ifModule dir_module>
#欢迎页面
DirectoryIndex index.html index.htm index.php
#站点别名
Alias /webtest "d:/webtest"
<Directory d:/webtest>
#访问权限设置
Order allow,deny
Allow from all
</Directory>
</ifModule>
step2:注销Documentroot部分
(2)文件权限设置
<Directory d:/webtest> //
#访问权限设置
Order allow,deny //Order allow允许所有ip,deny拒绝所有
Allow from all //允许所有 最终允许所有
</Directory>
</ifModule>
7.虚拟主机的配置
虚拟主机问题由来:访问http://localhost方式不够方便和美观,怎么才能配置像www.baidu.com这种域名.
配置虚拟主机的方法如下:
step1:启用httpd-vhosts.conf文件 在httpd.conf中找到Virtual hosts部分,取消include注释.
# 配置虚拟机Virtual hosts
Include conf/extra/httpd-vhosts.conf
step2: 在conf/extra/httpd-vhosts.conf中添加虚拟主机配置
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@dummy-host.mshome.net
DocumentRoot "d:/webtest"
ServerName dummy-host.mshome.net
ServerAlias www.dummy-host.mshome.net
#配置欢迎页面
DirectoryIndex index.html index.htm index.php
<Directory />
Options FollowSymLinks
#不许可别人修改我们的页面
AllowOverride None
#访问权限设置
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
step3:修改hosts文件
hosts文件位于:C:\Windows\System32\drivers\etc .
以重定向到www.baidu.com为例,在hosts文件为加上:
127.0.0.1 localhost
127.0.0.1 www.baidu.com
两行。
或者使用DOS控制台命令也可以,如下图所示:
虚拟主机重定向效果如下图所示: