PHP自定义环境搭建(apache、php)
1、软件下载:
PHP下载地址:http://windows.php.net/download 根据自已的情况下载相应版本的程序
说明:VC14:Microsoft Visual C++ 2015
VC11:Microsoft Visual C++ 2012
VC9:Microsoft Visual C++ 2008
下载VCxx版本的程序需要对应的Microsoft Visual C++版本的支持。
X86:32位操作系统
X64:64位操作系统
(Non) Thread safe : (非)线程安全
Apache下载地址:http://www.apachehaus.com/cgi-bin/download.plx#REDIST14
在这里提供VCxx的下载。
2、安装
php和apache都是免安装版本,直接解压出来放到C:盘根目录即可(或其他路径下)
例:C:\Apache24;C:\php5
3、配置
PHP: a、将C:\php5、C:\php5\ext加入到环境变量path中(C:\php5;C:\php5\ext;)
b、将C:\php5\php.ini-production复制一份,并重命名为php.ini,打开php.ini文件
去掉extension_dir = "C:/php5/ext"前面的;//设定模块所在路径;修改为指向php语言包中ext这个目录的“完整物理路径”
去掉extension=php_mbstring.dll前面的;//
去掉extension=php_mysql.dll前面的; //mysql数据库驱动,php5.0以前使用
去掉extension=php_mysqli.dll前面的;//mysql数据库驱动
去掉date.timezone = 前面的; 并且赋值为PRC date.timezone = PRC //设置时区为:中国时区
Apache:
a、打开C:\Apache24\conf\ httpd.conf
修改ServerRoot为apache所在路径
去掉ServerName前面的;
修改DocumentRoot为web应用项目的目录(默认为c:/Apache24/htdocs),同时修改<Directory "c:/Apache24/htdocs">的路径。
修改DirectoryIndex为:DirectoryIndex index.html index.php index.htm
修改ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"的c:/Apache24为apache所在路径。同时修改<Directory "c:/Apache24/cgi-bin">的c:/Apache24 为apache所在路径。
b、在最后一行添加:
LoadModule php5_module "C:/php5/php5apache2_4.dll" //装载PHP模块,需要给出php5apache2_4.dll文件的完整路径
AddType application/x-httpd-php .php .html .htm //告诉apaceh,以.php,.html,.htm结尾的文件交由php语言模块处理
也可以用下面语句代替上面的写法:
<FilesMatch "\.php$">
setHandler application/x-httpd-php
</FilesMatch>
//告诉apache服务器,凡是.php后缀文件,找php语言模块解析(也可以指定其他后缀文件,比如:.pag文件。后缀文件只是代表文件分类)
PHPIniDir "C:/php5" //告诉apache服务器,PHP.ini文件的位置(只需指出ini文件所在目录)
c、监听配置:
Listen 80 //设置apache服务器监听的端口,可以修改或增加多端口监听或以ip:port的形式
d、站点配置
一个站点的2个核心信息为:
ServerName(服务器名):
DocumentRoot(实际物理路径):
目录访问权限:
一个站点,就是一个目录
每个目录,都应该给其设定“访问权限”,语法如下:
<Directory "要设置权限的目录路径"
#设置当一个请求中没有给定请求的文件名又没有默认首页的时候,显示文件列表
Options Indexes
#设置权限控制的先后顺序,只有2种:Deny,Allow(先拒绝,后允许),Allow,Deny(先允许,后拒绝)
Order Deny,Allow
#Deny用于设定要拒绝访问的来源地址或服务器名,几乎没有实际意义
Deny from 拒绝名单 #比如:Deny from 192.168.0.1 192.168
Allow from 允许名单 #比如:Allow from all
#设置该文件夹下的默认首页,可以设置多个(按从左到右的顺序找第一个有效的文件名)
DirectoryIndex index.php default.html
</ Directory>
目录访问的分布式权限:
可以针对Directory 标签设置的目录下的任意子目录进行权限访问控制。
第1步:
在Directory 标签中添加如下语句:
#表示当前目录允许分布式权限配置
AllowOverride all
第2步:
在该目录下需要设置权限访问控制的目录中,创建一个特殊文件(.htaccess 用edit等高级编辑器创建,一般新建文件无法达成)
然后在该文件中写所需要的权限内容,如:
Deny from all
Allow from 192.168.0.3
多站点配置
在多站点配置中,第一个站点被称为默认站点,如果某个请求无法跟任何一个站点匹配,就会当做是请求的是默认站点去处理
1、打开Apache的配置文件httpd.conf,将#Include conf/extra/httpd-vhosts.conf前面的#去掉,加载多站点配置文件
2、打开httpd-vhosts.conf配置文件,添加(开启)NameVirtualHost *:80
3、配置多站点项
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
<Directory "c:/Apache24/docs/dummy-host.example.com"
Options Indexes
Order Deny,Allow
Allow from all
DirectoryIndex index.php default.html
AllowOverride all
</Directory >
Alias /虚拟目录 "真实存在的目录路径" #1、设置虚拟目录
<Directory "真实存在的目录路径" #2、设置虚拟目录
Options Indexes
Order Deny,Allow
Allow from all
DirectoryIndex index.php default.html
AllowOverride all
</Directory >
</VirtualHost>
4、如果是本机测试,需添加:IP:域名对应关系到hosts文件中
检测Apache配置语法的命令:
打开CMD,进入C:\Apache24\bin目录
httpd -t
如果配置没有问题,返回:Syntax OK;否则返回具体的错误信息。
注意:修改apache配置文件 后,必须重启apache服务器,配置才会生效。
4、运行CMD
在apache/bin输入 httpd -k install 生成windows服务(如果存在可以用 http -k uninstall先删除)
5、最后测试OK!