Windows下配置Apache支持PHP

1、打开cmd ,输入 
F:  // 切换到Apache安装路径,我的Apache安装目录在 F盘

思路:

2、cd F:\Apache\bin

首先安装 Apache ,并确保
Apache
能正常运作。安装具体步骤方法可参考我的另一篇文章:《Windows下安装Apache2.2.x》(

3、set “openssl_conf = F:\Apache\conf\openssl.cnf”

其次就是安装 PHP ,并配置 Apache 支持 PHP 。

  临时设置openssl_conf路径,也可在环境变量中建新项目,键为 OPENSSL_CONF,值为 F:\Apache\conf\openssl.cnf
(看自己的安装路径),不然在生成key时会报“WARNING: can’t open config
file: c:/openssl-1.0.2j-win64/ssl/openssl.cnf”错误。

有两种方法在 Windows 下让 Apache 支持 PHP :使用Windows的环境变量或者
Apache 自身的支持。

4、openssl genrsa -out server.key 1024  // 生成私密key

安装前需要从 下载 PHP 的 ZIP
二进制发布包。虽然目前有很多多合一的安装包,而且也发布了一个 Microsoft
Windows 的 PHP
安装程序,但是仍然建议用户花些时间自己手动安装PHP。因为这样才可以更加了解这套系统,并能够在需要的时候更方便的安装
PHP 扩展。

5、copy server.key
server.key.org  // 复制server.key 防止启动Apache要密码

方法一:使用Windows 环境变量

6、openssl rsa -in server.key.org -out server.key

1、第一步,要确保Apache能正确找到PHP和相关的DLL扩展。

7、openssl x509 -req -days 365 -in server.csr -signkey server.key -out
server.crt  // 生成证书,会要求填写国家、省份、城市、域名、邮箱等信息

PHP 5.0版以前官方建议将 php.ini 和多个 DLL 文件移动到系统文件夹(例如
C:\WINDOWS)。这一步骤虽然简化了安装过程,却导致升级上的困难。建议在使用新版本的
PHP 前删除所有这些文件(比如从 Windows 系统文件夹删除 php.ini 和 PHP
相关的 DLL
文件)。务必在删除前备份这些文件,因为这一操作可能破坏整个系统。原有的
php.ini 在安装新版本的 PHP 时也可用来参考。不久用户便会明白,安装 PHP
最好的方式便是将所有 PHP 有关的文件都放入同一目录,并在系统的 PATH
环境变量中设置此目录。

8、配置Apahce  !!!  核心步骤 !!!

将下载下来的 PHP 5.2.x 的ZIP压缩包解压到目的目录,比如 C:\php
,我是解压到了 E:\usr\php
。可以选择其它的路径但最好不要用中间有空格的路径(例如:C:\Program
Files\PHP 就不太好),如果这样做有些 web 服务器会崩溃。

8.1 在http.conf文件中去掉下面代码前的#号

#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf

8.2 修改 F:/Apache/conf/extra/httpd-ssl.conf 文件

<VirtualHost _default_:443>
    DocumentRoot "F:/Apache/htdocs/ushark.net"
    ServerName www.ushark.net:443
    SSLCertificateFile "F:/Apache/bin/server.crt"
    SSLCertificateKeyFile "F:/Apache/bin/server.key"
</VirtualHost>

PHP在Apache下的安装可以以服务器模块方式或 CGI 可执行程序方式安装,还有个
CLI 版本是为使用 PHP 命令行脚本而设计的。服务器模块比 CGI
可执行程序提供了更好的性能和更多的功能。所以我主要介绍服务器模块安装方式。

 

CGI 和 CLI 可执行文件以及 web 服务器模块都需要
php5ts.dll(php4ts.dll,php4中使用),必须确认该文件可以在 PHP
安装路径中找到。对该 DLL 的搜索顺序为:

9、配置http自动跳转到https,在
httpd-vhosts.conf 文件中编辑如下内容,也可参考这篇文章:

  • 调用 php.exe 时所在的目录,或者若使用 SAPI 模块时,web
    服务器的目录(例如 C:\Program Files\Apache Group\Apache2\bin)。
  • 任何在 Windows 的 PATH 环境变量中指定的目录。

<VirtualHost *:80>
  DocumentRoot “F:/Apache/htdocs/ushark.net”
  ServerName www.ushark.net
  Redirect /
https://www.ushark.net/  # !!! 核心代码 !!!
</VirtualHost>

要让 php4ts.dll / php5ts.dll
能正确被搜索到,有下面三个选择:复制该文件到 Windows
系统目录;复制该文件到 web 服务器的目录;或者把 PHP 目录(例如
C:\php)添加到 PATH
环境变量中。为了将来更好的维护,建议使用最后一个选择,将 PHP 目录添加到
PATH 环境变量中,因为这样更便于将来升级 PHP。

 

①将 PHP 目录加入到 Windows 路径 PATH 中去

10、httpd -k restart  // 重新启动Apache,报错的话就查找相应原因解决

在 Windows NT,2000,XP 和 2003 下:

图片 1

  • 进入控制面板并打开“系统”图标(开始 -> 设置 -> 控制面板 ->
    系统,Windows XP/2003 中是:开始 -> 控制面板 -> l系统)
  • 选择“高级”标签页
  • 点击“环境变量”按钮
  • 在“系统变量”栏中
  • 找到 Path 这一项(可能需要向下滚动才能找到)
  • 鼠标双击 Path 这一项
  • 在最后加入你的 PHP 目录,包括前面的英文分号“;”(例如:;C:\php
    ,我的路径是 ;E:\usr\php )
  • 点击“确定”并重新启动电脑

②使 php.ini 文件在 Windows 下被 PHP 所用

(这一步很重要,我实验了的,如果没有这一步,PHP 将搜寻不到 php.ini )

在 Windows NT,2000,XP 和 2003 种:

  • 进入控制面板并打开“系统”图标(开始 -> 设置 -> 控制面板 ->
    系统,Windows XP/2003 中是:开始 -> 控制面板 -> l系统)
  • 选择“高级”标签页
  • 点击“环境变量”按钮
  • 在“系统变量”栏中
  • 点击“新建”按钮并在“变量名”中输入“PHPRC”,在“变量值”中输入 php.ini
    文件所在的目录(例如:C:\php)
  • 点击“确定”并重新启动电脑

2、下一步是为 PHP 设置一个有效的配置文件,php.ini 。

在 ZIP 包中有两个 ini 文件,php.ini-dist 和
php.ini-recommended。官方手册中建议使用
php.ini-recommended,因为在该文件中优化了性能和安全。请仔细阅读该文件中的注释,因为它从
php.ini-dist 修改而来,会对设置产生较大的影响。例如将 display_errors
设置为 off,将 magic_quotes_gpc 设置为
off。除了阅读这些部分,还可以学习一下 ini
设置,并手动设置每一个配置项目。如果想要最安全的设置,这是最好的方法,虽然
PHP
在默认配置下也是很安全的。对于PHP的初学者来说,我建议用php.ini-dist,因为在该文件中将
display_errors 设置为
on,这样你在调试PHP代码时,会有错误提示,方便调试PHP代码调试。复制所选择的
ini 文件到 PHP 能找到的目录中,并将其重命名为 php.ini。比如我把将
php.ini-dist 复制到E:\usr\php,并命名为php.ini 。

3、确保在 php.ini 中正确设定了 extension_dir 和 doc_root 指令的值。

这些指令依赖于 PHP 被安装的系统。打开php.ini
文件,搜索“extension_dir”,在 PHP 4 中,extension_dir 是 extensions
而在 PHP 5 中是 ext 。因此在 PHP 5 中 extensions_dir 的一个取值例子是
“c:\php\ext”。比如我的php目录是E:\usr\php,所以我将这里的
extensions_dir 的值设置成 E:/usr/php/ext 。即:extensions_dir =
E:/usr/php/ext 。

注意,php.ini 中的路径可以写成“E:/usr/php/ext
“,也可以写成“E:\usr\php\ext
”,就是斜线(/)与反斜线(/)的区别。php.ini
中用斜线(/)或反斜线(/)都可以。Windows中是用斜线(\)表示路径分隔符,Unix和Linux中用反斜线(/)表示路径分隔符。所以从兼容
性出发,推荐用反斜线(/)。如果路径中有空格,就要用英文引号(“)括起来,但Unix和Linux中路径是不允许包含空格的,所以Windows下的
路径最好也不要有空格。下面的同理。

然后在php.ini中搜索“doc_root”,这个是你的WEB根目录。IIS 的 doc_root
的取值例子是 “c:\Inetpub\wwwroot”;Apache的 doc_root 默认是安装目录的
htdocs 文件夹,比如我的是 E:\usr\Apache2.2\htdocs(我把Apache安装在
usr 目录下了)。所以我写的例子是:doc_root = E:/usr/Apache2.2/htdocs

4、配置 Apache ,让其支持PHP。

将以下两行加入到 Apache 的 httpd.conf 配置文件中以设定 Apache 2.0 的 PHP
模块:

# 对 PHP 4 用这两行:

LoadModule php4_module “c:/php/php4apache2.dll”

# 别忘了从 sapi 目录中把 php4apache2.dll 拷贝出来!

AddType application/x-httpd-php .php

# 对 PHP 5 用这两行:

LoadModule php5_module “c:/php/php5apache2.dll”

AddType application/x-httpd-php .php

注意:记得用自己 PHP 实际所在的路径替换掉上例中的 c:/php/。要留意在
LoadModule 指令中用的是 php4apache2.dll 或 php5apache2.dll,而不是
php4apache.dll 或 php5apache.dll,后者是设计用于 Apache 1.3.x
的。特别要注意的是,Apache2.2版本要用 php5apache2_2.dll 。Apache
配置文件中的路径分隔符一律用反斜线(/)表示。

======================================================================================

方法二:Apache 自身的支持

Apache自身就集成了对 PHP 的支持,只需简单配置下即可协同工作了。

将下载下来的 PHP 压缩包解压后, 按照前面的方法为 PHP
设置一个有效的配置文件 php.ini ,并且在 php.ini 中正确设定了
extension_dir 和 doc_root 指令的值。

将以下三行加入到 Apache 的 httpd.conf 配置文件中以设定 Apache 2.x 的 PHP
模块:

# 对 PHP 5 用这两行:

LoadModule php5_module “c:/php/php5apache2.dll”

AddType application/x-httpd-php .php

# 配置 php.ini 的路径

PHPIniDir “C:/php”

注意,PHP 路径换成你自己的路径。特别要注意的是,Apache2.2版本要用
php5apache2_2.dll 。Apache
配置文件中的路径分隔符一律用反斜线(/)表示。

可以看到,仅仅多了个配置 php.ini 的指令。该指令只在 Apache 2 中有效。

至此,整个Apache下配置PHP完成,你可以建一个包含phpinfo()函数的php文件,测试PHP在
Apache 下是否配置成功。测试文件内容如下:

  <?php
  echo phpinfo();
  ?>

注意查看其中的“Configuration File (php.ini) Path”项或者“Loaded
Configuration File ”项是否指向你的 php 目录。查看 PHP Core
部分的“extension_dir”项是否指向你的 php 扩展目录。

将index.php设置为默认首页
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

将服务器网站启动目录设置到d:\php
首先修改
DocumentRoot 的值为 d:/php

DocumentRoot “d:/php”

然后修改节点塑像为<Directory “d:/php”>


发表评论

电子邮件地址不会被公开。 必填项已用*标注