拜托,下载线程版本。我花了超过一个小时试图找出为什么找不到 php5apache2.dll,并且在拼命查看手册时,我进入了 php 5 结构并发现它在非线程版本中不存在。
这确实需要在其他地方提及,而不是在 PHP 5 结构中,例如主页左侧关于选择哪个 PHP 版本的段落,或本文档中介绍 Apache 的部分...除了结构之外的任何地方,说真的。我永远不会想到去那里查看。
本节包含在 Microsoft Windows 系统上安装 Apache 2.x 的 PHP 版本的特定说明和提示。
注意:
请先阅读手动安装步骤!
强烈建议您查阅» Apache 文档,以便对 Apache 2.x 服务器有一个基本的了解。在继续阅读本文档之前,也请考虑阅读» Apache 2.x 的 Windows 特定说明。
下载最新版本的» Apache 2.x和相应的 PHP 版本。按照手动安装步骤操作,然后返回继续进行 PHP 和 Apache 的集成。
有三种方法可以设置 PHP 以与 Windows 上的 Apache 2.x 配合使用。PHP 可以作为处理程序、CGI 或在 FastCGI 下运行。
注意:请记住,在 Windows 上的 Apache 配置文件中添加路径值时,所有反斜杠(如c:\directory\file.ext)都应转换为正斜杠:c:/directory/file.ext。目录可能还需要尾部斜杠。
注意:使用 apache2handler SAPI 时,必须使用 PHP 的线程安全 (TS) 版本。
要加载 Apache 2.x 的 PHP 模块,必须在 Apache 的httpd.conf配置文件中插入以下行
示例 #1 PHP 和 Apache 2.x 作为处理程序
# before PHP 8.0.0 the name of the module was php7_module LoadModule php_module "c:/php/php8apache2_4.dll" <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # configure the path to php.ini PHPIniDir "C:/php"
注意:在以上示例中,必须用 PHP 的实际路径替换C:/php/。确保
LoadModule
指令中引用的文件位于指定位置。对于 PHP 7,使用php7apache2_4.dll,对于 PHP 8,使用php8apache2_4.dll。
强烈建议您查阅» Apache CGI 文档,以更全面地了解在 Apache 上运行 CGI。
要以 CGI 方式运行 PHP,需要将 php-cgi 文件放置在使用 ScriptAlias 指令指定为 CGI 目录的目录中。
需要在 PHP 文件中放置一行#!
,指向 PHP 二进制文件的位置
示例 #2 PHP 和 Apache 2.x 作为 CGI
#!C:/php/php.exe <?php phpinfo(); ?>
以 CGI 模式部署的服务器容易受到多种潜在漏洞的攻击。请阅读我们的CGI 安全部分,了解如何防御此类攻击。
在 FastCGI 下运行 PHP 比作为 CGI 运行它有很多优势。以这种方式设置它非常简单
从» https://www.apachelounge.com获取mod_fcgid
。该站点提供 Win32 二进制文件供下载。按照附带的说明安装模块。
如下所示配置 Web 服务器,注意调整任何路径以反映其在系统上的安装方式
示例 #3 配置 Apache 以 FastCGI 方式运行 PHP
LoadModule fcgid_module modules/mod_fcgid.so # Where is the php.ini file? FcgidInitialEnv PHPRC "c:/php" <FilesMatch \.php$> SetHandler fcgid-script </FilesMatch> FcgidWrapper "c:/php/php-cgi.exe" .php
.php
的文件将由 PHP FastCGI 包装器执行。
拜托,下载线程版本。我花了超过一个小时试图找出为什么找不到 php5apache2.dll,并且在拼命查看手册时,我进入了 php 5 结构并发现它在非线程版本中不存在。
这确实需要在其他地方提及,而不是在 PHP 5 结构中,例如主页左侧关于选择哪个 PHP 版本的段落,或本文档中介绍 Apache 的部分...除了结构之外的任何地方,说真的。我永远不会想到去那里查看。
在配备四核 AMD A6-3400M 的 Gateway NV75S 笔记本电脑上,在 Windows 7 家庭高级版上安装 Apache 和 PHP
我只需要使用这些程序在我的笔记本电脑上测试我的网站。我有 HTML 和 PHP 文件。我不需要 MySQL,因为我使用 html5 存储。
获取和安装 Apache
1 在您的浏览器中,转到 h t t p : / / h t t p d . a p a c h e . o r g / d o w n l o a d . c g i
(无空格)
2 点击 httpd-2.2.22-win32-x86-no_ssl.msi
(这是一个无加密的自安装可执行文件...无安全套接字层)
(2.2.22 是 2012 年 4 月 25 日的最新版本)
3 下载后点击 httpd-2.2.22-win32-x86-no_ssl.msi 文件
(在 Chrome 中单击文件选项卡一次,或在下载中双击实际文件)
4 点击下一步
5 点击我接受许可协议中的条款
6 点击下一步
7 点击下一步
8 在顶部的框中输入 localhost
9 在中间的框中输入 localhost
10 在底部的框中输入 [email protected]
11 点击下一步
12 点击下一步
13 点击下一步
14 点击安装并等待
15 点击是允许程序进行更改
16 点击完成
测试 Apache
1 在浏览器位置框中输入 localhost(我使用 Chrome)或输入 h t t p : / / l o c a l h o s t
(无空格)
2 应该会出现消息 It works!。
获取和安装 PHP
1 在您的浏览器中,转到 h t t p : / / w i n d o w s . p h p . n e t / d o w n l o a d /
(无空格)
2 点击 PHP 5.3(5.3.10)VC9 x86 线程安全下的安装程序链接
(忽略侧面板上的“不要将 VC9 版本与 apache.org 二进制文件一起使用”注释)
3 在下载中点击 php-5.3.10-Win32-VC9-x86.msi 文件
(在 Chrome 中单击文件选项卡一次,或在下载中双击实际文件)
4 点击下一步
5 点击我接受许可协议中的条款
6 点击下一步
7 点击下一步
8 点击 Apache 2.2.x 模块
9 点击下一步
10 点击浏览
11 双击 Apache Software Foundation
12 双击 Apache 2.2
13 双击 conf
14 点击确定
15 点击下一步
16 点击下一步
17 点击安装并等待
18 点击是允许程序进行更改
19 点击完成
使用 Apache 测试 PHP
1 打开记事本
2 输入“左括号字符”?php phpinfo(); ?“右括号字符”
3 将文件保存到 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs 作为 test.php
4 在浏览器位置框中输入 localhost/test.php(我使用 Chrome)或输入 h t t p : / / l o c a l h o s t / t e s t . p h p
5 应该会出现标题为 PHP 版本...的表格
完成
在 FastCGI 下运行 PHP
除了在您的 httpd.conf 中包含以下内容外
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php"
AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
请记住,还要将以下内容添加到默认的 <Directory "C:/apache/htdocs"> 块(或虚拟主机块)中
Options ExecCGI
这是 Apache 在 Windows 上最快的架构,比 PHP 模块更快
在 httpd.conf 中启用 mod_proxy 和 mod_proxy_fcgi 并运行
setx PHP_FCGI_CHILDREN "15" /m
setx PHP_FCGI_MAX_REQUESTS "1000" /m
并下载
RunHiddenConsole.exe 并使用 c:\hidden\RunHiddenConsole.exe C:\PHP\php-cgi.exe -b 127.0.0.1:9000 启动 php,并在 VirtualHost 上设置
<Files ~ "\.(php|phtml)$">
SetHandler "proxy:fcgi://127.0.0.1:9000#"
ProxyFCGIBackendType GENERIC
ProxyFCGISetEnvIf "true" SCRIPT_FILENAME "C:%{reqenv:SCRIPT_FILENAME}"
</Files>
重新启动 Apache 服务并尽情享受。来自 PHP 狂热粉丝的问候