繁体   English   中英

安装 PhP 后 Apache 服务器不工作

[英]Apache Server Not Working After Installing PhP

[现在一切正常!] 我的解决方案:


我犯的第一个错误很简单,我安装了一些随机的 32 位版本的 PHP,以及一些随机的 64 位版本的 Apache! 之后,我刚刚下载了最新版本的PHP,并将其放在我的c:\\php文件夹中,然后从apachelounge网站(网站左侧的VC14类别)下载了最新版本的Apache VC14版本. 最后一个错误是,我的 IIS 中的 W3SVC 仍在运行,所以我在服务下停止了那个(在 Windows 中搜索 services.msc)! 是的,就是这样,现在都解决了!


所以,我有一个问题,我最近安装了 Apache,并设置了一个可以工作的网络服务器! 这一切都很好,我的整个网站运行完美,并且完全可用! 但是,我所有的 php 脚本都不起作用,当在网站上加载一个时,apache 只显示 .php 文件的整个源代码,而不是像 html 页面一样显示它!

所以,我注意到,我的 apache 服务器没有配置 PHP! 然后我做的是下载 php,把它放在 c:\\php 中,配置 php.ini,所有这些都有效,我知道因为在 IIS 10 中,我的网站在 PHP 上运行得非常好!

所以我安装了 php,对于 apache 2.4,VS11 版本,同样适用于 apache,(我这样做是因为两者的最新版本都不适合我,我遇到了同样的问题)!

一旦我完成最后一步,将这些行添加到我的 httpd.conf(在我的 apache 文件夹中):

LoadModule php5_module "c:/php/php5apache2_4.dll"

AddHandler 应用程序/x-httpd-php .php

PHPIniDir "C:/php"

,当我想启动 apache 服务器时,它只是告诉我:

“请求的操作失败。” (当我在 Apache-Monitor 中选择我的服务器的服务并单击“开始”时会发生这种情况(没有从 apache 创建错误日志,错误和日志文件夹中没有任何内容(均在 httpd.conf 中配置))只有 CMD 给了我以下错误:

httpd:C:/Apache24/conf/httpd.conf 的第 533 行语法错误:无法将 c:/php/php5apache2_4.dll 加载到服务器:%1 不是有效的 Win32 应用程序。

现在,只要我从我的 httpd.conf 中删除这 3 行,服务器就会再次正常工作,可以启动,并且网站可以使用,除了所有 php 页面都不起作用(当然)。

我听说了一些关于“libphp5.so”的消息,我不知道它是否与我的 apache 服务器或我的整个问题有关,但我不知道,至少我的“C: \\Apache24”文件夹!

一些可能很重要的信息:所有这些都是从一台普通 PC (Windows 10)(64 位)、32GB RAM、8x4GHz 处理器等托管的!

是的,我已将 c:\\php 添加到我的 Path 环境变量中! (如前所述,如果我不添加这些行,一切都在工作,根据谷歌的结果,这是让 php 与 apache 一起工作所必需的)!

如果有人知道该怎么做,我会很高兴,因为我不想继续使用 IIS(它很好但是......),因为我可以用 Apache 做更多的事情!

仔细阅读说明书。 重新安装 apache 并使用 PHP 5.6。 除非您准备好解决 PHP 7.1 带来的问题。 注意不要将 VC11+ 版本的 PHP 与 apache.org 二进制文件一起使用 这是取自 PHP.net

Apache :请使用 Apache Lounge 提供的 Apache 构建。 他们为 x86 和 x64 提供 Apache 的 VC11、VC14 和 VC15 构建。 我们使用他们的二进制文件来构建 Apache SAPI。

如果您将 PHP 作为模块与来自 apache.org 的 Apache 构建一起使用(不推荐),您需要使用旧版 Visual Studio 6 编译器编译的旧版 VC6 版本的 PHP。 不要将 VC11+ 版本的 PHP 与 apache.org 二进制文件一起使用。

对于 Apache,您必须使用 PHP 的线程安全 (TS) 版本。

VC11、VC14 和 VC15 较新版本的 PHP 是使用 VC11、VC14 或 VC15(分别是 Visual Studio 2012、2015 或 2017 编译器)构建的,并且包括性能和稳定性方面的改进。

  • VC11 版本需要安装 Visual C++ Redistributable for Visual Studio 2012 x86 或 x64

  • VC14 版本需要安装 Visual C++ Redistributable for Visual Studio 2015 x86 或 x64

  • VC15 版本需要安装 Visual C++ Redistributable for Visual Studio 2017 x64 或 x86

TS 和 NTS TS 是指支持多线程的构建。 NTS 是指仅单线程构建。 TS 二进制文件的用例涉及与作为模块加载到 Web 服务器的多线程 SAPI 和 PHP 的交互。 对于 NTS 二进制文件,广泛的用例是通过 FastCGI 协议与 Web 服务器交互,不使用多线程(但也使用例如 CLI)。

来源: PHP.NET 手册

确保 Apache2 和 PHP 二进制文件具有相同的内容:

  • Visual Studio C++ 二进制兼容版本(Visual Studio C++ 2015 = VC14,Visual Studio C++ 2017 = VC15)
  • 系统架构:32bit(win32)/64bit(win64)

例如:

php-7.3.15RC1-Win32-VC15-x86

确保你有:

httpd-2.4.41-win32-VC15

下载适用于 Windows 的 Apache 2 二进制文件的最佳位置是 Apache Lounge(在左上角,您可以控制 VC 版本):

https://www.apachelounge.com/download/VC15/

并且要下载 PHP 二进制文件,还要注意,对于 Apache,您必须使用 PHP 的线程安全 (TS) 版本。 去这里:

https://windows.php.net/qa/

不要忘记为php添加(系统变量)PATH,以管理员身份打开cmd并键入:

setx path "%PATH%, C:\php73" /M

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM