目录:
tip:安装时尽量安装到一个目录下
apache-2.2.22 点击下载、php-5.3.13 点击下载 、mysql-5.5.24 点击下载
httpd.conf
( 所在目录为 apache安装目录/conf ),在其中添加以下配置#载入php模块 "E:\amp\php-5.3.13\php5apache2_2.dll" 是php模块的安装路径(这里改为自己 php 的安装路径)
LoadModule php5_module "E:\amp\php-5.3.13\php5apache2_2.dll"
指定php后缀的的文件应该调用该php模块去执行(有两种方法可实现)
在httpd.conf
文件中添加以下配置:
#指定 php 后缀的文件应该调用该php模块去“执行”
"\.php$">
setHandler application/x-httpd-php
或在 IfModule mime_module
标签中末尾添加以下配置:
#指定 php 后缀的文件应该调用该php模块去“执行”
#设定了3种文件后缀(.php、.php3、.xxx 可以自定义执行后缀)都由php模块来“执行”
AddType application/x-httpd-php .php .php3 .xxx
这个时候就已经可以运行 php 脚本代码了
这时虽可以运行php脚本代码了,但是还不能满足开发需求,比如:时间函数的使用、数据库的连接……,我们还需对 php 的进一步配置。
打开php的安装目录其中 php.ini 前缀的文件就是 php 的配置文件模板,选其一复制改名为 php.ini
这个时候 apache 只知道 php 代码要使用 php模块来执行,但是不知道 php 模块用什么文件去配置,需要指定 apache 去使用 php.ini 来配置 php。
指定php配置文件(php.ini)的位置
在 httpd.conf
文件中添加以下配置:
#设置 php.ini 文件的位置(只需设定文件夹)
PHPIniDir "E:\amp\php-5.3.13"
将路径设置为 php 的安装路径
为 php 配置时区
在 php.ini
文件中查找 timezone 字段,设置为 PRC(中国时区),这时就可以使用时间函数了(可使用 date() 函数测试)。
date.timezone = PRC
php虽然本身是作为 apache 的一个模块,被 apache 调用,但是,php作为一个完整的语言包,其内部又是有很多个“子模块”构成。mysql 也是其中之一。
打开 php.ini
中的 mysql 模块的注释(这里开启三种使用 mysql 的子模块)
这个时候还是不可以用,因为 php 找不到 mysql 的模块文件。就和 apache 中配置 php 模块一样的,不过有点区别,php 的子模块都集中存放在安装目录下 ext 目录中。
php 中 配置常用子模块的物理路径(其中包括 mysql 模块),在 php.ini
中搜索 extension_dir
关键字,设置为php安装目录下的 ext 文件夹路径。
#配置 php 常用子模块路径
extension_dir = "E:\amp\php-5.3.13\ext"
重启apache服务器,mysql 数据库就可以使用了。
apache的端口监听设置,是指设定apache这个软件针对当前服务器的哪些端口提供web服务。如果需要多端口监听,则需配置多个端口。打开 httpd.conf
,配置方式如下:
#对80端口提供服务
Listen 80
#对81端口提供服务
Listen 81
#对82端口提供服务
Listen 82
一个主机(站点),最核心的就两件事:
主机(站点)的名字:ServerName
“主机名”
主机(站点)的实际文件夹位置:DocumentRoot
“站点的实际完整路径”
apache 的作用其实就是一个”转换”角色:将当前电脑中的某个文件夹,对外以某个域名(站点)的方式展现出来。
换句话说:站点的本质就是一个文件夹。
我们可以在 httpd.conf 中来修改它。
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName www.test.com:80
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "E:/amp/apache/htdocs"
"E:/amp/apache/htdocs">
#当无可显示网页的时候,可显示文件列表
Options Indexes
#设置权限的排判断顺序,先允许,后拒绝
Order allow,deny
#表示允许所有用户访问
Allow from all
#表示拒绝 192.100.1.1 这个用户访问
Deny from 192.100.1.1
打开 apache 的 httpd.conf
检索 DirectoryIndex 修改即可
#这里就配置了三种默认网页,如果你访问的地址不存在,那么就会在这三种之中依次查找显示
DirectoryIndex index.html index.php xindex.html
--------------------------------------------------------------------------------------
#如果在文件夹访问权限中配置 DirectoryIndex 那么只在该文件夹中生效
"E:/amp/apache/htdocs">
Options Indexes
Order allow,deny
Allow from all
Deny from 192.100.1.1
#配置了三种默认网页
DirectoryIndex index.html index.php xindex.html
目录别名也叫虚拟目录,在一个站点中,如果不存在某个文件夹(目录),我们可以通过配置项,来做到“对外”看起来却存在一样。假设站点中不存在 test 目录,我们需要打开 httpd.conf,检索到 alias_module
,在其中添加配置 :
#将虚拟目录转到 C:Demo/work 目录下
Alias /soft "C:Demo/work"
通常,我们在 httpd.conf
配置文件中,使用 Directory 配置项,目的是用来控制文件夹的访问权限。
但我们也可以使用一个独立的文件来控制某文件夹的访问权限。该文件名必须是:.htaccess
AllowOverride All
首先,在
httpd.conf
中打开多站点配置文件:检索httpd-vhosts.conf
将其注释打开
注意:一旦进行多站点配置,则原来httpd.conf中的默认站点配置就失效了
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
打开该文件(
httpd-vhost.conf
)该文件在 apache 安装目录conf/extra/httpd-vhost.conf
设置要进行多站点配置的 ip 和端口 形式如下:
# "*"可以代表当前服务器的所有IP地址(通常也就一个)
NameVirtualHost *:80
#配置站点1
80>
DocumentRoot "E:\amp\apache\htdocs\php_work1"
ServerName www.test1.com
"E:\amp\apache\htdocs\php_work1">
Options Indexes
AllowOverride All
Order allow,deny
allow from all
DirectoryIndex index.php index.html index.htm
#配置站点2
80>
DocumentRoot "E:\amp\apache\htdocs\php_work2"
ServerName www.test2.com
ServerAlias test2.com
"E:\amp\apache\htdocs\php_work2">
Options Indexes
AllowOverride All
Order allow,deny
allow from all
DirectoryIndex index.php index.html index.htm
在应用中,我们常常可以使用一下两种形式来访问一个站点:www.test.com、test.com。通常,现在越来越流行后者。此时,就相当于两个站点(主机名)但访问的是一个内容,此时就需要使用主机别名来实现:
80>
DocumentRoot "E:\amp\apache\htdocs\php_work1"
ServerName www.test.com
#主机别名(可设置多个,前提:需要在dns服务器注册)
ServerAlias test.com test1.com test2.com
"E:\amp\apache\htdocs\php_work1">
Options Indexes
AllowOverride All
Order allow,deny
allow from all
DirectoryIndex index.php index.html index.htm
修改 httpd.conf 和 php.ini 一定要重启 apache 服务器,否则不会生效
调试时一定注意浏览器缓存,及时清理,防止数据不准确
调试时使用域名访问失败时,检查域名是否在 C:\Windows\System32\drivers\etc\hosts 中配置