在 Apache/2.2.25 (Win32) 上使用 PHP/5.4.20 运行时执行 php 文件时出现问题

在 Apache/2.2.25 (Win32) 上使用 PHP/5.4.20 运行时执行 php 文件时出现问题

您好,我使用的是 Windows 8 平台,最初我安装了 Wamp 服务器包来处理 php,但后来想尝试使用 Apache。起初,我下载了一个 Apache 版本和一个 php 版本,但安装和配置后开始遇到几个问题,例如 Apache 抛出消息:“操作失败”,但通过阅读大量其他用户的帖子逐渐解决了这个问题,并发现这是 php.ini 和 httpd.conf 文件中的一个小语法问题。现在让我来谈谈问题的核心...

  1. 我开始处理表单,为此我编写了两个文件,扩展名为 .html 和 .php
  2. 我在 .html 文件中的文本字段中输入的任何内容都将传递给 .php 代码文件中的变量
  3. 一旦表单执行,它应该显示在.html 文件的文本字段中输入的值,并在.php 文件中显示结果(我在.php 代码中使用了条件)...

我希望你明白我的意思?无论如何,我所包含的代码如下......

[hello.html文件]...

< form action="welcome.php" method="post">
<li>< label for="firstname">First Name: </label></li>
<li>< input type="text" id="firstname" name="firstname" /></li>
<li>< label for="lastname">Last Name: </label></li>
<li>< input type="text" id="lastname" name="lastname" /></li>
<li>< input type="submit" value="GO!" /></li>
< /form>

[welcome.php 文件]...

Hello, < ?php 
$firstname = $_REQUEST['firstname']; // i also tried this with $_POST
$lastname = $_REQUEST['lastname'];
if($firstname == 'john' and $lastname == 'lennon') {
  echo "Hello great musician";
} else {
  echo "$firstname $lastname";
}
?>
< /body>

一旦执行上述操作,它会显示...你好,当我在服务器上运行 welcome.php 时,它会给我一个语法:

Notice: Undefined index: firstname in C:\apacheserver\apache\htdocs\welcome.php on line 13
Notice: Undefined index: lastname in C:\apacheserver\apache\htdocs\welcome.php on line 14

这些指向的行是:

$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];

另外,当我在 apache\bin> 上运行 httpd -k start 时,我收到一条消息说...

httpd: Could not reliably determine the servers fully qualified domain name,
using 192.168.0.3 for ServerName
(OS 10048)Only one usage of each socket address (protocol/network/address
/port) is normally permitted. : make_sock: could not bind to address
0.0.0.0:80 no listening sockets available, shutting down Unable to open
logs

有人可以帮我解决这个问题吗?我已经为此工作了 24 个小时,甚至彻夜难眠。

答案1

您的代码与您的问题没有任何关系。

谷歌搜索会告诉您在 Windows 8 上的端口 80 上运行 Web 服务器通常不起作用,因为 Windows 8 已经为在 modernui 中运行的一些软件运行了 Web 服务器。

使用其他端口应该没问题 - 您可以编辑 apache 配置文件来执行此操作。还有其他解决方法,告诉 http.sys 不要绑定到所有 ip 地址,如您在这个 SU 答案或者使用端口关闭服务按照这个SO答案

一个更明智的方法是获取一个 VM 主机并在那里进行开发,因为您可以更好地近似现实的生产环境。

相关内容