注意版本:apache2.2+php5.2 (目前最新)
先准备好软件:
Apache官方下载地址:apache_2.2.8-win32-x86-no_ssl.msi,更多版本在这里;
php官方下载地址:php-5.2.5-Win32.zip,更多镜像下载地址,更多版本下载;
mysql官方下载地址:mysql-6.0.4-alpha-win32.zip(需要注册),更多镜像下载地址,更多版本下载。
1. 安装APACHE
先把机器安的IIS停掉,系统服务的IIA admin也要停止(如果启动了的话,因为默认安装APACHE使用也是80端口,不停掉会有冲突)在APACHE的官方网站下载到apache_2.2.8-win32-x86-no_ssl.msi,双击安装,安装时最好不要装好有空格的路径下可以安到e:/apache2下启动APACHE在IE里打入http://localhost 如果看到一个页面上面写着it works说明APACEH运行正常
一点关于apache2.2.8的全局配置
ServerAdmin webmaster@****.net 设置为管理员的邮件地址
ServerName www.****.net:80 主机名(域名、IP地址均可)及端口地址
DocumentRoot “D:/php” 网站根目录
DirectoryIndex index.php index.html index.htm index.php3 index.html.var 加入默认文档
ServerTokens Full 显示服务器信息,Full为全部,Prod为最少,建议设置为Prod,不容易暴露服务器信息
AddType application/x-httpd-php .php .phtml .php3 .php4 加入对php、phtml、php3、php4文件的支持
2.安装PHP5
在PHP的官方网站下载到php-5.2.5-Win32.zip,解压缩后把目录名改为php,复制到e:/php
把php目录下的php.ini-dist改名为php.ini复制到c:/windows(或:/winnt视操作系统而定),把php5ts.dll和libmysql复制到c:/windows/system32下
3.让APACHE可以运行PHP程序
修改c:/apaceh2/conf/httpd.conf文件
在#LoadModule ssl_module modules/mod_ssl.so的下一行加上
**(注意如果你的APACHE是2.2版本的加上下面这句)
LoadModule php5_module c:/php/php5apache2_2.dll
(注意如果你的APACHE是2.0版本的加上下面这句)
LoadModule php5_module c:/php/php5apache2.dll
在AddType application/x-gzip .gz .tgz的下一行加上
AddType application/x-httpd-php .php
保存
安装完毕,配置Apache2.2/conf文件夹下的httpd.conf文件,一般来说,有以下几个地方可能要改:
1. 找到 DocumentRoot ,将其设置为你所要存放php, htm等网页文件的文件夹,如 "e:/www";
2. 找到 <Directory ,将<Directory "">中引号内地址改为 DocumentRoot 所设的地址;
3. 找到 DirectoryIndex ,在index.html后添加index.php, index.htm等,以单个空格将其分开;
进入C:/WINDOWS 打开 php.ini 找到extension_dir = “./” 改为extension_dir = “e/php/ext”
找到
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_gd2.dll
将’;'去掉改为
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_gd2.dll
找到
;session.save_path = “/tmp”
将’;'去掉 设置你保存session的目录,如
session.save_path = ” D:/PHPServer/php5/session”;
在php.ini最底下加上一行
[Zend]
zend_extension_manager.optimizer_ts=”D:/PHPServer/ZendOptimizer/Optimizer-3.2.0″
zend_extension_ts=”D:/PHPServer/ZendOptimizer/ZendExtensionManager.dll”
说明一下,因为我这里的都是原来系统留下来的目录,所以不需要再安装Zend了,你也可以下载zend-Optimizer-3.2.0,直接安装就可以了,会自动为你备份php.ini,加上上面一段的
另外,修改默认目录的时候要注意
apache2.2在修改目录的时候,一定要修改两个地方
DocumentRoot "D:/......" 与 <Directory "D:/.....">一定要对应,不然找不到目录,嘿嘿
其他的和以前一样,另外,除了cUrl 模块 需要复制去 windows/system32 以外,其他的统统不需要复制
写一下最简单的PHP页面,里面只有一行代码
<?php phpinfo(); ?>
保存为test.php把这个文件放到e:/www(默认为e:/Apache2/htdocs)
启动APACHE浏览http://localhost/test.php
如果能看到PHP的信息,说明php5+apache2.2配置成功能
注意,如果安装后出现You don’t have permission to access / on this server.
查找httpd.conf中的
Deny from all
改为
Allow from all
apache 2.2.2 + PHP5.1.*不能运行的解决办法
下载[/B][url=http://www.apachelounge.com/download/mods/php5apache2.dll-php5.1.x.zip][B][ft=#0000ff,,]http://www.apachelounge.com/download/mods/php5apache2.dll-php5.1.x.zip[/ft][/B][/url][B]这个补丁
使用传统的模块化方法安装PHP5.1.* + apache 2.2.2 后不能启动,
提示:
“Cannot load D:/PHPServer/php5/php5apache2.dll into server: The specified module could not be found.”
原因:
PHP压缩包里的php5apache2.dll只适用于apache2.0.*
PHP5.2压缩包里的php5apache2_2.dll就没任何问题
解决方法:
下载 这个文件 并解压.共有三个文件.
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
好,开始
1.将 php5apache2.dll 改名为php5apache22.dll拷贝到PHP5的根目录下.
2.将 httpd.exe.manifest 文件复制到你的apache2安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
完成!去重启你的apache2.2,现在看看你的apache是不是已经支持php了呢,呵呵,成功了吧!
补充:
1. php.ini 配置
register_globals = On
有些程序需要该项支持,否则无法上传文件
2. 禁止浏览目录
去掉httpd.conf里所有的indexes去掉
用户将无法看到目录列表
3、编辑httpd.conf文件,在该文件中加一行
Alias /test/ “e:/php/test/”
4. 允许浏览特定的虚拟目录
Alias /test/ “D:/php/test/”
安装mysql-essential-6.0.0-alpha-win32(1).msi
因为在win环境下配置apache所以,这里用的mysql也是win版本的。解压缩之后,安装mysql6.0.0到C:/MySQL/ 目录下,并使mysql完整的安装到 mysql目录下,我这里安装为c:/MySQL,装mysql没什么具体要求,点下一步下一步的就行了,最后设定root的密码就OK。打开Windows任务管理器,看里面是否有mysql-nt.exe,有的话,就正常运行了。
phpMyAdmin-2.9.1.1的配置
将phpMyAdmin-2.9.1.1zip解压到自己定义的WEB根目录中去,重命名文件夹为phpmyadmin或其它
打开libraries目录下的config.default.php文件
$cfg[’Servers’][$i][’auth_type’] = ‘cookie’; // Authentication method (config, http or cookie based)?
这里最好设为cookie,这样,进行数据库管理的话必须需要用户名和密码才可行入,config的话就什么都不需要直接进入了数据库
$cfg[’Servers’][$i][’user’] = ‘root’; // MySQL user
$cfg[’Servers’][$i][’password’] = ‘xxxxx’; // MySQL password
Apache高级附加功能:
1.配置ActivePerl-5.8.4.810-MSWin32-x86(以支持cgi/pl)
双击下载过来的ActivePerl-5.8.4.810-MSWin32-x86.exe安装到D:/PHPServer/Perl目录下(最好安装到c:/usr)为了便于文件管理,我把perl安装到了D:/PHPServer/Perl目录下。
开始设置httpd.conf使D:/PHPServer/Apache2/cgi-bin 目录自动转化为虚拟目录(最好把cgi程序都要放在这个目录下,如果图片无法正常显示,请重启计算机,重启后一般没有问题,也可以把cgi程序放在根目录下,经过测试,放在根目录运行正常,图片也正常显示。)
(1)寻找,往下面有一句Options,把后面的参数全去掉,加一个All,注意大小写呵。再往下有一句AllowOverride,也把后面的None去掉,加一个All
(2)寻找,往下面第八行有一句Options, 把后面的参数全去掉,加一个All,注意大小写呵。再往下数行有一句AllowOverride,也把后面的None去掉,加一个All
(3)寻找#ScriptAlias /cgi-bin/ “D:/PHPServer/Apache2/cgi-bin/”,把前面的#号去掉
(4)寻找,下面有一句AllowOverride, 把后面的参数去掉,加一个All,注意大小写呵。再往下有一句Options也把后面的None去掉,加一个All
(5)寻找AddHandler cgi-script .cgi后面加上.pl ,即 AddHandler cgi-script .cgi .pl
(6)如果还想增加SSI,需把下面两行前面的#号去掉。
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddHandler server-parsed .shtml
还要注意perl脚本中的perl解释路径,必需把所有cgi或pl文件头的默认的#! /usr/Perl/bin/perl.exe 改为 #!D:/PHPServer/Perl/bin/perl.exe 即你perl.exe的绝对路径!(如果使用c:/usr目录安装就不需要更改,强烈建议普通用户把perl安装在c:/usr目录下)好了,现在已经能够成功解析cgi和pl了!
小结:这里有一个重点就是perl.exe所在的目录,安装在c:/usr目录下,可以减少很多不必要的设置(比如,设置每个cgi/pl文件头的#! /usr/Perl/bin 当然也可以使用ultraedit32来进行批量更改,我就是这样做的!)
2. ZendOptimizer255Windows-i386的安装(优化php性能)
双击下载过来的ZendOptimizer255Windows-i386.exe进行安装,在安装过程会出现选择apache的安装目录和php.ini 所在目录,一般能够自动识别,如果不能请手动查找,安装完毕后会自动启动,不需要任何设置!该软件能够自动设置php.ini以进行php执行程序的优化!
检验:编制php页面:代码如下
保存为info.php
运新info.php即可得知是否使用了zend引擎!
好了,到这里,基本上各个组件都安装全了!投入使用吧,呵呵!
支持mod_rewrite功能 开启伪静态功能
找到 LoadModule rewrite_module modules/mod_rewrite.so
去掉前面的#
在httpd.conf 文件的最下面添加下面的语句即可。
discuz 伪静态
RewriteEngine On
RewriteRule ^(.*)archiver/([a-z0-9/-]+/.html)$ archiver/index.php?$1
RewriteRule ^(.*)forum-([0-9]+)-([0-9]+)/.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^(.*)thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ viewthread.php?tid=$1&extra=page/%3D$3&page=$2
RewriteRule ^(.*)profile-(username|uid)-(.+)/.html$ viewpro.php?$1=$2
phpcms伪静态
RewriteEngine On
RewriteRule ^(.*)show-([0-9]+)-([0-9]+)/.html$ $1/show.php?itemid=$2&page=$3
RewriteRule ^(.*)list-([0-9]+)-([0-9]+)/.html$ $1/list.php?catid=$2&page=$3
RewriteRule ^(.*)show-([0-9]+)/.html$ $1/show.php?specialid=$2