0

我在 Linux 服务器上托管一个网站,运行 Ubuntu Server 11.04(32 位)。Web 服务器是 Apache。该站点上的其中一个页面有一个表单,其中包含指向 PHP 电子邮件脚本的提交链接。表格代码:

<form id="contact_form" method="post" action="email.php">
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="name" class="textbox"/></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" id="email" class="textbox"/></td>
</tr>
</table>
<div id="message_box_header">Describe your problem:<br /></div>
<textarea class="textbox"></textarea><br />
<input type="submit" value="Submit!" id="submit" />
</form>

Linux 服务器具有最新版本的 sendmail。我根本不了解 PHP,并且预先编写了脚本,所以我想我的问题可能就在那里。为了隐私,我用虚拟的网站/电子邮件替换了网站/电子邮件。这是email.php:

<?php
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;

  mail( "myemail@gmail.com", "Form Data",
    $message, "From: $email" );
  header( "Location: http://mywebsite.com" );
?>

当我点击实际网站上的提交按钮时,它只会下载 email.php。

4

3 回答 3

2

确保 PHP 实际安装在您的服务器上(这应该是您做的第一件事,遵循 cryptic 的说明)。

如果它已安装,但您仍然遇到问题,请将其添加到您的 apache 配置 ( .htaccess) 中:

AddType application/x-httpd-php .php 
于 2012-12-30T18:14:30.017 回答
0

您应该设置name输入字段的属性,而不是id. 否则不发送数据。如果正在下载文件,这是网络服务器而不是脚本的配置错误。

于 2012-12-30T18:17:49.097 回答
0

通过运行以下命令更新您的包管理器:

apt-get update

并安装mod_fcgidphp5-cgi运行以下命令:

apt-get install libapache2-mod-fcgid php5-cgi

mod_fcgid将由安装程序启用,否则运行此命令以启用它:

a2enmod fcgid

现在您可以将这些预先配置的行添加到您的 apache 配置文件中:

AddHandler fcgid-script .php
FcgidIOTimeout 3600
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 
FcgidMaxRequestLen 52428800
FcgidConnectTimeout 3600
FcgidMaxProcesses 12
FcgidOutputBufferSize 64
FcgidProcessLifeTime 3600
FcgidMaxRequestsPerProcess 500
FcgidMinProcessesPerClass 0
FcgidWrapper /usr/bin/php-cgi .php

您的 apache 配置文件可能在/etc/apache2/apache2.conf

有关快速 cgi 处理程序的更多信息,请参阅:http ://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html

于 2012-12-30T18:37:58.933 回答