[现在一切正常!] 我的解决方案:
我犯的第一个错误就是,我安装了一些随机的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 application / x-httpd-php .php
PHPIniDir" C:/ PHP的"
,当我想启动apache服务器时,它只是告诉我:
"请求的操作失败。" (当我在Apache-Monitor中选择我的服务器服务时,会发生这种情况,然后单击" start) (没有错误日志是从apache创建的,错误内部没有任何内容也没有日志文件夹(都在httpd.conf中配置)) 只有CMD给了我以下错误:
httpd:C:/Apache24/conf/httpd.conf的第533行语法错误:不能 将c:/php/php5apache2_4.dll加载到服务器:%1不是有效的Win32 应用
现在,只要我从httpd.conf中删除这3行,服务器就可以再次正常工作,可以启动,并且网站可用,除了所有的PHP页面都不起作用(当然)。 / p>
我听说过" libphp5.so",我不知道它是否与我的apache服务器有关,也不是我的整个问题,但我不知道,至少我在我的" C:\ Apache24"中没有这样的东西。文件夹!
可能重要的一些信息: 所有这些都是从普通PC(Windows 10)(64位),32GB RAM,8x4GHz处理器等托管。!
是的,我已将c:\ php添加到我的Path环境变量中! (如前所述,如果我不添加这些行,所有工作正常,根据谷歌的结果,这是必要的,以使PHP与apache一起工作)!
如果有人知道该怎么做,id会很高兴,因为我不想继续使用IIS(它很好但是......),因为我可以用Apache做更多的事情!
答案 0 :(得分:0)
仔细阅读本手册。重新安装apache并使用PHP 5.6。除非您准备好解决PHP 7.1附带的问题。注意不要在apache.org二进制文件中使用VC11 +版本的PHP 。这取自PHP.net
<强>的Apache 强>: 请使用Apache Lounge提供的Apache版本。他们 为x86和x64提供Apache的VC11,VC14和VC15版本。我们用 他们的二进制文件来构建Apache SAPI。
如果您使用PHP作为apache.org上的Apache构建模块(不是 建议)你需要使用PHP编译的旧VC6版本 使用传统的Visual Studio 6编译器。不要使用VC11 +版本 PHP与apache.org二进制文件。
使用Apache,您必须使用PHP的线程安全(TS)版本。
VC11,VC14&amp; VC15更新版本的PHP是用VC11构建的, VC14或VC15(分别为Visual Studio 2012,2015或2017编译器) 并包括性能和稳定性的改进。
VC11版本要求安装Visual Studio 2012 x86或x64的Visual C ++ Redistributable
VC14版本要求安装Visual Studio 2015 x86或x64的Visual C ++ Redistributable
VC15版本需要安装Visual Studio 2017 x64或x86的Visual C ++ Redistributable
TS和NTS TS指的是支持多线程的构建。 NTS指的是 单线程只构建。涉及TS二进制文件的用例 与作为模块加载的多线程SAPI和PHP的交互 一个Web服务器。对于NTS二进制文件,广泛的用例是交互 通过FastCGI协议使用Web服务器,使用no 多线程(也可以是CLI)。
答案 1 :(得分:0)
确保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
为Apache下载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